可不可以在一个对话框函数中给另一个对话框的listbox控件赋值
莪要在一个对话框函数中给别另一个对话框的listbox控件赋值。当第一个对话框热行第二个对话框的domodal()函数时listbox就显示赋的值...
莪要在一个对话框函数中给别另一个对话框的listbox控件赋值。当第一个对话框热行第二个对话框的domodal()函数时listbox就显示赋的值
展开
4个回答
展开全部
解决这个问题办法很多,说一个常用的吧。
设第2个对话框类叫CDialog2,listbox的控件ID叫做IDC_DIALOG2_LISTBOX
给第2个对话框里加个成员变量 CStringArray m_sBuffer;简便启见把它声明成public
重载CDialog2的对话框初始化函数:
BOOL CDialog2::OnInitDialog()
{
CDialog::OnInitDialog();
CListBox *pListBox;
int i,Cnt;
pListBox=(CListBox *)GetDlgItem(IDC_DIALOG2_LISTBOX);//更简便的方法是从类向导里加一个关联的控制变量
Cnt=m_sBuffer.GetSize();
for(i=0;i<Cnt;i++) pListBox->AddString(m_sBuffer[i]);
m_sBuffer.RemoveAll();//用完清除,根据你的需要可以不清
……
return TRUE;
}
下面再说说怎么用:
设第2个对话框类的对象叫CDialog2 m_Dialog2;
在你执行对话框2的DoModal之前把你要显示的值加到m_Dialog2.m_sBuffer里面
m_Dialog2.m_sBuffer.Add("我要显示的第一项");
m_Dialog2.m_sBuffer.Add("我要显示的第二项");
m_Dialog2.m_sBuffer.Add("我要显示的第三项");
……
m_Dialog2.DoModal();
设第2个对话框类叫CDialog2,listbox的控件ID叫做IDC_DIALOG2_LISTBOX
给第2个对话框里加个成员变量 CStringArray m_sBuffer;简便启见把它声明成public
重载CDialog2的对话框初始化函数:
BOOL CDialog2::OnInitDialog()
{
CDialog::OnInitDialog();
CListBox *pListBox;
int i,Cnt;
pListBox=(CListBox *)GetDlgItem(IDC_DIALOG2_LISTBOX);//更简便的方法是从类向导里加一个关联的控制变量
Cnt=m_sBuffer.GetSize();
for(i=0;i<Cnt;i++) pListBox->AddString(m_sBuffer[i]);
m_sBuffer.RemoveAll();//用完清除,根据你的需要可以不清
……
return TRUE;
}
下面再说说怎么用:
设第2个对话框类的对象叫CDialog2 m_Dialog2;
在你执行对话框2的DoModal之前把你要显示的值加到m_Dialog2.m_sBuffer里面
m_Dialog2.m_sBuffer.Add("我要显示的第一项");
m_Dialog2.m_sBuffer.Add("我要显示的第二项");
m_Dialog2.m_sBuffer.Add("我要显示的第三项");
……
m_Dialog2.DoModal();
展开全部
知道哪个对话框上listbox 窗口的句柄就可以。
给他发送消息就能执行对listbox的所有操作。
如果要它在domodal 的时候就显示,那就在第二个对话框里面设置变量数据,在第一个对话框的函数里面修改这些变量数据才行。
给他发送消息就能执行对listbox的所有操作。
如果要它在domodal 的时候就显示,那就在第二个对话框里面设置变量数据,在第一个对话框的函数里面修改这些变量数据才行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CSecondDlg secdlg;
secdlg.m_ListBox="hello";
secdlg.DoModal();
这样就可以了吧
secdlg.m_ListBox="hello";
secdlg.DoModal();
这样就可以了吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
回答者: 负家子弟 - 总监 九级 的回答是正解
学习了
学习了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询