若打开别的程序,最小化本程序窗体,请问如何实现?

riveitang 2007-11-29 11:35:58
打开别的程序时候,如何最小化本程序窗体?我的做法如下(未成功):

我用到的是WM_ACTIVE消息,在要最小化的程序代码中,加个该消息处理.想法:打开某个程序时候,会发送WM_ACTIVE消息,

VCL_MESSAGE_HANDLER(WM_ACTIVATE, TMessage, OnFormMin)


void __fastcall OnFormMin(TMessage &AMessage);


void __fastcall TfrmXXX::OnFormMin(TMessage &AMessage)
{
//HINSTANCE hHandle = GetActiveWindow();
HINSTANCE hHandle = GetFocus();
hfrmMain = frmMain->Handle;
if(hHandle != hfrmMain)
// if(hHandle != this->Handle)
{
this->WindowState = wsMinimized;
}
else
{
this->WindowState = wsMaximized;
}
}

请高手指点,
...全文
118 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
CamelFang 2007-11-29
  • 打赏
  • 举报
回复
打开别的程序时,本程序不会收到WM_ACTIVE消息啊.
你是要在本程序中去打开别的程序吗?那样的话,CreateProcess之后直接Application->Minimize()就OK.
如果是要监视系统创建的新进程,那就得用到Hook了.

604

社区成员

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

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