主题:[讨论]如何让combo下拉框里显示不同的字体及颜色
天天学习
[专家分:4570] 发布于 2009-09-03 11:42:00
如图,如何做出像Word里选择字体时的下拉框,每个列表项可以显示不同的字体格式。
如果这个可以实现,那么如何使每个项的字体颜色不同。
回复列表 (共6个回复)
沙发
joforn [专家分:1460] 发布于 2009-09-06 22:47:00
我猜,只能自己写控件了。
板凳
tanchuhan [专家分:15140] 发布于 2009-09-07 12:14:00
OwnerDraw
对API熟悉的话不难实现.
3 楼
天天学习 [专家分:4570] 发布于 2009-09-07 16:22:00
子类化处理WM_DRAWITEM消息可以实现ListBox的各项的颜色不同,但comboBox的还是试,comboBox总是收不到WM_DRAWITEM消息。[em10][em10]
4 楼
bcahzvip [专家分:6040] 发布于 2009-09-07 18:55:00
必须选 CBS_OWNERDRAWVARIABLE 或 CBS_OWNERDRAWFIXED 样式.
创建时!~ 创建后再设置样式米用.
5 楼
tanchuhan [专家分:15140] 发布于 2009-09-07 19:10:00
[quote]必须选 CBS_OWNERDRAWVARIABLE 或 CBS_OWNERDRAWFIXED 样式.
创建时!~ 创建后再设置样式米用.[/quote]
正确,创建再SetWindowLong无效 (GetLastError返回ERROR_ACCESS_DENIED)
可以考虑Hook CreateWindowExA,呵呵,不过代价太大了,不值,还不如去google些控件回来.
6 楼
天天学习 [专家分:4570] 发布于 2009-09-07 22:41:00
确实是像楼上两位所说。
试了,Ok。在网上也找到了类似的代码,就是hook WM_CREATE消息的。
我来回复