关于ShowWindow的2个问题!

liuxing_1w 2008-05-07 11:06:12
是这样的2个程序
一个 P_main.exe P_popup.exe
流程是
1、 在P_main.exe启动时 WinExec(pchar(P_popup.exe'), 0);
(P_popup.exe上用了CoolTrayIcon1控件,在启动时将程序最小化到任务栏中。)
2、P_main.exe窗体上放置一个showwindow按键,点击它的时候 ShowWindow(P_popupH,SW_SHOWNORMAL);//P_popupH为P_popup.exe程序句柄
3、在P_popup.exe程序上有个“隐藏”按键,点击时 Application.Minimize; 将程序最小化到任务栏中。

问题1:showwindow时 P_popup.exe程序不在最上层,我要在这个时候把它变成当前的操作窗体。
问题2:显示第一次后,点隐藏键好用,再showwindow 再点隐藏键时,无效。没有反应的了。


我应该怎么解决,请大虾指点一下 ?
...全文
154 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuxingstar 2008-05-08
  • 打赏
  • 举报
回复

const
WM_SHOWME=WM_User+1002;


procedure TF_PhoneCZ.ExeShowme(var vmsg: Tmessage);
var
sqlstr:string;
begin
application.Restore ;

{
........
}

// showmessage('1000 liuzhenbin');
end;
lake_cx 2008-05-08
  • 打赏
  • 举报
回复
别用ShowWindow,自己定义一个消息在P_popup.exe中处理(还原窗体)
P_main.exe给那个窗体发消息
liuxing_1w 2008-05-08
  • 打赏
  • 举报
回复
换那个 控件?
oushengfen 2008-05-07
  • 打赏
  • 举报
回复
CoolTrayIcon1是有问题,我也试过了,不过,我也没有去深究,换了一个控件就好了.
liuxing_1w 2008-05-07
  • 打赏
  • 举报
回复
用了2楼说的方法 
procedure TF_main.Button2Click(Sender: TObject);
var
P_popupH:THandle;
begin
//--------得到窗体句柄 并显示出来------
P_popupH:=FindWindow(nil,'F_popupH');

if (P_popupH>0) then
 begin
//------显示可执行文件------
ShowWindow(P_popupH,SW_SHOWNORMAL);
SetForegroundWindow(P_popupH);
end;
end;

显示出来的程序 看不到窗体里的控件,白板 一块
liuxing_1w 2008-05-07
  • 打赏
  • 举报
回复

//---主程序代码-----------
procedure TF_main.Button2Click(Sender: TObject);
var
P_popupH:THandle;
begin
//--------得到窗体句柄 并显示出来------
P_popupH:=FindWindow(nil,'F_popupH');

if (P_popupH>0) then
//------显示可执行文件------
ShowWindow(P_popupH,SW_SHOWNORMAL);
end;
----------------------------------------------------------------

//P_popup隐藏按键代码
procedure TF_popup.Button3Click(Sender: TObject);
begin
Application.Minimize;
end;
skylkj 2008-05-07
  • 打赏
  • 举报
回复
关于问题1:
SetForegroundWindow(P_popupH)
可以把窗口提至前台

问题2:
要看你具体的代码了

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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