1个回答
展开全部
插入一个子dialog,并生成类
在主窗口初始化函数中增加如下内容(后面有中文注释的是增加的)
BOOL CPareSubDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
sDlg = new subdlg(this); //其他系统生成的不管 这三行 创建类对象
sDlg->Create(IDD_DIALOG1, this); //创建子窗口
sDlg->ShowWindow(SW_SHOW); //显示子窗口
return TRUE; // return TRUE unless you set the focus to a control
}
在主窗口中添加一个按钮IDC_BUTTON1,增加一个按钮响应函数OnButtonHideSubBtn
增加第二个类函数switchState
void CPareSubDlg::OnButtonHideSubBtn()
{
// TODO: Add your control notification handler code here
switchState(sDlg->GetDlgItem(IDOK)->IsWindowVisible()?SW_HIDE:SW_SHOW);
//获取子窗口确定按钮的显示状态,根据当前状态做显示或者隐藏
}
//这里就是具体实现显示或者隐藏,并且修改主窗口上这个隐藏显示子窗口按钮的按钮名字
void CPareSubDlg::switchState(bool mod)
{
SetDlgItemText(IDC_BUTTON1,mod?"Hide":"Show"); //主窗口控住按钮名字变更
sDlg->GetDlgItem(IDOK)->ShowWindow(mod); //显示隐藏子窗口确定按钮显示隐藏
sDlg->GetDlgItem(IDCANCEL)->ShowWindow(mod); //显示隐藏子窗口取消按钮显示隐藏
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询