怎么把string型赋值给mfc中的一个edit box
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么把string型赋值给mfc中的一个edit box相关的知识,希望对你有一定的参考价值。
参考技术A 可以利用classwizard给这个EditBox绑定一个CString类型的成员变量.然后利用对话框数据交换函数UpdateData()对值设置或更新.如果在SDK环境下,则可以利用SetWindowText( hEdit,TEXT("ABC") )和 TCHAR szBuf[256],GetWindowText( hEdit, szBuf, 256 ); 设置和获取EditBox的string型值. 参考技术B 假设
string变量名为str
editbox的ID为IDC_EDIT1
可以用 GetDlgItem(IDC_EDIT1)->SetWindowText(str)实现赋值本回答被提问者采纳 参考技术C 如果通过对话框(dialog) 输入, 应当在它的dialog类(class) DoDataExchange 等地方定义。
mfc中用 CString class 或 char 型, 这两者都可用于存放string, CString 类 赋值 要用CString class 的成员函数,char型 要用 strcpy(), sprintf() 等函数,CString 与 char 型 交换有时不复杂,有时复杂(有时涉及指针,有时不涉及,有时混合)。
C++ MFC 自定义函数中 给IDC_EDIT1 赋值,谢谢
在自定义函数中给对话框和form的控件赋值,必须首先得到对话框等窗口的指针。因此必须明确两者之间的关系,不能是纯粹的无关系,这样在MFC体系中是不合乎体系逻辑的。推荐办法:
在对话框类做自定义函数(即:函数是类成员函数),这样在自定义函数中,就可以:
GetDlgItem(IDC_EDIT1)->SetWindowText(_T("XXX"));
这样赋值了。追问
具体怎么做呢?我刚学,有点不太懂,如果这样做,在其它地方调用这个函数会不会有问题?
追答对话框控件的赋值,最好在内部完成,不要在外部(也就是不要在外部调用这个函数),尤其是模态对话框。
对话框类,右键,Add Function即可。
方法二:绑定控件变量
VC6.0按快捷键Ctrl+W,更高版本Ctrl+shift+X打开类向导。
如果绑定了控件m_wndEdit,直接用m_wndEdit.SetWindowText()即可。
如果绑定了控件变量m_strEdit,在变量赋值上下文添加updateData()即可。追问
m_wndEdit,m_strEdit是自己填上去的吗?是不是任何名字都可以的?
追答是的,这个只是变量名而已。
参考技术B 可以给edit控件关联一个cstring变量,并且update(true或false),如果是取控件value用true,显示用false,大概是这样,记的不是很清楚追问能写下简单代码吗?
追答注意之前回答有错
CEdit a;
DoDataExchange函数增加DDX_Control(pDX, IDC_EDIT1, a );
上面是可以直接在类向导中对应类的成员变量中完成
在需要赋值的位置:
a.SetWindowText(cstring);
UpdateData(FALSE);
在自定的函数体中也可以用吗?
UpdateData(FALSE);
有2065错'这个应放在那儿?
放在赋值之后希望显示在控件中时
追问但有2065号错误,这是为什么呢?
追答清理项目,然后rebuild all
试试
以上是关于怎么把string型赋值给mfc中的一个edit box的主要内容,如果未能解决你的问题,请参考以下文章