如何让我的mfc应用程序可以在最上面?

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

如何可以让我的程序可以显示在其它的窗口上面?

让用户选择"总是在最上面"最好是在系统菜单里加入一个选项.可以通过修改WM_SYSCOMMAND消息来发送用户的选择.菜单的命令标识(id)会作为一个参数传给OnSysCommand().要定义标识(id),将如下代码加入到CMainFrame.CPP中:

#define WM_ALWAYSONTOP WM_USER + 1

将"总在最上面"的菜单项加入到系统菜单中,将如下代码加入到函数CMainFrame::OnCreate()中:

CMenu* pSysMenu = GetSystemMenu(FALSE);

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING, WM_ALWAYSONTOP,

"&Always On Top");

使用ClassWizard,加入对WM_SYSCOMMAND消息的处理,你应该改变消息过滤器,使用系统可以处理这个消息.

void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)

{

switch ( nID )

{

case WM_ALWAYSONTOP:

if ( GetExStyle() & WS_EX_TOPMOST )

{

SetWindowPos(&wndNoTopMost, 0, 0, 0, 0,

SWP_NOSIZE | SWP_NOMOVE);

GetSystemMenu(FALSE)->CheckMenuItem(WM_ALWAYSONTOP,

MF_UNCHECKED);

}

else

{

SetWindowPos(&wndTopMost, 0, 0, 0, 0,

SWP_NOSIZE | SWP_NOMOVE);

GetSystemMenu(FALSE)->CheckMenuItem(WM_ALWAYSONTOP,MF_CHECKED);

}

break;

default:

CFrameWnd::OnSysCommand(nID, lParam);

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航