在WIN2000下,如何将指定的窗口弹到最外面?

zhucl2000 2004-04-30 02:28:24
我用BringWindowToTop和SetForegroundWindow都不能将指定的窗口弹到最外面,
有时可以,有时不可以,不知为什么.不知道还有没有其他方法,请各位赐教
...全文
12 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
byry 2004-05-08
VC++中对基于SDI、MDI的运用程序,要实现最高窗口,只要在框架窗口类CMainFrame中的PreCreateWindow()函数中加入“cs.dwExStyle =WS_EX_TOPMOST;”即可。
而对基于对话框的运用程序,如何实现最高窗口却很少论及,以下便是一种实现方法。
重载要实观最高窗口的对话框的OnInitDialog()函数,方法是进入ClassWizard,在Object ID列表框中选择该对话框的ID,在Message列表框中选择WM_INITDIALOGG,单击Add Function按钮后,即对onlnitDialog函数进行了重载。再按下Edit code按钮,加入以下语句:
const CWnd * pWndInsertAfter;
pWndInsertAfter = &wndTopMost;
SetWindowPos(pWndInsertAfter,0,0,0,0,SWP_NOSIZE | SWP_NOMOVE);
函数SetWindowPos原型为BOOL SetWindowPos(const CWnd * pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags);
pWndInsertAfter为指向标识窗口类型的CWnd对象的指针。
x,y为窗口左上角的坐标。
cx,cy为窗口的宽与高。
nFlags确定窗口的大小及位置。当为SWP_NOSIZE时,忽略cx,cy。当为SWP_NOMOVE时,忽略x,y。
  • 打赏
  • 举报
回复
csdnzhu 2004-05-08
void CDeleteDlg::OnTimer(UINT nIDEvent)
{
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
SetWindowPos(&wndTopMost, 0, 0, 500, 500, SWP_DRAWFRAME | SWP_NOMOVE | SWP_NOREPOSITION | SWP_NOSIZE);
KillTimer(10002);

CDialog::OnTimer(nIDEvent);
}
  • 打赏
  • 举报
回复
zhucl2000 2004-05-08
怎么没人回答?
  • 打赏
  • 举报
回复
相关推荐
发帖
界面
加入

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2004-04-30 02:28
社区公告
暂无公告