动系统。
可想而知,每一个Windows 程序都应该有一个回路如下:
MSG msg;
while (GetMessage (&msg; NULL; NULL; NULL)) {
TranslateMessage (&msg);
DispatchMessage (&msg);
}
// 以上出现的函数都是Windows API 函数
消息,也就是上面出现的MSG 结构,其实是Windows 内定的一种资料格式:
/* Queued message structure */
typedef struct tagMSG
{
HWND hwnd;
UINT message; // WM_xxx WM_MOUSEMOVE WM_SIZE。。。
,例如 ,
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG;
7
…………………………………………………………Page 70……………………………………………………………
接受并处理消息的主角就是窗口。每一个窗口都应该有一个函数负责处理消息,程序员
必须负责设计这个所谓的「窗口函数」(window procedure,或称为window function )。
如果窗口获得一个消息,这个窗口函数必须判断消息的类别,决定处理的方式。
Windows
以上就是 程序设计最重要的观念。至于窗口的产生与显示,十分简单,有专
API Windows
门的 函数负责。稍后我们就会看到 程序如何把这消息的取得、分派、处
理动作表现出来。
MYAPP。EXE
WinMain(hInst; hPrev; 。。。)
{
MSG msg;
Messages from RegisterClass(。。。);
other windows CreateWindow(。。。);
Mouse Keyboard ShowWindow(。。。);
Driver Driver PostMessage() UpdateWindow(。。。);
while(GetMessage(&msg。。。)) {
TranslateMessage(。。。);
DispatchMessage(。。。);
System Application }
message message return msg。wParam;
queue queue }
Window Procedure
WndProc(hwnd; msg; wParam; lParam)
{
switch (msg) {
case WM_CREATE: 。。。
USER SendMessage() case WM_MAND: 。。。
Module case WM_LBUTTONDOWN: 。。。
case WM_PAINT: 。。。
case WM_CLOSE: 。。。
case WM_DESTROY: 。。。
Windows default: return DefWindowProc(。。。);
}
return(0);
}
图1…2 Windows 程序的本体与操作系统之间的关系。
8
…………………………………………………………Page 71……………………………………………………………
一个具体而微的Win32 程序
许多相关书籍或文章尝试以各种方式简化Windows 程序的第一步,因为单单一个Hello
程序就要上百行,怕把大家吓坏了。我却宁愿各位早一点接触正统写法,早一点看到全
貌。Windows 的东西又多又杂,早一点一窥全貌是很有必要的。而且你会发现,经过有
条理的解释之后,程序代码的多寡其实构不成什么威胁(否则无字天书最适合程序员阅
读)。再说,上百行程序代码哪算得了什么!
你可以从图1…2 得窥Win32 应用程序的本体与操作系统之间的关系。Win32 程序中最
具代表意义的动作已经在该图显示出来,完整的程序代码展示于后。本章后续讨论都围绕
着此一程序。
makefile makefile
稍后会出现一个 。关于 的语法,可能已经不再为大家所熟悉了。我想
我有必要做个说明。
makefile …
所谓 ,就是让你能够设定某个文件和某个文件相比 比较其产生日期。由其比
较结果来决定要不要做某些你所指定的动作。例如:
generic。res : generic。rc generic。h
rc generic。rc
: generic。res generic。rc generic。h
意思就是拿冒号( )左边的 和冒号右边的 和 的文件日
期相比。只要右边任一文件比左边的文件更新,就执行下一行所指定的动作。这动作可
rc generic。rc
以是任何命令列动作,本例为 。
因此,我们就可以把不同文件间的依存关系做一个整理,以makefile
小说推荐
- Java编程思想第4版[中文版](PDF格式)
- -Page 1-Page 2《Thinking In Java》中文版作者:Bruce Eckel主页:http/BruceEckel.编译:Trans Bot主页:http/memberease~transbot致谢-献给那些直到现在仍在孜孜不倦创造下一代计算机语言的人们!指导您利用万维网的语言进
- 其他
- 最新章:第295章
- VB2008从入门到精通(PDF格式英文版)
- -Page 1(R)The eXperT’s Voice inBeginningVB 2008From Novice to ProfessionalChristian Gross-Page 2-Page 3-Beginning VB 2008From Novice to Professional■C
- 其他
- 最新章:第214章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 其他
- 最新章:第37章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 其他
- 最新章:第4章
- 深入浅出
- 《深入浅出》作者:白小骨晋江VIP20140610完结+1番外非V章节总点击数:67370 总书评数:209 当前被收藏数:764 文章积分:11,386,657文案:每个前男友都是女人掉过的坑,从何典阳这个坑里往外爬的梁温暖一脸血表示,何典阳他这个深坑实在太坑爹。何典阳:我是坑?梁温暖…别看我,我
- 激情
- 最新章:第74章
- 深入浅出[娱乐圈]
- 文案【忠犬影帝攻X傲娇明星受,1V1轻松甜文,前期互相试探,38章在一起后甜甜甜,两人都有细微的变化和成长~这也是我用心构思攻受感情发展的文,但数据有点太惨了,没入V可以全文免费看,还是想求点收藏呀,数据好看点吧,让我开心一下(笑哭.jpg)流量偶像白漾和影帝顾瑜祁关系很僵,传言两人出道时不合而互相
- 激情
- 最新章:第59章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 其他
- 最新章:第28章
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 其他
- 最新章:第27章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 其他
- 最新章:第143章