为什么GetWindowText和GetDlgItemText不起作用
我创建了个对话框,然后在对话框里添加了2个EDIT,一个是用户名,一个是密码
代码如下:
hWinUserName = GetDlgItem(hWnd,IDC_EDIT1);
BYTE UserName[36] = { 0x10, 0 };
GetWindowText( hWinUserName, (char*)&UserName[2], 30 );
结果UserName[]里什么都没得到
我换了个函数GetDlgItemText,也不行
GetDlgItemText( hWinUserName, IDC_EDIT1, (char*)&UserName[2], 30 );
接下来调用GetWindowTextLong也什么都没得到
哪里出错了
问题点数:10、回复次数:6Top
1 楼Snow_Ice11111(雪上加冰)回复于 2006-05-03 22:49:31 得分 0
(char*)&UserName[2]
----------------------------------------
干嘛这么用?得到字符串也被它前面的UserName[1]=0这个字符终止符给截去了。Top
2 楼mimong_lin(从天上钓下个老婆来)回复于 2006-05-03 22:53:23 得分 0
hWinUserName = GetDlgItem(hWnd,IDC_EDIT1);
///////////////////////////////////////////////////
hWinUserName = (CEdit*)GetDlgItem(hWnd,IDC_EDIT1);Top
3 楼TG1005()回复于 2006-05-03 23:06:40 得分 0
没错啊,我传递是指针而已,{ 0x10,0 }在指针之外了,我按你说的,改了下代码:
BYTE UserName[36] = { 0 };
GetDlgItemText( hWinUserName, IDC_EDIT1, (char*)&UserName[0], 30 );
也不行
我没用MFC,所以下面代码不行
hWinUserName = (CEdit*)GetDlgItem(hWnd,IDC_EDIT1);
Top
4 楼shmily1280(锄禾)回复于 2006-05-04 10:16:11 得分 0
代码贴全点,至少这个功能的部分.
也许其它的地方的错误呢Top
5 楼xiao2004()回复于 2006-05-04 10:32:40 得分 0
(char *)&UserName[0]
==(char *)UserName
GetDlgItemText(hWinUserName,IDC_EDIT1,(char *)UserName,30);
MessageBox(NULL,(char *)UserName,NULL,MB_OK);
试试看。Top
6 楼Snow_Ice11111(雪上加冰)回复于 2006-05-04 12:49:11 得分 0
BYTE UserName[36] = { 0 };
GetDlgItemText( hWinUserName, IDC_EDIT1, (char*)&UserName[0], 30 );
------------------------------------------------------------------------
代码测试了没有问题,在我的机器中可以实现要求。否则的话请确认hWinUserName是否为NULL。Top




