社区
进程/线程/DLL
帖子详情
如何让一个进程控制另一进程的窗口显示在最前端?
bigant888
2005-08-25 05:28:49
我想让我的一个程序A发消息到另一程序B(都是自己写的),让程序B完成一定的操作后显示到最前端!
现在程序B可以收到消息了,就是不能显示到最前端。
望各位大虾帮帮忙~急~~~
...全文
464
9
打赏
收藏
如何让一个进程控制另一进程的窗口显示在最前端?
我想让我的一个程序A发消息到另一程序B(都是自己写的),让程序B完成一定的操作后显示到最前端! 现在程序B可以收到消息了,就是不能显示到最前端。 望各位大虾帮帮忙~急~~~
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bigant888
2005-08-25
打赏
举报
回复
呵呵,我是想受消息的,放在最上面,
我写了两个,都是指受消息的窗口~、
现在好了,~谢谢~
bigant888
2005-08-25
打赏
举报
回复
好了,谢谢两位,现在结贴~
goodboyws
2005-08-25
打赏
举报
回复
你是发消息的在上面还是接收消息的在上面呢,两个都在最上面是怎么回事儿??
void CPostMsgView::OnPost()
{
// TODO: Add your command handler code here
HWND hPlayerHwnd = GetMessageHWND();
if (hPlayerHwnd != NULL)
{
::PostMessage(hPlayerHwnd, WM_COMMAND,IDM_CHANGEARTICLE,0);
//这两句注掉
// ::SetForegroundWindow(hPlayerHwnd);
// ::ShowWindow(hPlayerHwnd,SW_SHOW);
}
gohappy_1999
2005-08-25
打赏
举报
回复
CWnd *pTopWnd = CWnd::FromHandle(g_hWnd);
if(pTopWnd->IsIconic())
{
pTopWnd->ShowWindow(SW_MAXIMIZE);
}
pTopWnd->SetForegroundWindow();
bigant888
2005-08-25
打赏
举报
回复
to 回复人: goodboyws(深夜不眠者) ( ) 信誉:92
对不起,还是不行,
我的测试程序是两个单文档的结构,程序得到的是CMainFrame的 HWND
这个是发消息的程序的函数
void CPostMsgView::OnPost()
{
// TODO: Add your command handler code here
HWND hPlayerHwnd = GetMessageHWND();
if (hPlayerHwnd != NULL)
{
::PostMessage(hPlayerHwnd, WM_COMMAND,IDM_CHANGEARTICLE,0);
// ::SetWindowPos(hPlayerHwnd, HWND_TOP, 0, 0, 800, 600, SWP_SHOWWINDOW|SWP_NOMOVE|SWP_NOSIZE);
::SetForegroundWindow(hPlayerHwnd);
::ShowWindow(hPlayerHwnd,SW_SHOW);
}
下面的收消息的函数
void CRecieveMsgView::OnRecieveTheMsg()
{
ShowWindow(SW_SHOW);
SetForegroundWindow();
}
这样最小话的时候还是都不行,是不是我哪里用的不对~
goodboyws
2005-08-25
打赏
举报
回复
ShowWindow(hWnd,SW_SHOW);
SetForegroundWindow(hWnd);
bigant888
2005-08-25
打赏
举报
回复
to 回复人: goodboyws(深夜不眠者) ( ) 信誉:92
这个方法可以,但最小话的时候还是不行,怎么处理~
谢谢~
goodboyws
2005-08-25
打赏
举报
回复
调用
BOOL SetForegroundWindow(
HWND hWnd // handle to window
);
i_noname
2005-08-25
打赏
举报
回复
最前端窗口:
SetWindowPos(&wndTopMost, -1, -1, -1, -1, SWP_NOMOVE|SWP_NOSIZE);
让
一个
进程
窗口
显示
在最
前端
连接
C#
进程
窗口
显示
在最
前端
int handle = FindWindow(null, "排号
窗口
"); QueueHandle = (int)mystr.dwData; //通过句柄 ShowWindowAsync((IntPtr)handle, 1);//方式二:或使用如下方式://设置窗体状态为默认大小this.WindowState = FormWindowState.Normal;//不
显示
在任务栏this...
Window 唤起
进程
,并使
窗口
最前
显示
使用场景: 程序中调用某
进程
:若
进程
未打开,调用打开此
进程
;若
进程
已打开,则使此
进程
最前
显示
; 方法步骤: 1.根据
进程
名称获取
进程
ID; 2.根据
进程
ID,获取
窗口
句柄; 3.根据
窗口
句柄,设置最前
显示
; 代码如下: static HWND GetWindowHandleByPID(DWORD dwProcessID)//通过
进程
ID获取
窗口
句柄 { HWND h = ::GetTopWindow(0); while (h) { DWORD pid = 0; DWORD dw
MFC 子
进程
窗口
置顶
主
进程
启动子
进程
,然后如果主
进程
处于焦点状态,结果子
进程
窗口
会被遮挡。 弄了好久终于找到一种方法:(单文档模式,不适合单对话框模式) 先置顶: ::SetWindowPos(m_pMainWnd->m_hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);//
窗口
最顶层 然后在取消置顶: ::SetWindowPos(m_pM...
C++ mfc 操作
一个
进程
窗口
(根据
进程
名称)
操作另
一个
进程
窗体
进程/线程/DLL
15,473
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章