基于对话框的应用程序
在主对话框上有一个按钮,我想做到:单击该按钮就打开另外一个对话框。
另外一个对话框对应的类CSelectRules只是简单的从CDialog继承的,我只在另外一个对话框上面又加了几个按牛、树行控件,把大小也变大了...在主对话框上的按钮on_click函数如下:
void C主Dlg::OnBNS这个按钮()
{
CSelectRules dlgSelectRules;
int nRetCode=dlgSelectRules.DoModal();
if(nRetCode==IDOK)
{...}
else
{...}
}运行的时候,我在int nRetCode=dlgSelectRules.DoModal();前面设断点,然后向下运行,我发现这一行运行以后,nRetCode==-1 !于是,我改为CSelectRules dlgSelectRules(this);
nRetCode仍然==-1 !我又改为CSelectRules dlgSelectRules((GetDlgItem(IDD_主对话框));
nRetCode仍然==-1 !我之所以这样改,因为我一直认为问题出在
CDialog::CDialog( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );
我一直认为我的pParentWnd 参数有问题,是不是这样呢?
如果是这样,我该如何得到pParentWnd ?
在主对话框上有一个按钮,我想做到:单击该按钮就打开另外一个对话框。
另外一个对话框对应的类CSelectRules只是简单的从CDialog继承的,我只在另外一个对话框上面又加了几个按牛、树行控件,把大小也变大了...在主对话框上的按钮on_click函数如下:
void C主Dlg::OnBNS这个按钮()
{
CSelectRules dlgSelectRules;
int nRetCode=dlgSelectRules.DoModal();
if(nRetCode==IDOK)
{...}
else
{...}
}运行的时候,我在int nRetCode=dlgSelectRules.DoModal();前面设断点,然后向下运行,我发现这一行运行以后,nRetCode==-1 !于是,我改为CSelectRules dlgSelectRules(this);
nRetCode仍然==-1 !我又改为CSelectRules dlgSelectRules((GetDlgItem(IDD_主对话框));
nRetCode仍然==-1 !我之所以这样改,因为我一直认为问题出在
CDialog::CDialog( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );
我一直认为我的pParentWnd 参数有问题,是不是这样呢?
如果是这样,我该如何得到pParentWnd ?
常见的情况是,因为RICHEDIT没有初始化,在DLL里调用对话框之前先使用一个宏。
{
CDialog::DoModal();
}
还是不行
跟以前一样
我调试的时候,查看所用的hWnd=0x00000000
这对吗?
不行!
是的,去掉RICHEDIT,就没有问题了!!!