A程序中使用showwindow 还原原来被最小化的B程序后, 为什么B程序的最小化按扭就不能使用了

78 2003-04-28 01:43:56
如题.
A程序中的SHOWWINDOW是:
SHOWWINDOW(B程序.handle,Sw_SHow)

或者
SHOWWINDOW(B程序.handle,Sw_Restore)

这时B程序的系统按扭中最大化 关闭按扭都可使用,只有最小化按扭不能使用.(B程序原来有最小化按扭并能使用.)

我查了很多贴子都没有提到解决之道.

我很急的.
...全文
84 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
78 2003-04-30
  • 打赏
  • 举报
回复
martinloyee(混到天长地久,睡到海枯石烂):

老大,我试过,不能解决.

sysu(死树) :
我不是用FINDWindow来找这个窗口的.
我把所有新开程序的HANDLE保存在一个记录中.
用时找一下该HANDLE的程序是否还在运行,是就弹出恢复,不是就新运行一个,
martinloyee 2003-04-28
  • 打赏
  • 举报
回复
showwindow对delphi的form不太管用,不是showwindow有问题,也不是form有问题。
而是window机制的问题。嘻嘻。
好说正事,用sendmessage取代showmessage。
sendmessage(b.handle,wm_syscommand,sc_restore,0);
sorry,code insight用久了,不能保证没写错哦。
sysu 2003-04-28
  • 打赏
  • 举报
回复
估计你是用FindWindow找到B程序.Handle的吧,如果是B程序是Delphi程序,
一般要发送给Application来恢复,

var h: HWND;
begin
h := GetWindow(B程序.Handle, GW_OWNER); // 这样可以取得Application的句柄
if h > 0 then
ShowWindow(h, SW_RESTORE)
else
ShowWindow(B程序.Handle, SW_RESTORE);
end;
ahjoe 2003-04-28
  • 打赏
  • 举报
回复
用 Application.restore 代替 ShowWindow( )
holydiablo 2003-04-28
  • 打赏
  • 举报
回复
一般用的是
Application.Handle
吧,这样就不好说了
yansea 2003-04-28
  • 打赏
  • 举报
回复
是Application.Handle还是form1.Handle?
njbudong 2003-04-28
  • 打赏
  • 举报
回复
仔细的核对一下两个主form的属性。

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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