。
13. 如何使程序保持极小状态 如何使程序保持极小状态?
很有意思的 问题 这么办: 在恢复程序窗体大小时, Windows 会发送 WM_QUERY-OPEN 消息, 用 ClassWizard 设置成员函数 OnQueryOpen() ,add following code: Bool CMainFrame:: OnQueryOpen( ) { Return false; }
14. 如何限制窗口的大小 如何限制窗口的大小?
也就是 FixedDialog 形式。 Windows 发送 WM_GETMAXMININFO 消息来跟 踪, 响应它,在 OnGetMAXMININFO 中写代码:
15. 如何使窗口不可见? 如何使窗口不可见?
很简单,用 SW_HIDE 隐藏窗口,可以结合 FindWindow,ShowWindow 控制.
16. 如何使窗口始终在最前方 如何使窗口始终在最前方?
两种途径. 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); }
17、如何创建一个字回绕的 CEditView 、
重载 CWnd : : PreCreateWindow 和修改 CREATESTRUCT 结构,关闭 CEditView 对象的 ES_AUTOHSCROLL 和 WS_HSCROLL 风格位, 由于 CE
ditView : : 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 ; }
18、通用控件的显示窗口 、
MFC 提供了几个 CView 派生的视窗类, 封装了通用控件的功能,但仍然 使用工 作框
文档显示窗口体系结构:CEditView 封装了编辑控件,CTreeView 保持了树
列表 控件,CListView 封装了列表显示窗口控件,CRichEditView 可以处理多种编辑 控件。
19、移动窗口 、
调用 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);
20、重置窗口的大小 、
调用 CWnd: : SetWindowPos 并指定 SWP_NOMOVE 标志, 也可调用 CWnd : : MoveWindow 但必须指定窗口的位置。 // Get the size of the window . Crect reWindow ; GetWind