SOUI 宿主窗口系统¶
SOUI 宿主窗口系统是 SOUI 框架的核心组成部分,它为 DirectUI 系统提供了与 Windows 窗口系统交互的桥梁。本节将详细介绍 SOUI 的两种主要宿主窗口类型。
概述¶
SOUI 提供了两种基本的宿主窗口类型:
1. SHostWnd - 基础宿主窗口¶
- 作为普通窗口使用
- 支持普通窗口所有功能
- 可自定义窗口样式和行为
2. SHostDialog - 对话框宿主窗口¶
- 支持模态和非模态对话框
- 提供标准对话框功能
- 简化对话框开发流程
详细文档¶
- 基础宿主窗口 (SHostWnd) - 了解 SOUI 基础宿主窗口的实现和用法
- 对话框宿主窗口 (SHostDialog) - 学习如何使用 SOUI 创建和管理对话框
选择指南¶
使用 SHostWnd 的场景¶
- 创建应用程序主窗口
- 需要完全自定义窗口行为
- 实现特殊窗口效果
- 创建工具窗口或浮动窗口
使用 SHostDialog 的场景¶
- 创建配置对话框
- 实现向导界面
- 显示消息提示
- 需要模态交互
示例代码¶
SHostWnd 示例¶
// 创建主窗口
class CMainWindow : public SHostWnd
{
public:
CMainWindow() : SHostWnd(_T("LAYOUT:XML_MAINWND")) {}
void OnInit() {
Create(_T("SOUI Application"),
WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
WS_EX_APPWINDOW);
}
};
SHostDialog 示例¶
// 创建设置对话框
class CSettingsDialog : public SHostDialog
{
public:
CSettingsDialog() : SHostDialog(_T("LAYOUT:XML_SETTINGS")) {}
// 显示模态对话框
void ShowDialog() {
DoModal();
}
};
功能对比¶
特性 | SHostWnd | SHostDialog |
---|---|---|
窗口类型 | 普通窗口 | 对话框 |
模态支持 | 不支持 | 支持 |
父窗口关联 | 可选 | 通常必需 |
最小化/最大化 | 支持 | 通常不支持 |
系统菜单 | 支持 | 可选 |
大小调整 | 完全支持 | 可选支持 |
最佳实践¶
- 窗口类型选择
- 主窗口使用 SHostWnd
- 交互对话框使用 SHostDialog
-
特殊窗口根据需求选择
-
资源管理
- 合理规划窗口资源
- 正确处理窗口生命周期
-
及时释放相关资源
-
性能优化
- 适当使用窗口缓存
- 控制重绘区域
-
优化事件处理
-
开发建议
- 遵循单一职责原则
- 合理划分窗口层次
- 做好错误处理