【发布时间】:2012-09-09 05:33:48
【问题描述】:
我想在运行时将组合框控件更改为所有者绘制。在资源脚本中,控件布局为标准控件。
我已经尝试将样式位设置为 CBS_OWNERDRAW | CBS_HASSTRINGS 但不知何故这无济于事。
在做子类之前,设置窗口样式..
// turn to ownerdraw
DWORD dwStyle = ::GetWindowLong(hwnd, GWL_STYLE);
dwStyle |= CBS_OWNERDRAWVARIABLE | CBS_HASSTRINGS;
SetWindowLong(hwnd, GWL_STYLE, dwStyle);
有人知道诀窍吗?
【问题讨论】:
-
一个组合框由 2 个窗口控件、一个按钮和一个列表框组成 .. 现在,您是在处理 NM_MEASUREITEM、NM_DRAWITEM 等 .. 为子类化后的所有者绘制的控件,还是只是试图处理 WM_PAINT ?
-
很好奇,你为什么要在运行时改变这个?为什么不在 .rc 文件中包含 ownerdraw 样式?
标签: windows winapi visual-c++ gdi+ gdi