MFC如何选中combo box的一个内容,将这个内容显示在edit中?请高手指点?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC如何选中combo box的一个内容,将这个内容显示在edit中?请高手指点?相关的知识,希望对你有一定的参考价值。

新建一个对话框,在对话框初始化时组合框添加如:2008,2009,2010等,选择2008,然后点击确定能产生一个非模态对话框(非模态对话框是由两个对话框组成的,一个对话框上有一个tab控件,由tab控件产生了一个属性页是,组合起来形成的一个对话框),将2008显示在这个非模态对话框中的edit控件上。
总得来说是有三个对话框,选择第一个对话框里的combo box内容,显示在第三个对话框里的edit上,这个中间怎么过渡?请高手指点,谢谢。

参考技术A 第一步,combox可以创建相应的变量对吧,你创建一个它的CComboBox 变量 m_com1;
第二步,“点击”对应的function里,你添加如下代码:
GetLBText( GetCurSel(),
lpszText //返回的就是你选中的“2008”
) ;
第三步:你产生一个非墨太对话框m_dlg,这个对话框你可以为其创建一个成员变量,char m_str1[20];
然后还是在上面function里,等非墨太对话框创建后,给m_str1赋值lpszText。
第四步:我想你明白了,对,就是显示你的tab里的那个需要显示的属性页所在的dialog,为这个dialog创建一个成员函数SetEdit(char* szSrc) ,具体代码就是把输入参数szSrc的内容显示在它的editbox里。
第五步:就是给非墨太对话框创建一个成员函数
Settabedit(char* szSrc)

m_dlg1.SetEdit(szSrc); //这个m_dlg1就是这个非墨太对话款的成员变量,也就是它所包含的那个属性页所在的dialog,你应该明白吧

第六步:返回第三步末尾,给m_str1赋值lpszText。然后就m_dlg.Settabedit(lpszText);

ok,大功告成!追问

不好意思,我还是不大明白,可以把代码贴一下不?

追答

我没去实现,只是说一下思路啊

本回答被提问者采纳

MFC char*如何转换为CString,并显示在edit box中

edit 定义了一个CString属性的值m_edit

现在有一个字符串指针char* str="abcde"
要怎么做才能将str指向的值赋给m_edit

我可以直接等于

mode.SetString(str);这个也行

参考技术A m_edit = str;
UpdateData(FALSE);

前提是通过ClassWizard绑定的成员变量,也就是说DoDataExchange中有这么一行:
DDX_Text(pDX, IDC_EDIT1, m_edit);本回答被提问者采纳
参考技术B 要看编码方式,UNICODE的话,就要把str转换到宽字符。
m_edit = CA2W(str);追问

CA2W 需要头文件吗?是没有声明的变量

以上是关于MFC如何选中combo box的一个内容,将这个内容显示在edit中?请高手指点?的主要内容,如果未能解决你的问题,请参考以下文章

MFC 获取Combo Box控件 当前选定项的序号和文本内容

mfc如何给combo box关联byte型变量

MFC下拉框Combo Box

MFC控件之Combo Box

MFC 下拉框Combo Box

转VS2010/MFC编程入门之二十五(常用控件:组合框控件Combo Box)