对话框初始化的问题!
void CMainFrame::OnOptionsDlgtest()
{
// TODO: Add your command handler code here
CDlgTest test;
//下面这段会报异常,我想问一下为什么?这个放在test的OnInitDialog()里初始化是没有问题的
CListBox* pListB = (CListBox* )test.GetDlgItem(IDC_LIST_TEST);
pListB->AddString(strTest);
pListB->AddString(strEdit);
if(test.DoModal() == IDOK)
{
strTest = test.m_szEdit;
}
}
问题点数:20、回复次数:2Top
1 楼alino(小舞)回复于 2005-08-13 00:30:29 得分 5
只是创建了test对象,对话框还没有真正创建,GetDlgItem怎么获取得到
DoModal以后,对话框才会被真正创建,里面的一些元素才会有啊Top
2 楼windcsn(向所有的朋友学习!)回复于 2005-08-13 00:36:08 得分 15
原因在于对话框的窗口还没有创建你就想得到对话框上的子窗口,这个时候出现访问异常。解决办法有两种:
1.在调用TEST的构造函数之后(这个时候窗体并没有创建),需要CREATE窗口,然后调用下面的方法就没有问题了。
2.使用DOMODAL,这个时候DOMODAL会为你创建窗口,但你如果将调用写到DOMODAL后面,你是看不到效果的,因为窗体是摸态的,这个时候你只能在TEST DIALOG的里面调用了。Top




