之前的笔记搬运
对话框
0x1 什么是对话框
对话框是资源, 窗口信息和控件信息的集合, 他可以通过拖放控件和调整大小,
来绘制你需要的窗口界面, 操作系统通过读取.rc里数据,
来绘制还原出你设置好的窗口界面;
0x2 如何创建与关闭对话框
DialogBox 这个API可以创建对话框, 还有一个DialogBoxIndirect也可以创建对话框,
但是基本不会用;
EndDialog, 这个API可以用于关闭模态对话框,
而非模态对话框使用DestroyWindow和发送Quit消息来退出窗口
0x3 对话框的种类
1模态对话框(modal)
模态创建的窗口, 其父窗口是不接受任何消息的, 也就是卡死的, 并且ShowWindow 和
UpdataWindow和消息循环都是在DialogBox 内实现, 不用在单独编写
2非模态对话框(modeless)
非模态创建的窗口, 其父窗口同时也是接受消息的, 也就是说都是可以自由活动的,
而ShowWindow 和 UpdataWindow和消息循环都需要在创建窗口后自行编写;
0x4 什么是控件
控件其实也是一个窗口, 一般都奴隶于某个父窗口, 建立窗口的函数也是CreateWindow,
只是其功能和风格都已固定化, 被称谓控件;
0x5 如何获取和设置控件信息
获取/设置内容:应用程序向控件发送指定的消息, SendMessage();
如发送LB_ADDSTRING, 就是表示给ListBox控件添加字符串;
0x6 父窗口如何与控件交互的
当你操作一个控件的时候, 控件会向父窗口发送某一个特定的消息,
这个消息就是”WM_COMMAND” 应用程序需要在父窗口的窗口过程函数中处理,
而此消息的w参数的高位, 就是操作控件的动作, 可以以此做出相应的操作;
如下图:
而WM_COMMAND可以获得控件的信息就只有上图四个,
而你需要获取更多关于控件的信息时, 则需要用到WM_NOTIFY这个消息, 这个以后再谈;