?? vctip2.html
字號(hào):
<html><head><meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"><meta NAME="GENERATOR" CONTENT="Microsoft FrontPage 3.0"><meta NAME="doccomm" CONTENT="sss"><meta NAME="Template" CONTENT="C:\MSOffice\Template\Sl_BOOK.dot"><title>unsaved:///newpage2.htm</title></head><body TEXT="#000000" BGCOLOR="#CCFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000"><p align="center"><br><font SIZE="+3" FACE="楷體_GB2312">Visual C++ 編程技巧之二</font> </p><p><a HREF="#tip9"><font SIZE="+0" FACE="Times New Roman">9. </font><font SIZE="+0">如何改變窗口的圖標(biāo)</font><fontSIZE="+0" FACE="Times New Roman">?</font></a> </p><p><a HREF="#tip10"><font SIZE="+0" FACE="Times New Roman">10. </font><font SIZE="+0">如何改變窗口的缺省風(fēng)格</font><fontSIZE="+0" FACE="Times New Roman">?</font></a> </p><p><a HREF="#tip11"><font SIZE="+0" FACE="Times New Roman">11. </font><font SIZE="+0">如何將窗口居中顯示</font><fontSIZE="+0" FACE="Times New Roman">?</font></a> </p><p><a HREF="#tip12"><font SIZE="+0" FACE="Times New Roman">12. </font><font SIZE="+0">如何讓窗口和 </font><font SIZE="+0" FACE="Times New Roman">MDI</font><font SIZE="+0">窗口一啟動(dòng)就最大化和最小化</font><fontSIZE="+0" FACE="Times New Roman">?</font></a> </p><p><a HREF="#tip13"><font SIZE="+0" FACE="Times New Roman">13. </font><font SIZE="+0">如何使程序保持極小狀態(tài)</font><fontSIZE="+0" FACE="Times New Roman">?</font></a> </p><p><a HREF="#tip14"><font SIZE="+0" FACE="Times New Roman">14. </font><font SIZE="+0">如何限制窗口的大小</font><fontSIZE="+0" FACE="Times New Roman">?</font></a> </p><p><a HREF="#tip15"><font SIZE="+0" FACE="Times New Roman">15. </font><font SIZE="+0">如何使窗口不可見(jiàn)?</font></a> </p><p><a HREF="#tip16"><font SIZE="+0" FACE="Times New Roman">16. </font><font SIZE="+0">如何使窗口始終在最前方</font><fontSIZE="+0" FACE="Times New Roman">?</font></a> </p><p><font SIZE="+2"><b> </b></font> </p><p><a NAME="tip9"></a><b><font SIZE="+2"><font FACE="Times New Roman">9. </font><fontFACE="黑體">如何改變窗口的圖標(biāo)</font><font FACE="Times New Roman">?</font></font></b> </p><p><font SIZE="+0">向窗口發(fā)送 <font FACE="Times New Roman">WM_SECTION</font>消息。</font> </p><p><font SIZE="+0" FACE="Times New Roman">Example:</font> </p><p><font SIZE="+0" FACE="Times New Roman">HICON hIcon=AfxGetApp() ->LoadIcon(IDI_ICON);</font> </p><p><font SIZE="+0" FACE="Times New Roman">ASSERT(hIcon);</font> </p><p><font SIZE="+0" FACE="Times New Roman">AfxGetMainWnd() ->SendMessage(WM_SECTION,TRUE,(LPARAM) hIcon);</font> </p><p><a NAME="tip10"></a><b><font SIZE="+2"><font FACE="Times New Roman">10. </font><fontFACE="黑體">如何改變窗口的缺省風(fēng)格</font><font FACE="Times New Roman">?</font></font></b> </p><p><font SIZE="+0">重栽 <font FACE="Times New Roman">CWnd:: PreCreateWindow </font>并修改<fontFACE="Times New Roman">CREATESTRUCT</font>結(jié)構(gòu)來(lái)指定窗口風(fēng)格和其他</font> </p><p><font SIZE="+0">創(chuàng)建信息<font FACE="Times New Roman">.</font></font> </p><p><font SIZE="+0" FACE="Times New Roman">Example: Delete "Max" Button and Set Original Window's Position and Size</font> </p><p><font SIZE="+0" FACE="Times New Roman">BOOL CMainFrame:: PreCreateWindow (CREATESTRUCT &cs)</font> </p><p><font SIZE="+0" FACE="Times New Roman">{</font> </p><p><font SIZE="+0" FACE="Times New Roman">cs.style &=~WS_MAXINIZEMOX;</font> </p><p><font SIZE="+0" FACE="Times New Roman">cs.x=cs.y=0;</font> </p><p><font SIZE="+0" FACE="Times New Roman">cs.cx=GetSystemMetrics(SM_CXSCREEN/2);</font> </p><p><font SIZE="+0" FACE="Times New Roman">cs.cy=GetSystemMetrics(SM_CYSCREEN/2);</font> </p><p><font SIZE="+0" FACE="Times New Roman">return CMDIFramewnd ::PreCreateWindow(cs);</font> </p><p><font SIZE="+0" FACE="Times New Roman">}</font> </p><p><a NAME="tip11"></a><b><font SIZE="+2"><font FACE="Times New Roman">11. </font><fontFACE="黑體">如何將窗口居中顯示</font><font FACE="Times New Roman">?</font></font></b> </p><p><font SIZE="+0" FACE="Times New Roman">Easy, Call Function CWnd:: Center Windows</font> </p><p><font SIZE="+0" FACE="Times New Roman">Example(1): Center Window( ); //Relative to it's parent</font> </p><p><font SIZE="+0" FACE="Times New Roman">// Relative to Screen</font> </p><p><font SIZE="+0" FACE="Times New Roman">Example(2): Center Window(CWnd:: GetDesktopWindow( ));</font> </p><p><font SIZE="+0" FACE="Times New Roman">//Relative to Application's MainWindow</font> </p><p><font SIZE="+0" FACE="Times New Roman">AfxGetMainWnd( ) -> Center Window( );</font> </p><p><a NAME="tip12"></a><b><font SIZE="+2"><font FACE="Times New Roman">12. </font><fontFACE="黑體">如何讓窗口和</font> <font FACE="Times New Roman">MDI</font><fontFACE="黑體">窗口一啟動(dòng)就最大化和最小化</font><font FACE="Times New Roman">?</font></font></b> </p><p><font SIZE="+0">先說(shuō)窗口。</font> </p><p><font SIZE="+0">在 <font FACE="Times New Roman">InitStance </font>函數(shù)中設(shè)定 <fontFACE="Times New Roman">m_nCmdShow</font>的 取值<font FACE="Times New Roman">.</font></font> </p><p><font SIZE="+0"><font FACE="Times New Roman">m_nCmdShow=SW_SHOWMAXMIZED ; //</font>最大化</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">m_nCmdShow=SW_SHOWMINMIZED ; //</font>最小化</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">m_nCmdShow=SW_SHOWNORMAL ; //</font>正常方式</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">MDI</font>窗口<fontFACE="Times New Roman">:</font></font> </p><p><font SIZE="+0">如果是創(chuàng)建新的應(yīng)用程序<font FACE="Times New Roman">,</font>可以用 <font FACE="Times New Roman">MFC AppWizard </font>的<font FACE="Times New Roman">Advanced </font>按鈕并在</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">MDI</font>子窗口風(fēng)格組中檢測(cè)最大化或最小化<fontFACE="Times New Roman">; </font>還可以重載 <font FACE="Times New Roman">MDI Window </font>的</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">PreCreateWindow</font>函數(shù),設(shè)置<fontFACE="Times New Roman">WS_MAXMIZE or WS_MINMIZE;</font></font> </p><p><font SIZE="+0">如果從 <font FACE="Times New Roman">CMDIChildWnd </font>派生<fontFACE="Times New Roman">,</font>調(diào)用 <font FACE="Times New Roman">OnInitialUpdate</font>函數(shù)中的 <font FACE="Times New Roman">CWnd::Show</font></font> </p><p><font SIZE="+0"><font FACE="Times New Roman">Window</font>來(lái)指定 <fontFACE="Times New Roman">MDI Child Window</font>的 風(fēng)格。</font> </p><p><a NAME="tip13"></a><b><font SIZE="+2"><font FACE="Times New Roman">13. </font><fontFACE="黑體">如何使程序保持極小狀態(tài)</font><font FACE="Times New Roman">?</font></font></b> </p><p><font SIZE="+0">很有意思的 問(wèn)題</font> </p><p><font SIZE="+0">這么辦<font FACE="Times New Roman">: </font>在恢復(fù)程序窗體大小時(shí), <font FACE="Times New Roman">Windows</font>會(huì)發(fā)送<font FACE="Times New Roman">WM_QUERY-OPEN</font>消息,</font> </p><p><font SIZE="+0">用 <font FACE="Times New Roman">ClassWizard</font>設(shè)置成員函數(shù) <fontFACE="Times New Roman">OnQueryOpen() ,add following code:</font></font> </p><p><font SIZE="+0" FACE="Times New Roman">Bool CMainFrame:: OnQueryOpen( )</font> </p><p><font SIZE="+0" FACE="Times New Roman">{</font> </p><p><font SIZE="+0" FACE="Times New Roman">Return false;</font> </p><p><font SIZE="+0" FACE="Times New Roman">}</font> </p><p><a NAME="tip14"></a><b><font SIZE="+2"><font FACE="Times New Roman">14. </font><fontFACE="黑體">如何限制窗口的大小</font><font FACE="Times New Roman">?</font></font></b> </p><p><font SIZE="+0">也就是 <font FACE="Times New Roman">FixedDialog</font>形式。 <fontFACE="Times New Roman">Windows </font>發(fā)送 <font FACE="Times New Roman">WM_GETMAXMININFO</font>消息來(lái)跟蹤<fontFACE="Times New Roman">,</font></font> </p><p><font SIZE="+0">響應(yīng)它<font FACE="Times New Roman">,</font>在 <fontFACE="Times New Roman">OnGetMAXMININFO </font>中寫(xiě)代碼<font FACE="Times New Roman">:</font></font> </p><p><a NAME="tip15"></a><b><font SIZE="+2"><font FACE="Times New Roman">15. </font><fontFACE="黑體">如何使窗口不可見(jiàn)?</font></font></b> </p><p><font SIZE="+0">很簡(jiǎn)單<font FACE="Times New Roman">,</font>用<fontFACE="Times New Roman">SW_HIDE </font>隱藏窗口,可以結(jié)合 <fontFACE="Times New Roman">FindWindow,ShowWindow </font>控制<font FACE="Times New Roman">.</font></font> </p><p><a NAME="tip16"></a><b><font SIZE="+2"><font FACE="Times New Roman">16. </font><fontFACE="黑體">如何使窗口始終在最前方</font><font FACE="Times New Roman">?</font></font></b> </p><p><font SIZE="+0">兩種途徑<font FACE="Times New Roman">.</font></font> </p><p><font SIZE="+0" FACE="Times New Roman">BringWindowToTop(Handle);</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">SetWindowPos</font>函數(shù),指定窗口的 最頂風(fēng)格<font FACE="Times New Roman">,</font>用<font FACE="Times New Roman">WS_EX_TOPMOST</font>擴(kuò)展窗口的 風(fēng)格</font> </p><p><font SIZE="+0" FACE="Times New Roman">Example:</font> </p><p><font SIZE="+0" FACE="Times New Roman">void ToggleTopMost( CWnd *pWnd)</font> </p><p><font SIZE="+0" FACE="Times New Roman">{</font> </p><p><font SIZE="+0" FACE="Times New Roman">ASSERT_VALID(pWnd);</font> </p><p><font SIZE="+0" FACE="Times New Roman">pWnd ->SetWindowPos(pWnd-> GetStyle( ) &WS_EX_TOPMOST)?</font> </p><p><font SIZE="+0" FACE="Times New Roman">&wndNoTopMOST: &wndTopMost,0,0,0,0,SSP_NOSIZE|WSP_NOMOVE);</font> </p><p><font SIZE="+0" FACE="Times New Roman">}</font> </p><hr><p> <a HREF="skill.htm">返回上頁(yè)</a> </p></body></html>
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -