可不可以在一个对话框函数中给另一个对话框的listbox控件赋值

莪要在一个对话框函数中给别另一个对话框的listbox控件赋值。当第一个对话框热行第二个对话框的domodal()函数时listbox就显示赋的值... 莪要在一个对话框函数中给别另一个对话框的listbox控件赋值。当第一个对话框热行第二个对话框的domodal()函数时listbox就显示赋的值 展开
 我来答
负家子弟
2009-07-10 · TA获得超过3567个赞
知道大有可为答主
回答量:1336
采纳率:0%
帮助的人:1470万
展开全部
解决这个问题办法很多,说一个常用的吧。

设第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();
stone_dongdong
2009-07-10 · TA获得超过2853个赞
知道大有可为答主
回答量:1636
采纳率:0%
帮助的人:1026万
展开全部
知道哪个对话框上listbox 窗口的句柄就可以。
给他发送消息就能执行对listbox的所有操作。
如果要它在domodal 的时候就显示,那就在第二个对话框里面设置变量数据,在第一个对话框的函数里面修改这些变量数据才行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伯光师兄
2009-07-10 · TA获得超过347个赞
知道小有建树答主
回答量:145
采纳率:0%
帮助的人:111万
展开全部
CSecondDlg secdlg;
secdlg.m_ListBox="hello";
secdlg.DoModal();
这样就可以了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jds423
2009-07-10 · TA获得超过154个赞
知道小有建树答主
回答量:94
采纳率:0%
帮助的人:0
展开全部
回答者: 负家子弟 - 总监 九级 的回答是正解
学习了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式