同时有.c和.cpp文件的工程会出这个错的
首先全部重编译一下工程,如还是不行则试一试将工程设置中C/C++中precompiled header中选中automatic use of precompiled headers,并在相应through header中输入stdafx.h。这通常出现在工程中mfc头文件被修改的情况下.
调用UpdateWindow函数无法刷新内容
Killer的意见:
UpdateWindow()的作用是将WM_PAINT从消息队列中提出来提前刷新窗口,如果没有WM_PAINT消息当然没用,所以要先调用InvalidateRect()函数产生WM_PAINT消息,再用UpdateWindow()函数刷新窗口。
蒲伟的意见:
1.我在书上看到过Windows 9x系统在刷新窗口时,会引入非法矩形的机制,当程序要求更新窗口时,它也会只刷新非法矩形,而未改变内容的区域不会更新;
2.看了MSDN的UpdateWindow()的 vbfgdbvcxcxcvddfass 说明,它也注明了在非法矩形为空时,将不会有任何消息被发送,也就是说,如果没有无效化窗口,将不会引起WM_PAINT消息。
所以我想有一种办法解决你这个问题(也不知能否行得通):在WM_LBUTTONDOWN中先无效化整个窗口Invalidate(TRUE),再调用UpdateWindow()。