安装及使用ACDSee5.0英文版时,我注意到它的对话框或向导中的按钮如"确定"、"取消"、"下一步"等中文显示,为什么没显示"Ok","Cancel","Next"等英文?怎样实现这种按钮?如能我们程序中的标准按钮象这样根据操作系统的语言环境显示相应的语言提示,那么国际化你的软件时岂不是省了很多事?
请高手赐教。
解决方案 »
- for 循环数值过大,会引起异常。
- 代码怎么写?点击窗体右上角的最小化按钮时隐藏这个窗体到任务栏,而不是隐藏到屏幕左下角
- 为何这些语句有问题呢?急,谢谢!!!!
- 请问怎样才能将Internet上的图片存到 流 中(128字节)
- 从○开始,在Delphi、C++Builder、PB、VB、VC、.NET范围内选择方向
- 请问JPG图形的缩放(W和H变小变大)
- 用delphi写图像算法运行速度慢
- 帮帮忙,不然是话,真的混不下去了!!救人一命胜造七级佛屠 关于ADO事务处理!我老是搞不出来!
- 动态生成控件问题
- 一个小小的问题。
- 如何获得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();
}