重大求助: 如何将窗口置于最顶层?

VCmoongirl 2004-12-14 08:58:36
如何将窗口至于最顶层? 并且要保持该窗口总是处于活动状态,同时不能有其他程序的界面在该程序之上。另外用户只能和该程序进行交互?

另,有些程序总是处于顶层,如QQ,不知道是如何实现的?

紧急求助中。
...全文
2785 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
HunterForPig 2004-12-15
  • 打赏
  • 举报
回复
如此
SetWindowPos(&CWnd::wndTopMost ,0,0,0,0,SWP_NOSIZE);
VCmoongirl 2004-12-15
  • 打赏
  • 举报
回复
好像用这些方法都不太行, 我要总是保持活动是为了不让其他程序的界面在我的界面之上。 我的界面是一个全屏的界面,但是象 QQ、MSN、搜Q等界面总能在我的界面之上。 不知道如何才能让我的界面始终在上。 我的程序在启动时自动加载, 而QQ、msn等也是,他们在我之后启动,所以总是跑到我的前面。 尝试很多方法了,郁闷。
VCmoongirl 2004-12-15
  • 打赏
  • 举报
回复
可惜呀,都是老一套,这些没有什么作用, 同样(上贴打错,改之)可以将QQ界面切换到这个界面之上。 我要其他界面怎么样都不能出现在我的界面之上,至少要看起来不在我的之上。 即,一旦别的程序Active,我的程序就应该Active回来。
VCmoongirl 2004-12-15
  • 打赏
  • 举报
回复
可惜呀,都是老一套,这些没有什么作用, 同样(上贴打错,改之)可以将QQ界面切换到这个界面之上。 我要其他界面怎么样都不能出现在我的界面之上,至少要看起来不在我的之上。 即,一旦别的程序Active,我的程序就应该Active回来。
VCmoongirl 2004-12-15
  • 打赏
  • 举报
回复
可惜呀,都是老一套,这些没有什么作用, 通用可以将QQ界面切换到这个界面之上。 我要其他界面怎么样都不能出现在我的界面之上,至少要看起来不在我的之上。 即,一旦别的程序Active,我的程序就应该Active回来。
tigerjacky 2004-12-15
  • 打赏
  • 举报
回复
我刚试了试MSN在我的后面,函数如下:
SetWindowPos( hWndInsertAfter, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE||SWP_NOSIZE);
vctool 2004-12-15
  • 打赏
  • 举报
回复
我做过,是用了CWnd::wndTopMost的属性,
BinaryPoet 2004-12-14
  • 打赏
  • 举报
回复
在扩展属性中并入 WS_EX_TOPMOST
dandycheung 2004-12-14
  • 打赏
  • 举报
回复
置顶容易;但你总保持活动,用户岂不是连关机都关不了了?
Kudeet 2004-12-14
  • 打赏
  • 举报
回复
要始终保持Active,你可以试试在OnKillfocuse里调用SetFocus。或者处理WM_ACTIVATEAPP消息,没试过,

Good luck
Kudeet 2004-12-14
  • 打赏
  • 举报
回复
两种途径.
BringWindowToTop(Handle);

SetWindowPos函数,指定窗口的最顶风格,用WS_EX_TOPMOST扩展窗口的 风格
Example:
void ToggleTopMost( CWnd *pWnd)
{
ASSERT_VALID(pWnd);
pWnd ->SetWindowPos(pWnd-> GetStyle() &WS_EX_TOPMOST)?
&wndNoTopMOST: &wndTopMost,0,0,0,0,SSP_NOSIZE|WSP_NOMOVE};
}

VCmoongirl 2004-12-14
  • 打赏
  • 举报
回复
我的问题是,只是允许我的程序在最顶层,而别人的不能在最顶层,而且我的程序要始终保持Active
flyelf 2004-12-14
  • 打赏
  • 举报
回复
SetWindowPos/BringWindowToTop

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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