⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 菜 单 的 汉 化 .htm

📁 对于学习很有帮助
💻 HTM
字号:
<html>

<head>
<link REL="stylesheet" HREF="/style.css" TYPE="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>计算机世界日报:
用DELPHI实现菜单的汉化
</title>
<!--***********-->
</head>

<body bgcolor="#FFFFFF" >














<p><br>
<font color="#b904e8"><b><em><a href="class.htm">返回</a></em></b></font>
<center>
<font color="#0000c0"><h2>
用DELPHI 实 现 菜 单 的 汉 化
</h2></font>
<h3>
嘉 峪 关 市 计 算 机 站
<br>
王 润 德 
</h3>
</center>
<p><font color="#ffffff">----</font>
现 在 我 们 经 常 看 到 一 些 软 件 汉 化 包, 例‘ 晴 窗 伴 侣’ 是PHOTOSHOP 的 汉 化 包, 其 实 我 们 只 要 对WINDOWS 的 编 程 熟 悉, 也 可 以 自 己 编 写 某 些 软 件 的 汉 化 包。 这 样 不 管 软 件 大 小, 只 要 你 喜 欢 就 可 以 给 做 一 个 汉 化 包。 下 面 的 程 序 是 一 些 主 要 的 步 骤。 其 实 你 还 可 以 用 别 的 方 法 来 实 现, 亲 自 试 试 吧。
<p><font color="#ffffff">----</font>

     在 运 行 程 序 之 前 首 先 生 成 一 个 中 英 文 菜 单 对 照 表 文 件, 产 生 时 可 以 参 照 该 程 序 自 己 编 制 一 个 获 得 系 统 的 原 菜 单 内 容 的 程 序, 然 后 在 之 后 输 入 菜 单 的 汉 字 内 容。 其 格 式 如 下:
<pre>
SAVE  AS          保存到....
. .
..
EXIT                   退出系统
//  程序开始
unit wrdxt;

interface

uses
  Windows, Messages, SysUtils, Classes,
  Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    ListBox2: TListBox;
    procedure Button1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  childmenu,mainmenu,c2menu:hmenu;
  wndhandle:hwnd;
  mystr:pchar;
  mainnum,childNUM,c2num:integer;
  MYCHAR:STRING;
  mm3,mm6:string[19];
  mm4,mm5:string;
  implementation

{$R *.DFM}
//我用表单的CLICK事件激活,
其实用ACTIVE事件会更好
procedure TForm1.Button1Click(Sender: TObject);
var
start1,start2,start3,start4,start5:integer;

begin
//通过标题获得窗口句柄
wndhandle:=findwindow(nil,mystr);
//通过标题获得菜单句柄
mainmenu:=getmenu(wndhandle);
//取得顶行菜单数
mainnum:=getmenuitemcount(mainmenu);
//汉化菜单
for start1:=0 to mainnum do
begin
mm5:='';
//取得菜单项的标题
getmenustring(mainmenu,start1,PCHAR
(myChAR),20,MF_BYPOSITION);
    mm6:=string(pchar(mychar));
     for start3:=0 to listbox1.items.count-1 do
        begin
              mm4:=listbox1.Items[start3];
        mm3:= mm4;
         if (string(mm6)=trim(mm3))  then
         begin
           for start4:=21 to length(mm4) do
              begin
               mm5:=mm5+mm4[start4];
              end;
        end;
     end;
    if mm5<>''  then
modifymenu(mainmenu,start1,MF_BYPOSITION,
getmenuitemid(mainmenu,start1),pchar(mm5));
    childmenu:=getsubmenu(MAINMENU,start1);
    childnum:=getmenuitemcount(childmenu);
    //汉化下拉菜单
    for start2:=0 to childnum do
    begin
      mm5:='';
      getmenustring(childmenu,start2,PCHAR
      (mychar),20,MF_BYPOSITION);
       mm6:=string(pchar(mychar));
           for start3:=0 to listbox1.items.count-1 do
        begin
        mm4:=listbox1.Items[start3];
        mm3:= mm4;
             if (string(mm6)=trim(mm3))  then
         begin
           for start4:=21 to length(mm4) do
              begin
               mm5:=mm5+mm4[start4];
              end;
        end;
     end;
    if mm5<>''  then

     modifymenu(childmenu,start2,MF_BYPOSITION,
     getmenuitemid(childmenu,start2),pchar(mm5));
       c2menu:=getsubmenu(childMENU,start2);
       c2num:=getmenuitemcount(c2menu);
    for start5:=0 to c2num do
    begin
      mm5:='';
      getmenustring(c2menu,start5,PCHAR
     (mychar),20,MF_BYPOSITION);
       mm6:=string(pchar(mychar));
          for start3:=0 to listbox1.items.count-1 do
        begin

        mm4:=listbox1.Items[start3];
        mm3:= mm4;
          if (string(mm6)=trim(mm3))  then
         begin
           for start4:=21 to length(mm4) do
              begin
               mm5:=mm5+mm4[start4];
              end;
        end;
     end;
    if mm5<>''  then
modifymenu(c2menu,start5,MF_BYPOSITION,
 getmenuitemid(c2menu,start5),pchar(mm5));
    END;

    END;
end;

end;

procedure TForm1.FormActivate(Sender: TObject);
begin
//要汉化的系统的窗口标题
//mystr:='adobe photoshop';
 mystr:='frontpage explorer';
mychar:='                 ';
//装入已编辑好的中英文菜单对照文件
listbox1.items.loadfromfile('myfile2.txt');
end;

end.
</pre>


 



<p align="right"><small><em>中国计算机世界出版服务公司版权所有</em></small> 
<br>
</p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -