c++ win32怎么在WM_PAINT之外绘图,非mfc

 我来答
金色潜鸟
推荐于2016-06-20 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5537万
展开全部
API 程序里 在:
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
HDC hdc ;
。。。
switch (message)
{
case WM_CREATE : 。。。return 0 ;
case WM_SIZE : 。。。return 0 ;
case WM_TIMER : 。。。return 0 ;
case WM_PAINT : 。。。return 0 ;
case WM_DESTROY : 。。。return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
你可以在任何一个 case 里画图:
(1)hdc = GetDC (hwnd) ; // 获得 hdc
(2)用 hdc 画图
(3)ReleaseDC (hwnd, hdc) ; // 释放 hdc
870177103
2013-01-12 · TA获得超过522个赞
知道小有建树答主
回答量:486
采纳率:0%
帮助的人:343万
展开全部
楼上说得不错,我补充一点
作为一个良好结构的程序,你应该在wm_paint之外,把图画在内存的bitmap中,然后调用invalidaterect函数
强制产生一个wm_paint消息,再用这个bitmap用bitblt画在窗口上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小御景柚姬
2013-01-11 · 超过19用户采纳过TA的回答
知道答主
回答量:88
采纳率:0%
帮助的人:54.8万
展开全部
HDC hDC = GetWindowDC(hWnd);
然后使用 hDC, 绘图
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tattackor
推荐于2018-04-12 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:862万
展开全部
1、每个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:
窗口句柄(Window Handle) HWND,
消息ID(Message ID) UINT,
和两个消息参数(wParam, lParam)WPARAM、LPARAM,
WndProc的第一个参数hWnd就是当前接收消息的窗口句柄,第二个参数就是被传送过来的消息,第三、第四个参数都是附加在消息上的数据,这和MSG结构体是一样的。

2、LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
HDC hdc ;
。。。
switch (message)
{
case WM_CREATE : 。。。return 0 ;
case WM_SIZE : 。。。return 0 ;
case WM_TIMER : 。。。return 0 ;
case WM_PAINT : 。。。return 0 ;
case WM_DESTROY : 。。。return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
可以在任何一个 case 里画图:
(1)hdc = GetDC (hwnd) ; // 获得 hdc
(2)用 hdc 画图
(3)ReleaseDC (hwnd, hdc) ; // 释放 hdc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式