的处理例程即可。
这种观念以及作法就是MFC 的Message Map 的雏形。MFC 把其中的动作包装得更好
更精致(当然因此也就更复杂得多),成为一张庞大的消息地图;程序一旦获得消息,
就可以按图上溯,直到被处理为止。我将在第3章简单仿真MFC 的Message Map ,并在
第9章「消息映射与绕行」中详细探索其完整内容。
对话框的运作
Windows 的对话框依其与父窗口的关系,分为两类:
modal
1。 「令其父窗口除能,直到对话框结束」,这种称为 对话框。
modeless
2。 「父窗口与对话框共同运行」,这种称为 对话框。
modal Generic ! §About ! ¨
比较常用的是 对话框。我就以 的 对话框做为说明范例。
为了做出一个对话框,程序员必须准备两样东西:
dialog template RC
1。 对话框模板( )。这是在 文件中定义的一个对话框外貌,以各
。。。
种方式决定对话框的大小、字形、内部有哪些控制组件、各在什么位置 等等。
2。 对话框函数(dialog procedure )。其类型非常类似窗口函数,但是它通常只处
WM_INITDIAL OG WM MAND
_
理 和 两个消息。对话框中的各个控制组件也
都是小小窗口,各有自己的窗口函数,它们以消息与其管理者(父窗口,也就
WM MAND
_
是对话框)沟通。而所有的控制组件传来的消息都是 ,再由其
参数分辨哪一种控制组件以及哪一种通告(notification )。
22
…………………………………………………………Page 85……………………………………………………………
Modal 对话框的激活与结束,靠的是DialogBox 和EndDialog 两个API 函数。请看
图1…4。
TR UE FALSE
对话框处理过消息之后,应该传回 ;如果未处理消息,则应该传回 。这是
FALSE
因为你的对话框函数之上层还有一个系统提供的预设对话框函数。如果你传回 ,
该预设对话框函数就会接手处理。
Dialog Templatet in RC file。
对话框模板 ( ),
AboutBox DIALOG DISCARDABLE 22; 17; 144; 75
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION 〃About Generic〃
BEGIN
CTEXT 〃Windows 95〃; …1;0; 5;144;8
CTEXT 〃Generic Application〃;…1;0;14;144;8
1 DialogBox 打开一个对话框: CTEXT 〃Version 1。0〃; …1;0;34;144;8
DEFPUSHBUTTON 〃OK〃; IDOK;53;59;32;14;WS_GROUP
END
DialogBox(_hInst;
〃AboutBox〃; // 对话框模板名称
hWnd; // 父窗口
(DLGPROC)About // 对话框函数名称
);
2 控制权转到对话框函数
LRESULT CALLBACK About(HWND hDlg; UINT message;
4 WPARAM wParam; LPARAM lParam)
{
对 UNREFERENCED_ PARAMETER(lParam); // 避免編译时的警告
话
框 switch (message) {
结 case WM_INITDIALOG:
束 return (TRUE); // TRUE 表示我已处理过这个消息
,
case WM_MAND:
回 if (LOWORD(wParam) == IDOK 对话框內部自有一个消息
返 || LOWORD(wParam) == IDCANCEL) { 3 回路(由系統维护)
EndDialog(hDlg; TRUE);
return (TRUE); // TRUE 表示我已处理过这个消息
} 当使用者按下 'OK' 钮,产生
break; WM_MAND 命令消息,
} 识别码为IDOK,于是流往
return (FALSE); // FALSE 表示我没有处理这个消息
}
图 1…4 对话框的诞生、运作、结束
23
…………………………………………………………Page 86……………………………………………………………
模块定义文件 ( )
。DEF
Windows 程序需要一个模块定义文件,将模块名称、程序节区和资料节区的内存特性、
heap stack callback 。。。
模块堆积( )大小、堆栈( )大小、所有 函数名称 等等登记下来。下
面是个实例:
NAME Generic
DESCRIPTION "Generic Sample"
EXETYPE WINDOWS
STUB "WINSTUB。EXE"
CODE PRELOAD DISCARDABLE
DATA PRELOAD MOVEABLE MULTIPLE
HEAPSIZE 4096
STACKSIZE 10240
EXPORTS
MainWndProc @1
AboutBox @2
在Visual C++ 整合环境中开发程序,不再需?
小说推荐
- 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章