我正在使用Win32原生的主题ownerdraw按钮。 在另一个网站上的教程和示例项目之后,我的按钮几乎完美(几乎没有错误),但是还有一个留下了,我在修复它时遇到了问题。
基本上,我使用SetWindowLongPtr API对按钮的窗口进行子类化,并且从那里,当捕获WM_LBUTTONUP时,我需要调用DrawThemeBackground来重置按钮的状态,或者,再次处理WM_DRAWITEM。问题是WM_DRAWITEM只有当我的鼠标在对话框窗口时才会被调用,这不是一个真正的问题,如果有一种方法可以让主对话框在我想要的时候处理它。我尝试使用InvalidateRect,但它没有制作WM_DRAWITEM,而是WM_CTLCOLORBTN。
所以,我的问题是: 有没有办法让WM_DRAWITEM被处理,即使鼠标不在对话框中 要么 有什么方法可以建议它应该再次处理WM_DRAWITEM的主对话框,如果鼠标不在对话框中,那么它是什么?
非常感谢你花时间回复我。