首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

修改MessageDlg窗口Ok/Cancel为“确定/取消”是提示异常

2012-04-18 
修改MessageDlg窗口Ok/Cancel为“确定/取消”是提示错误参考妖哥的一个程序,我现在想把MessageDlg对话框的Ok

修改MessageDlg窗口Ok/Cancel为“确定/取消”是提示错误
参考妖哥的一个程序,我现在想把MessageDlg对话框的Ok/Cancel修改为汉字“确定/取消”,但是会出现如何提示:

C/C++ code
//修改Ok/Cancel按钮显示为中文HANDLE hBtnOk = FindWindowEx(Form1 -> Handle, NULL, "TButton", "OK");HANDLE hBtnCancel = FindWindowEx(Form1 -> Handle, NULL, "TButton", "Cancel");if(hBtnOk)  {  SetWindowText(hBtnOk, "确定(&O)");  }if(hBtnCancel)  {  SetWindowText(hBtnCancel, "取消(&C)");  }

提示:
C/C++ code
[BCC32 Error] Unit1.cpp(350): E2034 Cannot convert 'void *' to 'HWND__ *'[BCC32 Error] Unit1.cpp(350): E2342 Type mismatch in parameter 'hWnd' (wanted 'HWND__ *', got 'void *')

我自己也查看了MSDN的SetWindowText function,
C/C++ code
BOOL WINAPI SetWindowText(  __in      HWND hWnd,  __in_opt  LPCTSTR lpString);

LPCTSTR类型不是字符串型吗,为何会提示void型。还请大家指点迷津。非常感谢。

[解决办法]
你把hBtnOk和hBtnCancel定义成HWND类型的就可以了,或者强制转换一下,如:
SetWindowText((HWND)hBtnOk, "确定(&O)");

热点排行