热情软件屋

 

如何在VC中设置窗口为TopMost


编号:QA000330
建立日期: 1999年1月12日 最后修改日期:2003年11月30日
所属类别:

朱毅华:
    工具: VC1.52
    操作系统: WIN3.1
    Wnd::SetWindowPos(....)第一参数如何使用?我想修改窗口为TOPMOST,但输入&wndTopMost编译出错,说wndTopMost未定义,是否要包含某个头文件?wndTopMost究竟是什么?常量?刚学编程,谢谢指导!

回答:

    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

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio