程序中调用了 Invalidate()后,万一等不到 WM_PAINT 消息怎么办呀?
Invalidate()后,只是告诉windows,窗口的客户区无效了,但是窗口并不会立刻重绘,
因为要等 WM_PAINT 消息,但是如果这个消息一直不出现呢?
还有,updatewindow()函数,可以实现窗口立刻重绘,但是为何不用 updatewindow(),而要用 invalidate()呢?
为何“绕一圈”再解决问题呢?
Invalidate()后,只是告诉windows,窗口的客户区无效了,但是窗口并不会立刻重绘,
因为要等 WM_PAINT 消息,但是如果这个消息一直不出现呢?
还有,updatewindow()函数,可以实现窗口立刻重绘,但是为何不用 updatewindow(),而要用 invalidate()呢?
为何“绕一圈”再解决问题呢?
解决方案 »
- CFileDialog::DoMoal多次调用发生内存冲突的问题
- VC如何解析office word 2003的doc文件?
- Cview类滚动条不能拖动问题及VIEW重绘,MF高手入
- DLL中 ansi unicode能否共存?
- 关于DirectShow中音频采集传输的问题
- 请问谁知道OpenGL 1.4或者1.5版本的SDK在哪下?
- 如果一个程序中会用到很多嵌套的if判断,应该用什么设计模式
- 如何用vc发送xml并接收返回消息?
- 大家在函数头部都喜欢采用什么格式写说明?
- 用CDATABASE的OPEN()函数来动态连接数据库,我是用SQL SERVER的,但是,现在要该用ACCESS的,那个连接字符串是怎么写的?小弟不知道格
- CButton类,如何去掉“焦点框”?
- ActiveX控件的ID号能不能这样递增?
void CTestView::OnChangeRect()
{
// Change Rectangle size.
m_rcBox = CRect(20, 20, 210, 210); // Invalidate window so entire client area
// is redrawn when UpdateWindow is called.
Invalidate(); // Update Window to cause View to redraw.
UpdateWindow();
}
Invalidate()的意义应该是刷新区域背景吧
只要你的程序没有重大逻辑问题WM_PAINT跑不了