Jav*_*dro 9 mfc modal-dialog cdialog
我有一个对话框(CDialog派生类),可以以两种不同的方式使用(编辑模式和编程模式).
打开对话框以在编程模式下使用时,它是一个无模式对话框,用于修改主视图(工具栏的类型).当它在编辑模式下打开时,用户可以更改对话框本身的配置,在这种情况下,它是一个模态对话框.
现在它们是两个不同的对话框,几乎没有差异,我想只需要对话框,让用户只需按对话框中的按钮即可在编程模式和编辑模式之间切换.
所以我需要在运行时在模态对话框中转换无模式对话框,反之亦然.有办法实现吗?
谢谢.
Jav*_*dro 13
也许有人可能有兴趣在将来做类似的事情,这是我最终做到的方式:
我使用主框架的这两个功能:CMainFrame::BeginModalState()和CMainFrame::EndModalState().
这些功能的问题与禁用父窗口的问题相同.您要制作模态的窗口也会被禁用.但解决方案很简单,只需在调用后重新启用窗口即可BeginModalState.
void CMyDialog::MakeModal()
{
//disable all main window descendants
AfxGetMainWnd()->BeginModalState();
//re-enable this window
EnableWindow(TRUE);
}
void CMyDialog::MakeModeless()
{
//enable all main window descendants
AfxGetMainWnd()->EndModalState();
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
| 归档时间: |
|
| 查看次数: |
7784 次 |
| 最近记录: |