安装及使用ACDSee5.0英文版时,我注意到它的对话框或向导中的按钮如"确定"、"取消"、"下一步"等中文显示,为什么没显示"Ok","Cancel","Next"等英文?怎样实现这种按钮?如能我们程序中的标准按钮象这样根据操作系统的语言环境显示相应的语言提示,那么国际化你的软件时岂不是省了很多事?
请高手赐教。
解决方案 »
- 关于IDHTTP的提交问题
- idftp的问题
- ****在ListView控件MutliSelect设置为True后怎样将不按Ctrl或者Shift键就可以进行多选???****
- 用findfirst查找文件后,无法用loadfromfile打开找到的文件,提示cannot open....
- 我用ado+access,请问怎么样在程序中改变某一张表中某一字段的数据类型?
- 放分庆祝 D8 安装成功
- 日期格式转换问题。
- 怎么样在Delphi程序中类似弹出一个对话框手动设置数据库连接
- Delphi的泛型库,感兴趣的进来看看
- 如何实现屏幕拷贝?--100分
- 如何获得360浏览器的地址栏句柄?
- FastReport怎么将没有记录的地方也画上格子?
Application.MessageBox('this is only a test', 'test', MB_OK);
在中文系统下,按钮显示的就是确定,英文下好象就是ok
我关心的倒不是向导的"下一步"按钮,而是软件内部的"Ok","Cancel"等按钮如何自己适应相应的语言环境,messagebox肯定不行,因为我们常常要自定义对话框。望各位多发表意见,谢谢。
世平兄谈得有点意思,望进一步谈谈。
var
hInst: HINSTANCE;
Buffer: array[0..64] of Char; function DlgProc(hDlg:HWND, uMsg:UINT, wParam:WPARAM,
lParam:LPARAM): BOOL;
begin
if uMsg=WM_INITDIALOG then
begin
GetWindowText(GetDlgItem(hDlg,
12324), Buffer, 64);
EndDialog(hDlg, 0);
end;
Result := 0;
end;begin
hInst := LoadLibrary('comctl32.dll');
DialogBoxParam(hInst, LPCSTR(1020), Nil, @DlgProc, 0);
FreeLibrary(hInst); Result := Buffer;
end;
对话框就是向导窗口的对话框,里面有几个按钮,其中对话框里ID=12324的
控件就是“下一步”这个按钮。函数的目的就是取得这个按钮的文字并返回
这个文字。
世平兄的BCB太对我的路子了,其实我也是用BCB的,考虑到Delphi更普遍,高手更多,才在这里提问的。
还有哪位有高见?
世平兄不如将你的BCB代码贴出来更好。
BOOL DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam,
LPARAM lParam)
{
if (uMsg==WM_INITDIALOG) {
GetWindowText(GetDlgItem(hDlg,
12324), StepStr, 64);
EndDialog(hDlg, 0);
}
return 0;
}AnsiString GetNextStepStr()
{
HINSTANCE hInst; if (StepStr[0]) return StepStr; hInst = LoadLibrary("comctl32.dll");
DialogBoxParam(hInst, LPCSTR(1020),
NULL, (FARPROC)DlgProc, 0);
FreeLibrary(hInst); return StepStr;
}
世平兄,帮人帮到底,送佛送到西,不如给出一个Form的例子,将上述函数应用一下,如何?当然仅须说明制作方法罢了,不必给出详细内容。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage(GetNextStepStr());
Button2->Caption = GetNextStepStr();
}