Windows程序顶级编程步骤.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Windows程序顶级编程步骤

在Windows程序中,始化应用程序,显示主窗口,进入一个消息接收一发送循环,这个循环是应用程序执行的其余部分的顶级控制结构。 大体的编程步骤如下: 1.WinMain------编程入口(类似于main不过main是控制台程序); 2.初始化WNDCLASS结构体wnd,包含一个窗口类的全部信息; 3.向winndows注册窗体RegisterClass(wnd); 4.创建窗体CreateWindow并且显示; 5.循环接收消息GetMessage; 6.循环发送将接收到的消息发送出去PostMessage; 7.Callback函数接收并处理消息。 下面我们就逐一讲解以上的七个步骤: WinMain WinMain是一个函数,该函数的功能是被系统调用,作为一个32位应用程序的入口点。WinMain函数应初始化应用程序, int WINAPI WinMain   ( HINSTANCE hInstance,  HINSTANCE hPrevInstance,  LPSTR lpCmdLine,   int nCmdShow ); hInstance: 应用程序当前实例的句柄。 hPrevlnstance: 应用程序的先前实例的句柄。对于同一个程序打开两次,出现两个窗口第一次打开的窗口就是先前实例的窗口。对于一个32位程序,该参数总为NULL。   如果需要检测另外一个实例是否已经存在,则使用CreateMutex函数创建一个独一无二的名字。即使互斥名已经存在,CreateMutex函数也是成功的,但是GetLastError函数将返回 ERROR_ALREADY_EXISTS,这就表明应用程序有另外一个实例存在,因为它首先创建了互斥名。 lpCmdLine: 指向应用程序命令行的字符串的指针,不包括执行文件名。获得整个命令行,参看GetCommandLine。 第三个参数lpCmdLine是一个以空终止的字符串,指定传递给应用程序的命令行参数。例如:在D盘下有一个sunxin.txt文件,当我们用鼠标双击这个文件时将启动记事本程序(notepad.exe),此时系统会将D:\sunxin.txt作为命令行参数传递给记事本程序的WinMain函数,记事本程序在得到这个文件的全路径名后,就在窗口中显示该文件的内容。要在VC++开发环境中向应用程序传递参数,可以单击菜单【Project】→【Settings】,选择“Debug”选项卡,在“Program arguments”编辑框中输入你想传递给应用程序的参数。 nCmdShow: 指明窗口如何显示。该参数可以是下列值之一:   SW_HIDE:隐藏窗口并且激活另外一个窗口。   SW_MINIMIZE:最小化指定的窗口,并且激活在系统表中的顶层窗口。   SW_RESTORE:激活并显示窗口。如果窗口已经最小化或最大化,系统将以恢复到原来的尺寸和位置显示窗口(与SW_SHOWNORMAL相同)。   SW_SHOW:激活一个窗口并以原来的尺寸和位置显示窗口。   SW_SHOWMAXIMIZED:激活窗口并且将其最大化。   SW_SHOWMINIMIZED:激活窗口并将其目标化。   SW_SHOWMINNOACTIVE:将一个窗口显示为图标。激活窗口维持活动状态。   SW_SHOWNA:以窗口的当前状态显示窗口。激活窗口保持活动状态。   SW_SHOWNOACTIVATE:以窗口的最近一次的尺寸和位置显示窗口。激活窗口维持激活状态。 SW_SHOWNORMAL:激活并显示窗口。如果窗口最大化或最小化,系统将其恢复到原来的尺寸和位置(与SW_RESTORE相同)。 WNDCLASS WNDCLASS是一个由系统支持的结构,用来储存某一类窗口的信息,如ClassStyle,消息处理函数,Icon,Cursor,背景Brush等。也就是说,CreateWindow只是将某个WNDCLASS定义的窗体变成实例。   要得到某一窗口的WNDCLASS数据,可以用GetClassLong();   RegisterClass()就是在系统注册某一类型的窗体。也就是将你提供的WNDCLASS数据注册为一个窗口类,在WNDCLASS.lpszClassName中定义该WNDCLASS的标识,   无论CreateWindow或CreateWindowEx创建的窗口都必须对应一个WNDCLASS,但一个WNDCLASS可以有多个窗口对象。   有一些系统预定义的窗口类,如:   ClassName=_T(BUTTON or COMBOBOX or EDIT or LISTBOX or MDICLIENT or SCOLLBAR or STAT

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档