主题:[讨论]如何立即刷新窗口
我注册了一个窗口类,并创建了该窗口类的窗口(当作控件使用),这个控件主要是完成当鼠标按下,移动,鼠标松开,鼠标移出该窗口时该窗口背景图片的切换,
我用SetWindowlong GWL_USERDATA的方法给窗口标注状态,当鼠标按下,移动,松开,移出窗体时,我就改变窗口的状态,并立即刷新。
我对该窗口的WM_PAINT做了如下处理,即根据GetWindowLong GWL_USERDATA获得的窗口状态贴上不同的图。
您认为我这样设计是否合理?
我立即刷新使用的是charles petzold在windows程序设计一书上提到的:
::InvalidateWindow(hwnd,NULL,TRUE);
::UpdateWindow(hwnd);
但我发现并不象书中所说的那样,根本没有发生刷新,我在调用UpdateWindow时跟踪了一下,没有进行WM_PAINT消息的处理!
我用SetWindowlong GWL_USERDATA的方法给窗口标注状态,当鼠标按下,移动,松开,移出窗体时,我就改变窗口的状态,并立即刷新。
我对该窗口的WM_PAINT做了如下处理,即根据GetWindowLong GWL_USERDATA获得的窗口状态贴上不同的图。
您认为我这样设计是否合理?
我立即刷新使用的是charles petzold在windows程序设计一书上提到的:
::InvalidateWindow(hwnd,NULL,TRUE);
::UpdateWindow(hwnd);
但我发现并不象书中所说的那样,根本没有发生刷新,我在调用UpdateWindow时跟踪了一下,没有进行WM_PAINT消息的处理!