?? vctip3.html
字號(hào):
<p><font SIZE="+0">該技術(shù)也適用于對(duì)話框和基于對(duì)的應(yīng)用程序,只是不必調(diào)用<fontFACE="Times New Roman">CWnd : : GetParentFrame </font>。</font> </p><p><font SIZE="+0" FACE="Times New Roman">void CSampleDialog : : OnLbuttonDown (UINT nFlags, Cpoint point )</font> </p><p><font SIZE="+0" FACE="Times New Roman">{</font> </p><p><font SIZE="+0" FACE="Times New Roman">Cdialog : : OnLButtonDow (nFlags, goint );</font> </p><p><font SIZE="+0" FACE="Times New Roman">//Fool dialog into thinking simeone clicked on its caption bar .</font> </p><p><font SIZE="+0" FACE="Times New Roman">PostMessage (WM_NCLBUTTONDOWN , HTCAPTION , MAKELPARM (point.x , point. y ) )</font> </p><p><font SIZE="+0" FACE="Times New Roman">}</font> </p><p><a NAME="tip22"></a><b><font SIZE="+2"><font FACE="Times New Roman">22</font><fontFACE="黑體">、如何改變視窗的背景顏色</font></font></b> </p><p><font SIZE="+0"><font FACE="Times New Roman">Windows</font>向窗口發(fā)送一個(gè)<fontFACE="Times New Roman">WM_ERASEBKGND</font>消息通知該窗口擦除背景,可以使用</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">ClassWizard</font>重載該消息的缺省處理程序來(lái)擦除背景(實(shí)際是畫),并返回<fontFACE="Times New Roman">TRUE</font>以</font> </p><p><font SIZE="+0">防止<font FACE="Times New Roman">Windows</font>擦除窗口。</font> </p><p><font SIZE="+0" FACE="Times New Roman">//Paint area that needs to be erased.</font> </p><p><font SIZE="+0" FACE="Times New Roman">BOOL CSampleView : : OnEraseBkgnd (CDC* pDC)</font> </p><p><font SIZE="+0" FACE="Times New Roman">{</font> </p><p><font SIZE="+0" FACE="Times New Roman">// Create a pruple brush.</font> </p><p><font SIZE="+0" FACE="Times New Roman">CBrush Brush (RGB (128 , 0 , 128) );</font> </p><p><font SIZE="+0" FACE="Times New Roman">// Select the brush into the device context .</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">CBrush* pOldBrush = pDC</font>—<fontFACE="Times New Roman">>SelcetObject (&brush);</font></font> </p><p><font SIZE="+0" FACE="Times New Roman">// Get the area that needs to be erased .</font> </p><p><font SIZE="+0" FACE="Times New Roman">CRect reClip ;</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">pDC</font>—<font FACE="Times New Roman">>GetCilpBox (&rcClip);</font></font> </p><p><font SIZE="+0" FACE="Times New Roman">//Paint the area.</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">pDC</font>—<font FACE="Times New Roman">> PatBlt (rcClip.left , rcClip.top ,</font></font> </p><p><font SIZE="+0" FACE="Times New Roman">rcClip.Width ( ) , rcClip.Height ( ) , PATCOPY );</font> </p><p><font SIZE="+0" FACE="Times New Roman">//Unselect brush out of device context .</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">pDC</font>—<font FACE="Times New Roman">>SelectObject (pOldBrush );</font></font> </p><p><font SIZE="+0" FACE="Times New Roman">// Return nonzero to half fruther processing .</font> </p><p><font SIZE="+0" FACE="Times New Roman">return TRUE;</font> </p><p><font SIZE="+0" FACE="Times New Roman">}</font> </p><p><a NAME="tip23"></a><b><font SIZE="+2"><font FACE="Times New Roman">23</font><fontFACE="黑體">、如何改變窗口標(biāo)題</font></font></b> </p><p><font SIZE="+0">調(diào)用<font FACE="Times New Roman">CWnd : : SetWindowText</font>可以改變?nèi)魏未翱冢ò丶┑臉?biāo)題。</font> </p><p><font SIZE="+0" FACE="Times New Roman">//Set title for application's main frame window .</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">AfxGetMainWnd ( ) </font>—<fontFACE="Times New Roman">> SetWindowText (_T("Application title") );</font></font> </p><p><font SIZE="+0" FACE="Times New Roman">//Set title for View's MDI child frame window .</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">GetParentFrame ( ) </font>—<fontFACE="Times New Roman">> SetWindowText ("_T ("MDI Child Frame new title") );</font></font> </p><p><font SIZE="+0" FACE="Times New Roman">//Set title for dialog's push button control.</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">GetDigitem (IDC_BUTTON) </font>—<fontFACE="Times New Roman">> SetWindowText (_T ("Button new title ") );</font></font> </p><p><font SIZE="+0">如果需要經(jīng)常修改窗口的標(biāo)題(注:控件也是窗口),應(yīng)該考慮使用半文檔化</font> </p><p><font SIZE="+0">的函數(shù)<font FACE="Times New Roman">AfxSetWindowText</font>。該函數(shù)在<fontFACE="Times New Roman">AFXPRIV.H</font>中說(shuō)明,在<font FACE="Times New Roman">WINUTIL.CPP</font>中實(shí)現(xiàn),在</font> </p><p><font SIZE="+0">聯(lián)機(jī)幫助中找不到它,它在<font FACE="Times New Roman">AFXPRIV.H</font>中半文檔化, 在以后發(fā)行的<font FACE="Times New Roman">MFC</font>中將文檔化。</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">AfxSetWindowText</font>的實(shí)現(xiàn)如下:</font> </p><p><font SIZE="+0" FACE="Times New Roman">voik AFXAPI AfxSetWindowText (HWND hWndCtrl , LPCTSTR IpszNew )</font> </p><p><font SIZE="+0" FACE="Times New Roman">{</font> </p><p><font SIZE="+0" FACE="Times New Roman">itn nNewLen= Istrlen (Ipaznew);</font> </p><p><font SIZE="+0" FACE="Times New Roman">TCHAR szOld [256];</font> </p><p><font SIZE="+0" FACE="Times New Roman">//fast check to see if text really changes (reduces flash in the controls )</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">if (nNewLen >_contof (szOld) </font>||</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">: : GetWindowText (hWndCrtl , szOld , _countof (szOld) !=nNewLen </font>||</font> </p><p><font SIZE="+0" FACE="Times New Roman">Istrcmp (szOld , IpszNew )! = 0</font> </p><p><font SIZE="+0" FACE="Times New Roman">{</font> </p><p><font SIZE="+0" FACE="Times New Roman">//change it</font> </p><p><font SIZE="+0" FACE="Times New Roman">: : SetWindowText (hWndCtrl , IpszNew );</font> </p><p><font SIZE="+0" FACE="Times New Roman">}</font> </p><p><font SIZE="+0" FACE="Times New Roman">}</font> </p><p><a NAME="tip24"></a><b><font SIZE="+2"><font FACE="Times New Roman">24</font><fontFACE="黑體">、如何防止主框窗口在其說(shuō)明中顯示活動(dòng)的文檔名</font></font></b> </p><p><font SIZE="+0">創(chuàng)建主框窗口和<font FACE="Times New Roman">MDI</font>子窗口進(jìn)通常具有<fontFACE="Times New Roman">FWS_ADDTOTITLE</font>風(fēng)格位, 如果不希望在</font> </p><p><font SIZE="+0">說(shuō)明中自動(dòng)添加文檔名, 必須禁止該風(fēng)格位, 可以使用<font FACE="Times New Roman">ClassWizard</font>重置</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">CWnd: : PreCreateWindow</font>并關(guān)閉<fontFACE="Times New Roman">FWS_ADDTOTITLE</font>風(fēng)格。</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">//Turn off FWS_ADDTOTITLE in main frame .</font> </p><p><font SIZE="+0"><font FACE="Times New Roman">cs.styel & = ~FWS_ADDTOTITLE ;</font> </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><font SIZE="+0">關(guān)閉<font FACE="Times New Roman">MDI</font>子窗口的<fontFACE="Times New Roman">FWS _ADDTOTITLE</font>風(fēng)格將創(chuàng)建一個(gè)具有空標(biāo)題的窗口,可以調(diào)</font> </p><p><font SIZE="+0">用<font FACE="Times New Roman">CWnd: : SetWindowText</font>來(lái)設(shè)置標(biāo)題。記住自己設(shè)置標(biāo)題時(shí)要遵循接口風(fēng)格指南。</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 + -