15,979
社区成员
发帖
与我相关
我的任务
分享
UINT WINAPI GetDlgItemText(
_In_ HWND hDlg,
_In_ int nIDDlgItem,
_Out_ LPTSTR lpString,
_In_ int nMaxCount
);
nMaxCount 是取文本的最大长度,所以一般是先定义一个定长的TCHAR数组,然后把文本取到这个数组中TCHAR szText1[512];
GetDlgItemText(hDlg,IDC_EDIT1,(LPTSTR)szText1, 512);
MessageBox(0, szText1, TEXT("title"), 0);
但是我不知道用户要输入多长的文本,如果事先固定好长度,用户输入的文本太长,可能无法获得用户输入的所有内容。// 需要先 #include <WindowsX.h>
HWND h = GetDlgItem(hDlg, IDC_EDIT1);
TCHAR *szText2 = NULL;
size_t bufferLength = (Edit_GetTextLength(h) + 1) * sizeof(TCHAR);
szText2 = (TCHAR *)malloc(bufferLength);
if (szText2)
{
GetDlgItemText(hDlg,IDC_EDIT1,(LPTSTR)szText2,bufferLength);
MessageBox(0, szText2, TEXT("title"), 0);
free(szText2);
szText2 = NULL;
}
我自己测试没有问题,还有没有别的方法来获取文本框内容(不限制长度)呢?
CString data;
CWnd::GetDlgItemText(IDC_EDIT1,data);