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

VC实用小知识总结 (一)(3)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
MDI窗口: 如果是创建新的应用程序,可以用MFC AppWizard 的Advanced 按钮并在MDI子窗口风格组中检测最大化或最小化还可以重载 MDI Window 的PreCreateWindow函数,设置

  MDI窗口:

  如果是创建新的应用程序,可以用MFC AppWizard 的Advanced 按钮并在MDI子窗口风格组中检测最大化或最小化还可以重载 MDI Window 的PreCreateWindow函数,设置WS_MAXMIZE or WS_MINMIZE

  如果从 CMDIChildWnd派生,调用 OnInitialUpdate函数中的 CWnd::Show Window来指定 MDI Child Window的风格。

  (10) 如何限制窗口的大小?

  也就是 FixedDialog形式。 Windows发送 WM_GETMAXMININFO消息来跟踪, 响应它,在 OnGetMAXMININFO 中写代码:

  (11) 如何使窗口不可见?

  很简单,用SW_HIDE 隐藏窗口,可以结合 FindWindow,ShowWindow控制.

  (12) 如何创建一个字回绕的CEditView

  重载CWnd : : PreCreateWindow和修改CREATESTRUCT结构,关闭CEditView对象的ES_AUTOHSCROLL和WS_HSCROLL风格位, 由于CEditView : : PreCreateWindow显示设置cs. style,调用基类函数后要修改cs . style。

   BOOL CSampleEDitView : : PreCreateWindow (CREATESTRUCT&cs)
  {
  //First call basse class function .
  BOOL bResutl =CEditView : : PreCreateWindow (cs)

  // Now specify the new window style .
  cs.style &= ~ (ES_AUTOHSCROLL |WS_HSCROLL)
  return bResult
  } 

  (13) 如何使程序保持极小状态?

  这么办: 在恢复程序窗体大小时,Windows会发送WM_QUERY-OPEN消息,用 ClassWizard设置成员函数

   OnQueryOpen() ,add following code:

  Bool CMainFrame:: OnQueryOpen( )
  {
  Return false
  } 

  (14) 移动窗口

  调用CWnd : : SetWindowPos并指定SWP_NOSIZE标志。目的位置与父窗口有关(顶层窗口与屏幕有关)。调用CWnd : : MoveWindow时必须要指定窗口的大小。

   //Move window to positoin 100 , 100 of its parent window .
  SetWindowPos (NULL, 100 , 100 , 0 , 0 , SWP_NOSIZE |SWP_NOAORDER)

  (15) 通用控件的显示窗口

  MFC提供了几个CView派生的视窗类, 封装了通用控件的功能,但仍然使用工作框文档显示窗口体系结构:CEditView封装了编辑控件,CTreeView保持了树列表控件,CListView封装了列表显示窗口控件,CRichEditView可以处理多种编辑控件。

精彩图集

赞助商链接