欢迎来到天天文库
浏览记录
ID:41032995
大小:73.00 KB
页数:12页
时间:2019-08-14
《windows sdk编程系列文章02 ---- 简单窗口程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、windowssdk编程系列文章----简单窗口程序2008-04-0806:37理论:Windows程序中,在写图形用户界面时需要调用大量的标准WindowsGui函数。其实这对用户和程序员来说都有好处,对于用户,面对的是同一套标准的窗口,对这些窗口的操作都是一样的,所以使用不同的应用程序时无须重新学习操作。对程序员来说,这些Gui源代码都是经过了微软的严格测试,随时拿来就可以用的。当然至于具体地写程序对于程序员来说还是有难度的。为了创建基于窗口的应用程序,必须严格遵守规范。作到这一点并不难,只要用模块化或面向对象的编程方法即可。下面我就列出在桌面显示一个窗口的几
2、个步骤:1.得到您应用程序的句柄(对于C程序,可选);2.得到命令行参数(如果您想从命令行得到参数,可选);3.注册窗口类(必需,除非您使用Windows预定义的窗口类,如MessageBox或dialogbox;4.产生窗口(必需);5.在桌面显示窗口(必需,除非您不想立即显示它);6.刷新窗口客户区;7.进入无限的获取窗口消息的循环;8.如果有消息到达,由负责该窗口的窗口回调函数处理;9.如果用户关闭窗口,进行退出处理。相对于单用户的DOS下的编程来说,Windows下的程序框架结构是相当复杂的。但是Windows和DOS在系统架构上是截然不同的。Windows
3、是一个多任务的操作系统,故系统中同时有多个应用程序彼此协同运行。这就要求Windows程序员必须严格遵守编程规范,并养成良好的编程风格。例子:(见光盘FirstWindow)#include"Windows.h"#include"tchar.h"HWNDhWinMain;TCHARszClassName[]=_T("MyClass");TCHARszCaptionMain[]=_T("MyFirstWindow!");TCHARszText[]=_T("Win32program,Simpleandpowerful!");WNDCLASSEXstdWndClass;/
4、/如果有消息到达,由负责该窗口的窗口回调函数处理LRESULTCALLBACKProcWinMain( HWNDhWnd, UINTMsg, WPARAMwParam, LPARAMlParam){ switch(Msg) { //如果用户关闭窗口,进行退出处理 caseWM_CLOSE: { DestroyWindow(hWinMai
5、n); PostQuitMessage(NULL); } break; default: returnDefWindowProc(hWnd,Msg,wParam,lParam); } return0;}intWINAPIWinMain( HINSTANCEhInstance, HINSTANCEhPrevInstance, LPSTRlpCmdLine,
6、 intnCmdShow){ MSGstMsg; WNDCLASSEXstdWndClass; RtlZeroMemory(&stdWndClass,sizeof(stdWndClass)); stdWndClass.hCursor=LoadCursor(0,IDC_ARROW); stdWndClass.cbSize=sizeof(stdWndClass); stdWndClass.style=CS_HREDRAW
7、CS_VREDRAW; stdWnd
8、Class.lpfnWndProc=ProcWinMain; stdWndClass.hbrBackground=(HBRUSH)COLOR_WINDOW; stdWndClass.lpszClassName=szClassName; stdWndClass.hInstance=hInstance; //注册窗口 RegisterClassEx(&stdWndClass); //产生窗口 hWinMain=CreateWindowEx(WS_EX_CLIENTEDGE,szClassName,sz
此文档下载收益归作者所有