龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC常见入门问题总结(三)(2)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
5. 如何使程序保持极小状态? 在恢复程序窗体大小时,Windows会发送WM_QUERY-OPEN消息用 ClassWizard设置成员函数 OnQueryOpen() ,add following code: Bool CMainFrame:: OnQuery

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 ;

}

精彩图集

赞助商链接