Windows编程杂谈

Windows编程杂谈

ID:37468080

大小:103.50 KB

页数:8页

时间:2019-05-24

Windows编程杂谈_第1页
Windows编程杂谈_第2页
Windows编程杂谈_第3页
Windows编程杂谈_第4页
Windows编程杂谈_第5页
资源描述:

《Windows编程杂谈》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Windows程序的基本结构1、最小的Windows程序应该保护两个函数:WinMain()和窗口函数2、WinMain作为程序入口,应该执行下列功能:a)定义一个窗口类b)注册这个类c)创建该类的窗口d)显示窗口e)开始运行消息循环3、窗口函数响应相关消息。4、例程,我所见到的最小的Windows程序,请问谁见过更小的?#includecharszWinName[]="MyWin";LRESULTCALLBACKWindowFunc(HWND,UINT,WPARAM,LPARAM);intWINAPIWinMain

2、(HINSTANCEhThisInst,HINSTANCEhPrevInst,LPSTRlpszArgs,intnWinMode){HWNDhwnd;MSGmsg;WNDCLASSEXwc1;wc1.cbSize=sizeof(WNDCLASSEX);wc1.hInstance=hThisInst;wc1.lpszClassName=szWinName;wc1.lpfnWndProc=WindowFunc;wc1.style=0;wc1.hIcon=LoadIcon(NULL,IDI_APPLICATION);wc1.hIconSm=Lo

3、adIcon(NULL,IDI_WINLOGO);wc1.hCursor=LoadCursor(NULL,IDC_ARROW);wc1.lpszMenuName=NULL;wc1.cbClsExtra=0;wc1.cbWndExtra=0;wc1.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);if(!RegisterClassEx(&wc1))return0;hwnd=CreateWindow(szWinName,"Clock",WS_OVERLAPPEDWINDOW,CW_USEDE

4、FAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,HWND_DESKTOP,NULL,hThisInst,NULL);ShowWindow(hwnd,nWinMode);UpdateWindow(hwnd);while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}returnmsg.wParam;}LRESULTCALLBACKWindowFunc(HWNDhwnd,UINTmessage,W

5、PARAMwParam,LPARAMlParam){switch(message){caseWM_DESTROY:PostQuitMessage(0);break;default:returnDefWindowProc(hwnd,message,wParam,lParam);}return0;}1、所有的Windows执行程序都具有这样的结构,现在我们通常使用的MFC对这个过程进行了包装。可以参考候捷的《深入浅出MFC》摘自候捷《深入浅出MFC》(繁体第二版,394页)。6、Windows中的消息从上面的文章中,我们会有一个问题:使用SD

6、K写的Windows与MFC中的消息机制有什么样的不同?使用SDK写的Windows程序中管理消息的重点是GetMessage和DispatchMessage两个函数注:TranslateMessage负责将虚拟键消息转换为字符信息。GetMessage(LPMSGlpMsg,HWNDhWnd,UINTwMsgFilterMin,UINTwMsgFilterMax);功能:获取与hWnd指定的窗口相关的且wMsgFilterMin,wMsgFilterMax参数制定的消息值范围内的消息。当hWnd为NULL时,则GetMessage获取属

7、于调用该函数的的应用程序的任一个窗口的消息。当wMsgFilterMin,wMsgFilterMax为0时,则返回所有可用的消息。在这个函数执行的时候,程序将控制权交给Windows,直到Windows的消息队列中出现了程序相关的消息,并且Windows愿意让GetMessage继续运行下去的时候,GetMessage将这个消息带回程序,由DispatchMessage将这个消息分发给窗口函数执行。这里的窗口程序就是前面注册过的那个WNDCLASSEX结构中WindowFunc。大家可能注意到了使用SDK写的Windows程序中的消息响应

8、使用了一个switch语句。当然我们也可以不这么写。让我们看看MFC中是如何处理消息响应的。我们在使用MFC写的Windows程序中看不到GetMessage和DispatchMessage函

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。