c语言获取控件文本,【100分】VC 使用API函数获取edit控件中的内容出错

【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,再删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值