【100分求救】VC 使用API函数获取edit控件中的内容出错
环境:XP,VS2005,C
需求:我想使用API函数取得名为ID为IDC_EDT_TEXT的edit控件中的内容,并在messageBox中提示
问题:5行代码,出了两个错误,错误都在代码中用注释的方式写出来了,请大家看看
void addText(HWND hDlg){
//增加文本的函数
static TCHAR *TC;
int nMax=GetWindowTextLength(hDlg);
HWND hWnd= ::GetDlgItem(hDlg,IDC_EDT_TEXT); //获取edit控件中的内容,但是出错?
//上行error: 'GetWindowTextA' : cannot convert parameter 2 from 'TCHAR *' to 'LPSTR'
GetWindowTextA(hWnd,TC,nMax);
MessageBoxA(hDlg,(LPSTR)TC,TEXT("提示"),NULL);
//上行error:'MessageBoxA' : cannot convert parameter 3 from 'const wchar_t [3]' to 'LPCSTR'
}
诚心求救,每帖必结,要想好人来,结帖必须快!
------解决方案--------------------
void addText(HWND hDlg){
int nMax=GetWindowTextLength(hDlg);
HWND hWnd= ::GetDlgItem(hDlg,IDC_EDT_TEXT); //获取edit控件中的内容,但是出错?
TCHAR *TC = new TCHAR[nMax+1];
GetWindowText(hWnd,TC,nMax);
MessageBox(hDlg,TC,_T("提示"),NULL);
delete TC;
}
------解决方案--------------------
static TCHAR TC【1024】;
------解决方案--------------------
// unicode字符集
void addText(HWND hDlg)
{
static TCHAR *TC;
int nMax=GetWindowTextLength(hDlg);
HWND hWnd= ::GetDlgItem(hDlg,IDC_EDT_TEXT);
GetWindowText(hWnd,TC,nMax);
MessageBox(hDlg,TC,TEXT("提示"),NULL);
}
------解决方案--------------------
GetWindowTextA(hWnd,TC,nMax);
改为:
static char TC[1024];
GetWindowTextA(hWnd,TC,sizeof(TC)*sizeof(char));
MessageBoxA(hDlg,(LPSTR)TC,TEXT("提示"),NULL);
改为
MessageBoxA(hDlg,TC,"提示",NULL);
------解决方案--------------------
引用:引用:C/C++ code?12345678void addText(HWND hDlg){ int nMax=GetWindowTextLength(hDlg); HWND hWnd= ::GetDlgItem(hDlg,IDC_EDT_TEXT); //获取edit控件中的内容,但是出错? TCHAR *TC = n……TC先赋NULL,再删除。