65.9K
CodeProject 正在变化。 阅读更多。
Home

创建模型对话框作为子窗口

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (9投票s)

2000 年 11 月 10 日

viewsIcon

298757

downloadIcon

3341

一个简单的分步文章,解释如何创建无模式对话框作为子窗口。

本文是 拖放界面 示例的一部分。

  1. 序列化 ASCII 数据
  2. 无模式子对话框
  3. 无模式兄弟对话框
  4. 拖放源
  5. MFC 目标
  6. TBTextTarget 类

要创建作为应用程序兄弟窗口的无模式对话框,请访问此链接。

请遵循以下步骤

  1. 创建一个新的对话框资源,并使用“类向导”为它创建一个基于CDialog的新类;我们称之为CDropDialog
  2. 在您的CFormView派生类中,添加一个类型为CDropDialog*的(private)成员变量,作为无模式对话框类的容器,我们称之为m_pModeless。在您的视图的构造函数中,确保将m_pModeless初始化为NULL
  3. 在您的适当的消息处理程序中,我们称之为OnModeless,执行以下操作
    void CInterfaceView::OnModeless() 
    {
        // Display the modal dialog box
        if (!m_pModeless)
            m_pModeless = new CDropDialog;
    
        if (!::IsWindow(m_pModeless->GetSafeHwnd()))
            m_pModeless->Create(IDD_DIALOG1, this);
    
        m_pModeless->ShowWindow(SW_SHOW); 
    }

在父窗口的析构函数中,检查对话框是否已关闭并释放内存

CInterfaceView::~CInterfaceView()
{
    if (m_pModeless)
    {
        if (::IsWindow(m_pModeless->GetSafeHwnd()))
            m_pModeless->EndDialog(IDCANCEL);
        delete m_pModeless;
    }
}

许可证

本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。

作者可能使用的许可证列表可以在此处找到。

© . All rights reserved.