« WINDOWS游戏编程大师技巧笔记之——学海无崖Win32编程实现的一点小功能 »

WINDOWS游戏编程大师技巧笔记之——WIN32编程

对于WIN32编程,我完全是小白中的小白。今天小白有感想发表~~。此为WINDOWS游戏编程大师技巧笔记之二,WIN32编程。为啥要学啊?啊....那个.......貌似......不算学吧.....呵呵。上篇的笔记在这里,WINDOWS游戏编程大师技巧笔记之——学海无崖。——ZwqXin.com

上一次谈及MFC貌似是刚开博客的时候了吧,上次是为了OPENGL框架剖析,这次呢?恩,或者恰巧碰上一个小编程作业的缘故,而又恰好看《WINDOWS游戏编程大师技巧》看到第2,3,4章左右的机缘吧。怎么说,不可能把这作业做在OPENGL框架上吧,那...普通的控制台输出也不错,但是这样的话什么都学不了了,不是吗?

上次的MFC:
自剖一下自己用的NEHE OpenGL框架(上篇)
自剖一下自己用的NEHE OpenGL框架(中篇)
自剖一下自己用的NEHE OpenGL框架(中篇)

本文来源于 ZwqXin (http://www.zwqxin.cn/), 转载请注明
      原文地址:http://www.zwqxin.cn/archives/MFC/windows-game-programer-2.html

好啦,我最初是跟随那书敲的代码,这样比直接复制粘贴感觉好多了。从第二章,一个简单的窗口的构建开始,一路附加一点功能。书上有的,想试试,书上没的想到的,就GOOGLE一下,相信只有我没想到的,没有它做不到的吧。WIN32算是比较底层的编程开发了,觉得也早被潮流冲得远去了,不说MFC,就在今天大行其道的.NET开发,人们还记得这个东西吗?大抵更多人接触它是大学学习的时候吧——哪怕MFC更受欢迎。恩,今天怎么废话连篇?因为预感接下来写不了什么东西了——WIN32,即使是最简单的那些东西,对我来说都是新事物,这几天接触了那么多“新事物”——实在太多了,一一记录起来会累死的。还是把更多时间留去做些其他的吧。

话说我最开始做的是“填”一个窗口类:WNDCLASSEX winclass 。感觉就是跟“填”像素格式那样吧。实质就是给一个窗口类所需的属性,方便接下来创建这个类的实例。RegisterClassEx(&winclass)注册这部在我通常的知识范围之外,当然了,要跟WINDOWS打交道起码要多点跟系统交互吧。好了,CreateWindowEx创建窗口是第三步——最基本的三部。在WinMain里,为了维持这个窗口,需要一个while(TRUE)的循环。在这个循环里面,我们做所有的“变动”,OPENGL框架里是渲染,可真实的窗口不只会渲染哦。当然了,这几天其实也没在里面弄什么(还没开始GDI呢)~主要弄的是每次循环开始时刻的消息处理:

  1. if(PeekMessage(&MyMessage, NULL, 0,0,PM_REMOVE))
  2.   {
  3.   if(MyMessage.message == WM_QUIT)break;
  4.  
  5.    TranslateMessage(&MyMessage);
  6.    DispatchMessage(&MyMessage);
  7.   }

PeekMessage和GetMessage的区别终于有感性认识了:不加while(TRUE)前如果直接PeekMessage,窗口闪一下就没掉了;而GetMessage则不会——就貌似scanf给控制台断点,它也给WINMAIN函数断点了——苦等消息而不立即返回。姑且把WINMAIN里的这PART“死”循环作为第四PART吧,那么第五PART无疑是WindowProc消息处理函数了。MFC里的那些消息映射的都是包装它的吧。CALLBACK关键字给了它脱不去的属性。

  1. LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)

msg就是消息类型:就是常见的WM_PAINT,WM_SIZE那些。不提这些的话,相最有型的还是WM_COMMAND消息了。以前没什么感性认识是因为我们从来不真正相遇。WM_COMMAND消息可以处理纷繁的按钮和菜单点击消息。创建按钮和菜单,当然跃跃想试了。菜单,最开始在填表那里改,改不成功,还是LoadMenu,SetMenu来得老实。我直接放在窗口创建之后了。资源装载部分,其实VC6自己可以作为向导弄菜单,但是正如作者所说:那样你就什么都学不了了,不是么?事实上只是动手多一点而已,跟图标差不多吧。.rc就叫脚本文件最近才知道,但是编译器“窗口”里如果见它(表明它按文本形式打开了),记得关掉哦,否则提示“资源装载失败”。

按钮总是那么气人。怎么显示按钮被按下去那状态现在我还没GOOGLE出来。还有编辑框也恼人,响应那么慢~~还有那标题栏哦,怎么我弄不好那种自动隐藏的效果呢?

还有很多呢。接下来会分享一点偶尔发现的“小技巧”来实现一点功能。这就不属于笔记了。下篇吧。

本文来源于 ZwqXin (http://www.zwqxin.cn/), 转载请注明
      原文地址:http://www.zwqxin.cn/archives/MFC/windows-game-programer-2.html

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

IE下本页面显示有问题?

→点击地址栏右侧【兼容视图】←

日历

Search

网站分类

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Walle Build 100427

Copyright 2008-2024 ZwqXin. All Rights Reserved. Theme edited from ipati.