欢迎来到天天文库
浏览记录
ID:37908748
大小:43.50 KB
页数:12页
时间:2019-06-02
《vc++游戏编程第八章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第八章例程之初始化部分第一节DDInit():DDInit()的作用是枚举驱动程序,它的具体运行过程如下:首先调用DirectDrawEnumerate(),这个函数的作用在第五章DirectDraw深入篇第三节选择DirectDraw驱动程序中已经谈到了。在本例程中这个函数的参数是&DDEnumCallback和NULL,&DDEnumCallback是指回调函数DDEnumCallback()的地址,NULL是指没有这个指向应用程序数据的指针。回调函数DDEnumCallback()的作用是将枚举过的的驱动程序的GUDI、描述和名字存入一个结构数组aDDDevs[]中。待以后选择。第二节
2、定义命令行参数 1.根据命令行参数确定运行方式首先,使用while(lpCmdLine[0]=='-'
3、
4、lpCmdLine[0]=='/')检测命令行参数的标识符,然后再使用switch(*lpCmdLine++)对部分参数的含义进行定义:-e Useemulator(使用软件模拟)-S NoSound(无声)-1 Nobackbuffer(不使用后备缓冲区)-2 Onebackbuffer(一个后备缓冲区)-4 Threebackbuffers(三个后备缓冲区)-s Usestretch(使用拉伸算法,即是在窗口模式下改变窗口的形状时对图形使用拉伸算法使图象比较匀称。)-x
5、 Demoorstressmode(使用重音模式)2.根据命令行参数确定显示模式对显示模式的横轴方向的像素数GameMode.cx、纵轴方向的像素数GameMode.cy及颜色数GameMode.BPP调用getint(char**p,intdef)取得命令行参数对这些项目的设定。getint(char**p,intdef)函数的运行过程为:先检测命令行参数第一个字符是否是“”、“r”、“t”、“”或“x”。如果是就使指针p自加1并继续检测,否则检测该字符是否是小于9大于0的数。如果该字符不是小于9大于0的数则返回默认值,反之则通过 while(IS_NUM(**p) i=i*10+
6、*(*p)++-'0'将输入的字符的ASCII值转变为数值。然后通过 while(IS_SPACE(**p)) (*p)++;检测后面的字符是否是“”、“r”、“t”、“”或“x”,如果是就使指针p自加1并继续检测,直到出现其他字符或字符串结束。第三节初始化Windows程序在这一部分调用了initApplication(HINSTANCEhInstance,intnCmdShow)函数来初始化Windows。initApplication(HINSTANCEhInstance,intnCmdShow)首先定义窗口类为: style:指明了类风格为向窗口发送一个鼠
7、标双击的消息。 1pfnWndProc:指明了指向窗口函数的指针,该指针指向MainWndProc。 cbClsExtra:指定在窗口类结构后面分配的字节数为0。 cbWndExtra:指定在窗口实例后面分配的字节数为0。 hInstance:注册窗口类的应用程序实例句柄是hInstance。 hIconhIcon:划定利用窗口最小化时显示的图标通过调用LoadIcon(hInstance,MAKEINTATOM(FOX_ICON))获得。 hCursorhCursor:定义应用程序使用的光标通过调用LoadCursor(NULL,IDC_ARROW)获得。 hbrBackg
8、round:背景刷子的标识符通过调用GetStockObject(BLACK_BRUSH)获得。 1pszMenuName:菜单的资源名的指针为NULL。 1pszClassName:窗口类的名字为WinFoxClass。然后用 if(!rc) { returnFALSE; }注册这个窗口类,并在注册失败时结束程序。接着用hWndMain=CreateWindowEx(……)创建窗口并将窗口的句柄赋给hWndMain。该窗口被创建为:窗口的扩展格式为 WS_EX_APPWINDOW窗口类为 "WinFoxClass"窗口名为 OUR_APP_NAME窗口格式
9、为 WS_VISIBLE
10、WS_SYSMENU
11、WS_POPUP(创建一个初始态可见的标题条上有系统菜单的重叠窗口或弹出式窗口窗口左上角的X坐标 0窗口左上角的Y坐标 0窗口宽度 GetSystemMetrics(SM_CXSCREEN)(屏幕宽度)窗口高度 GetSystemMetrics(SM_CYSCREEN)(屏幕高度)父窗口的句柄 NULL,窗口菜单的句柄 NULL,窗口类的应用程序的
此文档下载收益归作者所有