gbstar:文章写的一般,不过代码写得非常好,规范明了的命名,还有非常明白的注释。
--------------
不过也有一点不足,每个按钮都用了很多 gdi 对象(Pen,Brush),这样的话如果用户程序的按钮很多,会造成程序过渡消耗资源 (Windows 杀手?! ^_^)。
(发表于2003-2-25 22:08:00)
VC70新手:所以XP要慢很多
(发表于2003-2-27 4:55:00)
nixr:那各位对解决这个问题有什么建议呢?
能否简单说说?
(发表于2003-2-27 9:51:00)
smartukyo:自已开发当前是一种手段,但弊端有下:1)开发量大.不光是按扭,还有一堆Windows标准控件等待改善界面.2)若程序里用到大量按扭,它们每个都需要一个变量,就会开销大量的资源.
能不能直接利用WinXP的控件呢(当然,运行环境得为WinXP)?我想,一定在系统的某个角落存在着这些控件的信息,但我不知怎么得到.如果能得到的话,subclass一下就能立马搞定.有高手提供该信息吗?
(发表于2003-2-27 11:33:00)
smartukyo:事实上,拖动条已在WindowsXP中自动得到了更新,但按钮等控件还是老样子.
(发表于2003-2-27 11:35:00)
flyingxu:很好的一个例子!
-
但如同gbstar所说,资源消耗有点大。如果大家试着做一个很大的按钮,比如半个屏幕大,闪烁就很明显了。只要把绘图的质量降低一点,少几个brush之类,就很好了!
-
可惜这里不能评分,应该可以评5分满分。
(发表于2003-5-13 16:45:00)
yangjsh:请问 ODS_HOTLIGHT 我怎么找不到?总提示有错误!
(发表于2003-11-29 10:01:00)
brightstone:我只想在按下按钮时改变按钮上的caption文字,有没有简单写的方法呢?可不可以实现?
(发表于2004-3-18 19:44:00)
querw:非常好的东西,真是踏破铁鞋无觅处,得来全不费(自己的)工夫.多谢多谢!!
(发表于2004-3-22 11:26:00)
京山游侠:如果是写游戏程序呢?比如《三国志》系列,里面的按纽除了自己开发外,可没有别的办法啊。
(发表于2004-4-22 21:36:00)
yeriwei:我记得在2003年的<<编程技巧与维护>>杂志里曾看到过一篇XP的按钮样式.不用这样画的.好像加载哪个库文件就可以.实现了.不过这位讲得真的很好.自绘制按钮很实用啊.
掌握了基本原理就可以做自己的按钮了,我看过很多篇这样的文章,都没有这篇来的结构清晰,简洁.易懂!
谢谢!
(发表于2004-4-24 20:27:00)
Parn:too smartukyo:
滚动条在XP中确实变样子了,但那只是在XP中才会那样显示,对于软件的开发来说,如果要在任何系统中都显示那样的滚动条,还是需要自绘的
(发表于2004-6-27 11:51:00)
wenxy:好文章!
(发表于2004-6-30 11:23:00)
sundandanht:谢谢提供如此详细的解释!
不过我是初学者,在实现的过程中,出现了一个错误,是关于m_bTracking 的定义。
我用的VC6.0
错误提示是:
unresolved identifier!
请给与帮助。
(发表于2004-7-8 11:28:00)
yjfu:好象这样的自绘按钮有内存泄露问题..
我刚发现还没来得及解决..
同志们关心关心此事.
(发表于2005-3-28 14:03:00)
zcx5201314:to: brightstone
直接用SetWindowText就可以了吧。
(发表于2005-4-22 11:43:00)
ikohl:谢谢,非常感谢
(发表于2005-6-16 16:38:00)
wzb0313:连击按钮两下只反应一下,建议重写DefWindowProc
(发表于2005-7-28 20:40:00)
dennischiang:按钮不支持多行显示了,怎么办??
请执教,急用,谢谢!!
(发表于2006-5-26 10:46:00)
langzi200:大家可以用CXPButton类吗?我怎么用了该类编译之后对话框都没显示啦!什么原因呢?
(发表于2006-6-1 12:17:00)
konny:vc vb dll 控件学习网( 源码 )
vc vb dll 控件学习网( 源码 )
(发表于2007-3-5 15:55:00)
tncqsy:很好的东西,谢谢了
学习用一下。
(发表于2007-7-11 16:28:00)
redseafish:程序內有一行在Boundschecker檢查時會出錯
pDC->FillRect(&rct, &brBk[((i * 63) / nHeight)]);
經過檢查存取brBk[]時會超過索引值63
改成下方就OK
pDC->FillRect(&rct, &brBk[(((i-2) * 63) / nHeight)]);
(发表于2007-12-12 10:23:00)
..........................................................................
--------------------next---------------------