小弟想在下列程序中的pMyDlg->DoModal()显示的窗口中
根据i是否等于6来决定是否显示窗口中ID为IDC_MYBUTTON的按钮。可是下面的程序在运行时出错(编译通过),哪位大虾能告诉我该怎么做吗?int i=6;
pMyDlg = new CMyDlg();
if (i==6)
{
//不显示MyDlg中的ID 为 IDC_MYBUTTON 的按钮
pMydlg->GetDlgItem(IDC_MYBUTTON)->ShowWindow(SW_HIDE);
}
else
{
//显示MyDlg中的ID 为 IDC_MYBUTTON 的按钮
pMydlg->GetDlgItem(IDC_MYBUTTON)->ShowWindow(SW_SHOW);
}
int nResponse = pMyDlg->DoModal();
根据i是否等于6来决定是否显示窗口中ID为IDC_MYBUTTON的按钮。可是下面的程序在运行时出错(编译通过),哪位大虾能告诉我该怎么做吗?int i=6;
pMyDlg = new CMyDlg();
if (i==6)
{
//不显示MyDlg中的ID 为 IDC_MYBUTTON 的按钮
pMydlg->GetDlgItem(IDC_MYBUTTON)->ShowWindow(SW_HIDE);
}
else
{
//显示MyDlg中的ID 为 IDC_MYBUTTON 的按钮
pMydlg->GetDlgItem(IDC_MYBUTTON)->ShowWindow(SW_SHOW);
}
int nResponse = pMyDlg->DoModal();
如果你用DoModal(),就不要用new。 直接CMyDlg dlg;在栈创建对话框,然后调用 dlg.DoModal();就可以了。
int i = ...;
CMyDlg* pDlg = new CMyDlg;
pDlg->m_i = i;
BOOL CMyDlg::OnInitDialog()
{
if(m_i == 6){
GetDlgItem(IDC_MYBUTTON)->ShowWindow(SW_HIDE);
}
else{
GetDlgItem(IDC_MYBUTTON)->ShowWindow(SW_NORMAL);
}
}