::GetDlgItemText( hDlg , IDC_myCtr , strItem[0] , 20);
结果总是不对,老报无效的窗口句柄的错误。
换用下面的代码:HWND h = ::GetDlgItem(hDlg ,IDC_myCtr );
SetWindowText( h , "ttttttttttt");
::GetWindowText( h , strItem[0] , 20 );结果SetWindowText函数能正常执行,GetWindowText函数一样也报无效的窗口句柄。
老天,什么回事,我都快晕了。请各位大哥帮忙解惑答疑啊,分数小弟多多的给。
char strItem[20] = {0};
char *strItem = new char(20);
::GetWindowText( h , strItem , 20 );
这种用法是对的, 至于其后两句代码报错, 是因为h这个句柄是空的, 也就是你的 ID IDC_MyCtr写错了, 根本就没有这个 ID 的控件注意: 是区分大小写的
压代码前,请先删除debug,release文件夹,及*.opt,*.ncb,*.plg,*.aps.---------------------------------------------------我的论坛的地址www.vcshare.net/bbs/
如果strItem是CString,则用法不对可以改成:
CHAR szItem[100];
::GetWindowText(h , strItem , sizeof(szItem));
----------------------------------------
ID错了吧,IDC_myCtrl,
可以用AfxMessageBox()看看
在这句代码后面加一句:
CString szTemp;
szTemp.Format("Handle: 0x%X", h);
看看是否是有效的句柄?
char* strItem[2] = {"no","no"};
改成char* strItem[2] = {new char(2),new char(2)};
就好了。