GUI程序实例分析
分析一个具体的实例
GUI程序开发梗概
- 现代操作系统提供原生SDK支持GUI程序开发;
- GUI程序开发是现代操作系统上的主流技术;
- 不同操作系统上的GUI开发原理相同;
- 不同操作系统上的GUI SDK 不同;
GUI程序开发原理
- GUI程序在运行时会创建一个消息队列;
- 系统内核将用户操作翻译成对应的程序消息;
- 程序在运行过程中需要==实时处理队列中的消息;
- 当队列中没有消息时,程序将处于停滞状态;
int main()
{
fd = DefineMainWindow();
win = CreateMainWindow(fd);
CreateElements(win);
DisplayMainWindow(win);
while(GetMessage(&msg))
{
}
return 0;
}
GUI程序开发的本质
- GUI程序开发:
– 在代码中用程序创建窗口及窗口元素;
– 在消息处理函数中根据程序消息做出不同响应; - 经典GUI程序开发模式:
可视化界面开发 | 消息映射 |
---|
通过所见即所得的方式“画”出界面;开发环境自动生成对应的程序代码 | 程序中将具体消息映射到指定函数;当消息触发时,函数被调用 |
GUI程序开发实例
- 多数操作系统以C函数的方式提供GUI SDK;
- 以Windows操作系统为例:
函数名 | 功能 |
---|
RegisterClass | 向系统注册GUI窗口式样 |
CreateWindow | 创建窗口或窗口元素 |
ShowWindow | 在屏幕上显示创建好的窗口 |
UpdateWindow | 刷新屏幕上的窗口 |
GetMessage | 获取程序消息队列中的消息 |
TranslateMessage | 翻译系统消息 |
DispatchMessage | 将消息发送到窗口处理函数 |
总结
- 现代操作系统提供原生SDK支持的GUI程序开发;
- 不同操作系统上的 GUI SDK不同;
- 不同操作系统上的GUI开发原理相同;
- GUI程序开发包括:
– 在代码中用程序创建窗口及窗口元素;
– 在消息处理函数中根据程序消息做出不同响应;