VC常见入门问题总结(三)(2)
5. 如何使程序保持极小状态?
在恢复程序窗体大小时,Windows会发送WM_QUERY-OPEN消息用 ClassWizard设置成员函数 OnQueryOpen() ,add following code:
Bool CMainFrame:: OnQueryOpen( )
{
Return false;
}
6. 如何限制窗口的 大小?
也就是 FixedDialog形式。 Windows 发送 WM_GETMAXMININFO消息来跟踪,响应它,在 OnGetMAXMININFO 中写代码:
7. 如何使窗口不可见?
用SW_HIDE 隐藏窗口,可以结合 FindWindow,ShowWindow 控制。
8. 如何使窗口始终在最前方?
两种途径.
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);
}
9.如何单击除了窗口标题栏以外的区域使窗口移动
当窗口需要确定鼠标位置时Windows向窗口发送WM_NCHITTEST信息,可以处理该信息使Windows认为鼠标在窗 口标题上。对于对话框和基于对话的应用程序,可以使用ClassWizard处理该信息并调用基类函数, 如果函 数返回HTCLIENT 则表明鼠标在客房区域,返回HTCAPTION表明鼠标在Windows的标题栏中。
UINT CSampleDialog : : OnNcHitTest (Cpoint point )
{
UINT nHitTest =Cdialog: : OnNcHitTest (point );
return (nHitTest = =HTCLIENT)? HTCAPTION : nHitTest ;
}
- 上一篇:vc6.0工具使用的几个技巧
- 下一篇:VC快捷键: