帮忙翻译如下代码 : Delphi --> BCB。

tree2000 2007-07-19 06:51:24
interface
...
const
CM_RESTORE = WM_USER + $1000; {自定义的“恢复”消息}
WEIWEI_APP_NAME = 'WEIWEI_System';
...
type
TfrmMain = class(TForm)
...
public
procedure CreateParams(var Params: TCreateParams); override;
procedure RestoreRequest(var message: TMessage); message CM_RESTORE;
...
implementation

procedure TFrmMain.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.WinClassName := WEIWEI_APP_NAME;
end;


{处理“恢复”消息}

procedure TFrmMain.RestoreRequest(var message: TMessage);
begin
if IsIconic(Application.Handle) = True then //窗体是否最小化
Application.Restore //恢复窗体
else
Application.BringToFront; //提到前面显示
end;



上面这段代码请把它放在你的项目的主单元文件中,然后打开.dpr文件添加如下内容:



...

const
CM_RESTORE = WM_USER + $1000; {自定义的“恢复”消息}
WEIWEI_APP_NAME = 'WEIWEI_System';

var
RvHandle: hWnd;
begin

RvHandle := FindWindow(WEIWEI_APP_NAME, nil); //查找窗体类名来查找窗体
if RvHandle > 0 then //查找的话
begin
PostMessage(RvHandle, CM_RESTORE, 0, 0); //给找的窗体发送消息,让它显示在最前面
Exit; //退出程序
end;

Application.Initialize;
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end.
...全文
136 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
MEFULEU 2007-07-20
  • 打赏
  • 举报
回复
哦,发错了,
laowang2 2007-07-20
  • 打赏
  • 举报
回复
老妖翻译的真好!
MEFULEU 2007-07-20
  • 打赏
  • 举报
回复
晕,楼上谁的马甲,在推销阿~~~~~~~~~~~~~
tree2000 2007-07-20
  • 打赏
  • 举报
回复
谢谢.
ccrun.com 2007-07-19
  • 打赏
  • 举报
回复
Delphi:
--------------------
const
CM_RESTORE = WM_USER + $1000; {自定义的“恢复”消息}
WEIWEI_APP_NAME = 'WEIWEI_System';


C++:
--------------------
const DWORD CM_RESTORE = WM_USER + 0x1000; // 自定义的“恢复”消息
const String WEIWEI_APP_NAME = "WEIWEI_System";


Delphi:
--------------------
type
TfrmMain = class(TForm)
...
public
procedure CreateParams(var Params: TCreateParams); override;
procedure RestoreRequest(var message: TMessage); message CM_RESTORE;
...
implementation

procedure TFrmMain.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.WinClassName := WEIWEI_APP_NAME;
end;


{处理“恢复”消息}

procedure TFrmMain.RestoreRequest(var message: TMessage);
begin
if IsIconic(Application.Handle) = True then //窗体是否最小化
Application.Restore //恢复窗体
else
Application.BringToFront; //提到前面显示
end;


C++:
--------------------
class TfrmMain : TForm
...
public:
virtual void __fastcall CreateParams(TCreateParams ¶ms);
void __fastcall RestoreRequest(TMessage &Message);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(CM_RESTORE, TMessage, RestoreRequest);
END_MESSAGE_MAP(TForm);
...
//
void __fastcall TfrmMain::CreateParams(TCreateParams ¶ms)
{
TForm::CreateParams(Params);
strcpy(Params.WinClassName, WEIWEI_APP_NAME.c_str());
}
// 处理“恢复”消息
void __fastcall TfrmMain::RestoreRequest(TMessage &Message)
{
if(IsIconic(Application->Handle)) // 窗体是否最小化
Application->Restore(); // 恢复窗体
else
Application->BringToFront(); // 提到前面显示
}


Delphi:
--------------------
const
CM_RESTORE = WM_USER + $1000; {自定义的“恢复”消息}
WEIWEI_APP_NAME = 'WEIWEI_System';

var
RvHandle: hWnd;
begin

RvHandle := FindWindow(WEIWEI_APP_NAME, nil); //查找窗体类名来查找窗体
if RvHandle > 0 then //查找的话
begin
PostMessage(RvHandle, CM_RESTORE, 0, 0); //给找的窗体发送消息,让它显示在最前面
Exit; //退出程序
end;

Application.Initialize;
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end.


C++:
--------------------
const DWORD CM_RESTORE = WM_USER + 0x1000; // 自定义的“恢复”消息
const String WEIWEI_APP_NAME = "WEIWEI_System";

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
HWND RvHandle;
RvHandle = FindWindow(WEIWEI_APP_NAME, NULL); // 查找窗体类名来查找窗体
if(RvHandle) // 查找的话
{
PostMessage(RvHandle, CM_RESTORE, 0, 0); // 给找的窗体发送消息,让它显示在最前面
exit(0); // 退出程序
}
Application->Initialize();
Application->CreateForm(__classid(TfrmMain), &frmMain);
Application->Run();
}

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧