按你的方法,打开文件对话框已变为非模态的了!
想向你请教:
1.去掉对话框的边框:fileDlg->ModifyStyle(1,WS_BORDER);是这句吗?可是不行啊?
2.我想通过点击父窗口的一个按钮,关闭这个对话框,用EndDialog(关闭模态的),DestroyDialog(关闭非模态的)都关闭不了??
想向你请教:
1.去掉对话框的边框:fileDlg->ModifyStyle(1,WS_BORDER);是这句吗?可是不行啊?
2.我想通过点击父窗口的一个按钮,关闭这个对话框,用EndDialog(关闭模态的),DestroyDialog(关闭非模态的)都关闭不了??
2/调用OnCancel也关不了?
非模式的对话框,销毁时,需要对话框响应DestroyWindow,然后函数里delete this;
在WM_NCDESTROY中不是会自动delete堆上的对话框映射对象吗?
2.调用fileDlg->OnCancel(); fileDlg是MyCFileDialog的一个对象,MyCFileDialog继承自CFileDialog
void MyCFileDialog::OnCancel()
{
CDialog::OnCancel();
}
不关闭,没反应!
2.应该算是模态的对话框,因为我DoModal()产生的,
void CMyFileDialog::OnInitDone()
{
GetParent()->GetParent()->EnableWindow();
CFileDialog::OnInitDone();
}
通过这个句修改了模式的属性!而且EndDialog,DestroyDialog,delete我都试了,都关闭不了
CFileDialog::OnCancel()呢?
2、fileDlg->GetParent()->SendMessage(WS_CLOSE);
1.
void CTabSheet::OnLButtonDown(UINT nFlags, CPoint point)
{
...........部分代码省略.........
if(fileDlg->GetSafeHwnd())
{
//MessageBox("该窗口已经显示,不能再次打开","提示",MB_OK);
}
else
{
fileDlg->ModifyStyle(WS_BORDER,0);
fileDlg->DoModal();
}
}
这么加对吗?运行报错啊!
2.
报错'WS_CLOSE' : undeclared identifier 是不是需要什么头文件?程序的结构是这样:
class CTabSheet : public CTabCtrl
{
...........部分代码省略.........
protected:
MyCFileDialog* fileDlg;
};
class MyCFileDialog : public CFileDialog
2、我写错了,是WM_CLOSE。
1、parent->GetParent()->ModifyStyle(WS_BORDER, 0);
GetParent()->ModifyStyle(WS_BORDER, 0);
我想把这个对话框挪一下位置!用下面的这句对吗?可是报错'hwnd' : undeclared identifierSetWindowPos(hwnd,0,290,270,0,0,SWP_NOSIZE);