如何在VC中设置窗口为TopMost
编号:QA000330
建立日期: 1999年1月12日 最后修改日期:2003年11月30日
所属类别:
Q
朱毅华:
工具: VC1.52
操作系统: WIN3.1
Wnd::SetWindowPos(....)第一参数如何使用?我想修改窗口为TOPMOST,但输入&wndTopMost编译出错,说wndTopMost未定义,是否要包含某个头文件?wndTopMost究竟是什么?常量?刚学编程,谢谢指导!
A回答:
wndTopMost是CWnd的一个成员函数,它的定义在AfxWin.h中。如果你在一个CWnd继承类中使用SetWindowPos函数,应该不会有问题。但从你叙述的情况来看,可能是因为你在非CWnd继承类中使用SetWindowPos函数。下面以MFC的Hello程序作为例子。CMainWindow类是一个从CWnd继承来的类。如果你要在CTheApp::InitInstance()中将主窗口设为TopMost,可以这样修改:
BOOL CTheApp::InitInstance()
{
TRACE( "HELLO WORLD\n" );
SetDialogBkColor(); // hook gray dialogs (was default in MFC V1)
m_pMainWnd = new CMainWindow();
m_pMainWnd->ShowWindow( m_nCmdShow );
m_pMainWnd->UpdateWindow();
m_pMainWnd->SetWindowPos(&m_pMainWnd->wndTopMost, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
return TRUE;
}
如果希望使用API函数实现,可以使用SetWindowPos,参考QA000076 "如何实现窗口总在最前面(Always on top)"。
Atry的意见:
wndTopMost是静态成员,所以我觉得这样写更好
&CWnd::wndTopMost
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, 窗体与菜单, form, window, tform。
| |
|
|
| |
|
|