跟着孙鑫的vc视频教程,写了个最简单的窗口程序,运行时却占用CPU资源很大

代码如下:#include<windows.h>LRESULTCALLBACKMyWndProc(HWNDhwnd,//handletowindowUINTuMsg,//... 代码如下:

#include <windows.h>

LRESULT CALLBACK MyWndProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){

WNDCLASS wndclass;

wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH);
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndclass.hInstance=hInstance;
wndclass.lpfnWndProc=MyWndProc;
wndclass.lpszClassName="MyWndApplication";
wndclass.lpszMenuName=NULL;
wndclass.style=CS_VREDRAW|CS_HREDRAW;

RegisterClass(&wndclass);

HWND hwnd;

hwnd=CreateWindow("MyWndApplication","WinMain",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,SW_SHOWNORMAL);

UpdateWindow(hwnd);

MSG msg;

while(GetMessage(&msg,NULL,0,0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return 0;

}

LRESULT CALLBACK MyWndProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
){

switch(uMsg){

case WM_PAINT:
break;
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;

default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);

}

return 0;

}
展开
 我来答
mqguoliang
2011-07-05
知道答主
回答量:42
采纳率:0%
帮助的人:10.4万
展开全部
找到了、、、
你一直在那画画,CPU能不高吗。。。
在最初建立窗口的时候,整个显示区域都是无效的,因为程序还没有在窗口上画什么东西。第一条WM_PAINT消息(通常发生在WinMain中调用UpdateWindow时)指示窗口消息处理程序在显示区域上画一些东西。
你把WM_PAINT消息拿过来什么都不做,又没有指示结束的函数,系统就一直在循环你这个WM_PAINT消息。

参考资料: 个人

zijuan0810
2011-07-05
知道答主
回答量:23
采纳率:100%
帮助的人:11.3万
展开全部
这里没有看懂为何要用回调函数,不过如果用过程函数,就会出现这样的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鱼米草欲钩f
2011-07-06 · TA获得超过3050个赞
知道大有可为答主
回答量:4627
采纳率:55%
帮助的人:883万
展开全部
你把新华字典看完了就能写出好的文章么?

书本只是告诉你方法。写程序需要你自己有思路。把你的想法用程序语言描述出来而已!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-06
展开全部
你把新华字典看完了就能写出好的文章么?

书本只是告诉你方法。写程序需要你自己有思路。把你的想法用程序语言描述出来而已!!
另外,站长团上有产品团购,便宜有保证
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式