Skip to content

SOUI 宿主窗口系统

Warning

The current page still doesn't have a translation for this language.

You can read it through google translate.

SOUI 宿主窗口系统是 SOUI 框架的核心组成部分,它为 DirectUI 系统提供了与 Windows 窗口系统交互的桥梁。本节将详细介绍 SOUI 的两种主要宿主窗口类型。

概述

SOUI 提供了两种基本的宿主窗口类型:

1. SHostWnd - 基础宿主窗口

  • 作为普通窗口使用
  • 支持普通窗口所有功能
  • 可自定义窗口样式和行为

2. SHostDialog - 对话框宿主窗口

  • 支持模态和非模态对话框
  • 提供标准对话框功能
  • 简化对话框开发流程

详细文档

选择指南

使用 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
窗口类型 普通窗口 对话框
模态支持 不支持 支持
父窗口关联 可选 通常必需
最小化/最大化 支持 通常不支持
系统菜单 支持 可选
大小调整 完全支持 可选支持

最佳实践

  1. 窗口类型选择
  2. 主窗口使用 SHostWnd
  3. 交互对话框使用 SHostDialog
  4. 特殊窗口根据需求选择

  5. 资源管理

  6. 合理规划窗口资源
  7. 正确处理窗口生命周期
  8. 及时释放相关资源

  9. 性能优化

  10. 适当使用窗口缓存
  11. 控制重绘区域
  12. 优化事件处理

  13. 开发建议

  14. 遵循单一职责原则
  15. 合理划分窗口层次
  16. 做好错误处理

相关资源

下一步