回 帖 发 新 帖 刷新版面

主题:[讨论]如何让combo下拉框里显示不同的字体及颜色

如图,如何做出像Word里选择字体时的下拉框,每个列表项可以显示不同的字体格式。

如果这个可以实现,那么如何使每个项的字体颜色不同。

回复列表 (共6个回复)

沙发

我猜,只能自己写控件了。

板凳

OwnerDraw
对API熟悉的话不难实现.

3 楼

子类化处理WM_DRAWITEM消息可以实现ListBox的各项的颜色不同,但comboBox的还是试,comboBox总是收不到WM_DRAWITEM消息。[em10][em10]

4 楼

必须选 CBS_OWNERDRAWVARIABLE 或 CBS_OWNERDRAWFIXED 样式.
创建时!~ 创建后再设置样式米用.

5 楼

[quote]必须选 CBS_OWNERDRAWVARIABLE 或 CBS_OWNERDRAWFIXED 样式.
创建时!~ 创建后再设置样式米用.[/quote]
正确,创建再SetWindowLong无效 (GetLastError返回ERROR_ACCESS_DENIED)

可以考虑Hook CreateWindowExA,呵呵,不过代价太大了,不值,还不如去google些控件回来.

6 楼

确实是像楼上两位所说。
试了,Ok。在网上也找到了类似的代码,就是hook WM_CREATE消息的。

我来回复

您尚未登录,请登录后再回复。点此登录或注册