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 - 对话框宿主窗口

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

3. ModalView - 现代化模态视图

  • 基于窗口栈的模态会话管理
  • 支持多层嵌套和进出动画
  • 跨平台一致的模态交互体验
  • 详细说明请参阅 ModalView 文档

详细文档

选择指南

使用 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 ModalView
窗口类型 普通窗口 对话框 模态视图
模态支持 不支持 支持 支持
父窗口关联 可选 通常必需 必需(SRootWindow)
多层嵌套 ✅ 栈式堆叠
进出动画 ✅ 支持
跨平台 Windows Windows Windows/Android
大小调整 完全支持 可选支持 自定义布局

最佳实践

  1. 窗口类型选择
  2. 主窗口使用 SHostWnd
  3. 需要独立 HWND 的对话框使用 SHostDialog
  4. 现代跨平台模态 UI 推荐使用 ModalView

  5. 资源管理

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

  9. 性能优化

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

  13. 开发建议

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

相关资源

下一步