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);
}
[其他解释]
vc大佬啊
像你这样基础扎实的,csdn不多了,
vc江湖日下,再过几年,也不知道有没人有来回vc的帖子了