WM_PAINT 看不懂

来源:百度知道 编辑:UC知道 时间:2024/05/31 23:30:53
case WM_PAINT:
HDC hDC;
PAINTSTRUCT ps;
hDC=BeginPaint(hwnd,&ps);
TextOut(hDC,0,0,"维新培训",strlen("维新培训"));
EndPaint(hwnd,&ps);
break;

这里看见beginpaint 对ps进行赋值,然后对的hdc赋值
然后endpaint 释放资源,
那么那一句是重绘呢????看不见???

WM_PAINT就是重绘

干嘛要重绘呀?
系统为你自动做好的.当屏幕要刷新时就会向窗口发送WM_PAINT,这样就可以重绘了

TextOut(hDC,0,0,"维新培训",strlen("维新培训"));
得到HDC ...当窗口需要重新绘制时...比如窗口被其它窗口覆盖后又重新显示就需要重新绘制...或者最小化后又最大化...也要重新绘制...就是把你要显示的东西再画出来..WINDOWS不知道你要画什么也不保存你画的东西..所以被别的窗口或者其它覆盖后再显示就要叫你重新绘制...所以就发送WM_PAINT:
得到HDC后...就用
TextOut(hDC,0,0,"维新培训",strlen("维新培训"));
显示所要字符串而ps里就有需要重新绘制区域的位子..ps.rcPaint.left等等四个方位...
这里用 TextOut(hDC,0,0,"维新培训",strlen("维新培训"));
难道你没有看到么

vc编程是基于消息的,每一个函数的调用,同时都是通过消息传递实现的。
WM_XXXX 是WINDOWS MESSAGES 的简化,用于表示消息
WM_PAINT是重绘消息

hDC=BeginPaint(hwnd,&ps);
// 添加重绘的代码
//TextOut是显示文字的函数

EndPaint(hwnd,&ps);