获得文本框中的文本的句柄的方法,请高手指示 VC++&&WINAPI

一个文本框,或者是静态的,请问怎样可以获得它的文本的句柄,然后直接调用,读取其中的文本呢?用SendMessage(GetDlgItem(hwndDlg,IDC_EDIT... 一个文本框,或者是静态的,请问怎样可以获得它的文本的句柄,然后直接调用,读取其中的文本呢?
用SendMessage(GetDlgItem(hwndDlg,IDC_EDIT),WM_GETTEXT, _MAX_PATH ,reinterpret_cast<LPARAM>(lpFile) );只能得到文本的副本!希望高手解决!
要是vc++的,其它的看不懂!最好用winapi!mfc也行!在学mfc!
设想一下,有一个静态文本框,其中有大量的文本,固然说“文本的句柄”是错的,如果有一个指针指向其中的文本字符串,不求写入,只求读写。实在不行的话,能够得到其中文本的大小,以便在内存中分配同样的内存以存放文本框中的文本,这样也可以啊,下面两位大侠说的都很好,水平一定也很高,就感谢了!看来我要发起投票了!不过还是希望高手再帮我回答这个问题!
展开
 我来答
魔高丈
推荐于2016-04-12 · TA获得超过9506个赞
知道大有可为答主
回答量:2066
采纳率:0%
帮助的人:3470万
展开全部
文本的句柄?文本还有句柄,如果是要得到文本框的句柄可以用GetDlgItem函数;

如果你想得到里面的文本内容可以这样:
MFC的方法:
CString str;
GetDlgItem(IDC_EDIT)->GetWindowText(str); //str里就是文本的内容了

这样就可以了。

补充:
你补充的描述,我还是不是太明白,最后的目的不就是为了得到文本框或编辑框中的字符吗,如果是这样的话,用我上面的方法完全就可以了。
首先如果有一个编辑框,你在其中输入的大量的字符,而你不执行任何操作的话,程序是无法获得这些字符的。使用GetWindowText函数后,就把这些字符全部存放到了变量str中。str是一个CString类型的变量,它的内存大小是根据字符串的多少自动分配的,这样还省了你自己分配内存呢。
如果想得到这些字符串的大小,可以使用CString类的GetLength函数:
int nLength = str.GetLengeh();//得到输入的字符串长度
另外CString类中还有很多字符串处理的函数方便你的调用。
stone_dongdong
2009-01-09 · TA获得超过2853个赞
知道大有可为答主
回答量:1636
采纳率:0%
帮助的人:1023万
展开全部
不光是文本框或静态框(继承自CWnd的窗口),都有附加的text。
文本是没有句柄这个概念的,只有系统资源有,象窗口句柄、设备句柄、图标,图像等的句柄。
窗口都可以通过 GetWindowText(),SetWindowText()来读取设置窗口文本内容,没必要使用SendMessage来发送消息才取得。
得到的确实是文本内容的副本,原本是得不到的,微软将这个数据封闭了,在CWnd->CCmdTarget->CObject里面都没有文本成员,看来它们是在系统中将窗口句柄和文本内容绑定的,而不是放在类的成员函数中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式