MFC设置在主窗口上设置子窗口弹窗,通过按钮弹窗,并且子窗口在主窗口之外显示,子窗口需要保持显示,而不是一闪而过
时间: 2023-10-01 13:05:35 浏览: 252
您可以通过以下步骤在 MFC 的主窗口上设置子窗口弹窗:
1. 在主窗口的类中添加一个成员变量,用于存储子窗口的指针。
2. 在主窗口的 OnInitDialog() 函数中创建子窗口对象,并将其隐藏起来,以备后续使用。示例代码如下:
```cpp
BOOL CMainFrame::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 创建子窗口
m_pChildWnd = new CChildDlg(this);
m_pChildWnd->Create(IDD_CHILD_DIALOG, this);
m_pChildWnd->ShowWindow(SW_HIDE);
return TRUE;
}
```
3. 在主窗口的按钮响应函数中,显示子窗口并将其置于顶层。示例代码如下:
```cpp
void CMainFrame::OnBtnShowChildWnd()
{
// 显示子窗口
m_pChildWnd->ShowWindow(SW_SHOW);
// 将子窗口置于顶层
m_pChildWnd->SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
}
```
4. 在子窗口的 OnClose() 函数中,将其隐藏起来而不是销毁它。示例代码如下:
```cpp
void CChildDlg::OnClose()
{
// 隐藏窗口而不是销毁它
ShowWindow(SW_HIDE);
}
```
这样,当用户单击按钮时,子窗口将显示在主窗口之外,并保持显示状态,直到用户关闭它。
阅读全文