首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

defwindowproc为何没有把客户区的线条给擦掉呢

2012-12-21 
defwindowproc为什么没有把客户区的线条给擦掉呢窗口函数case WM_PAINT:{PAINTSTRUCT psHDC hdcBeginPai

defwindowproc为什么没有把客户区的线条给擦掉呢
窗口函数

case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc=BeginPaint(hwnd,&ps);

MoveToEx(hdc,0,9,NULL);

LineTo(hdc,23,33);

EndPaint(hwnd,&ps);

return DefWindowProc(hwnd,message,wParam,lParam);

}



线条出现了。  这里我是笔误,没有return 0;  msdn是要return 0 的,我笔误。。

结果线条依然有,好奇怪啊, 对于wm_paint,defwindowproc做的工作,可能会擦出背景,也可能不会擦出。

线条怎么还在啊

[最优解释]
case WM_PAINT:
{
PAINTSTRUCT  ps;
HDC hdc=BeginPaint(hwnd,&ps);//1.擦除背景,2.使客户区有效

MoveToEx(hdc,0,9,NULL);//就是这条线

LineTo(hdc,23,33);

EndPaint(hwnd,&ps);// 释放dc
// 因为客户区 已经 有效,调用 def 不起作用!// 加 一句:
InvalidateRect(hWnd,NULL,TRUE);// 重新无效
return DefWindowProc(hwnd,message,wParam,lParam);

}

[其他解释]

引用:
case WM_PAINT:
{
PAINTSTRUCT  ps;
HDC hdc=BeginPaint(hwnd,&ps);//1.擦除背景,2.使客户区有效

MoveToEx(hdc,0,9,NULL);//就是这条线

LineTo(hdc,23,33);

EndPaint(hwnd,&ps);// 释放dc
// 因为客户区……



vc大佬啊



像你这样基础扎实的,csdn不多了,

 vc江湖日下,再过几年,也不知道有没人有来回vc的帖子了



热点排行