日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Visual C .NET編程講座之四(2)

 dazuo0312 2006-09-09

  (7) 重復(fù)上述步驟,在"格式"菜單下再添加一個菜單項"文本顏色(&C)",ID為ID_FORMAT_TXTCOLOR,結(jié)果如圖3所示。



圖3 添加的菜單

 


  (8) 單擊"格式"菜單不松開,然后將其拖放到"視圖"和"幫助"之間。


  2. 菜單的命令映射


  此時運(yùn)行程序,則"格式"菜單下的命令都是"灰顯"(即顯示的顏色是灰色的)的,我們無法選擇相應(yīng)的菜單命令,這是因為我們還沒有對菜單的命令消息進(jìn)行映射。下面就來進(jìn)行映射,由于我們添加的這些菜單命令是想更改變文本內(nèi)容顯示的字體,因此我們將菜單命令的映射添加到視圖類CViewerView中,如下面的過程:


  (1) 將解決方案資源管理器切換到"類視圖",展開節(jié)點(diǎn),選定"CViewerView",在其屬性窗口中,單擊"事件"按鈕,結(jié)果如圖4所示。



圖4 事件映射

 


  (2) 找到前面添加的菜單項ID_FORMAT_TXTFONT,單擊該ID前面的"+",展開后出現(xiàn)可以映射的消息,由于菜單消息是命令消息,因為我們在COMMAND消息框的右側(cè),單擊后選擇"<添加>OnFormatTxtfont",如圖4所示。這樣相應(yīng)的映射就被添加到CViewerView類中,此時文檔窗口中自動定位到該函數(shù)的實(shí)現(xiàn)代碼處。



圖5 映射COMMAND消息

 


  (3) 重復(fù)上一步為菜單項ID_FORMAT_TXTCOLOR添加COMMAND消息映射。


  注意:同一命令消息的響應(yīng)是根據(jù)對象的級別來決定的,對于單文檔應(yīng)用程序來說,各對象的級別從高到低依次為視圖類(文檔窗口)、文檔類、主框架窗口類、應(yīng)用程序類。


  3. 完善"格式"菜單代碼


  (1) 為CViewerView類添加兩個成員變量(添加成員變量的方法上一講已討論過),一個是LOGFONT類型的m_lfTextFont,另一個是COLORREF類型的m_crTxtColor。LOGFONT是邏輯字體類型,所謂"邏輯字體",它是應(yīng)用程序?qū)τ诶硐胱煮w的一種描述方式。在使用邏輯字體繪制文字時,系統(tǒng)會采用一種特定的算法把邏輯字體映射為最匹配的物理字體(實(shí)際安裝在操作系統(tǒng)中的字體)。而COLORREF是專門用來定義RGB顏色的數(shù)據(jù)類型,RGB顏色是通過紅(R)、綠(G)、藍(lán)(B)三種基色分量的不同值混合而成的。


  (2) 在構(gòu)造函數(shù)CViewerView::CViewerView()中添加上述兩個成員變量的初始化代碼,如圖5所示。



圖6 在CViewerView類構(gòu)造函數(shù)中添加的代碼

 


  (3) 在CViewerView::OnFormatTxtfont()函數(shù)中添加如圖6所示的代碼。



圖7 OnFormatTxtfont()函數(shù)代碼

 


  CFontDialog類為我們提供了字體及其文本顏色選擇的通用對話框,在構(gòu)造對象中指定m_lfTextFont指針,其目的是用來設(shè)置對話框顯示的邏輯字體,這樣當(dāng)下一次顯示字體對話框時,就會顯示當(dāng)前的字體特性。


  (4) 在CViewerView::OnFormatTxtcolor()函數(shù)中添加如圖7所示的代碼。



圖8 OnFormatTxtcolor()函數(shù)代碼

 


  CColorDialog類封裝了通用顏色對話框的全部操作。在定義對話框?qū)ο髸r,可以指定默認(rèn)選定的顏色值,若不指定,則默認(rèn)顏色值為RGB(0,0,0)(黑色)。


  (5) 修改CViewerView::OnDraw()函數(shù)代碼,如圖8所示的加框部分。



圖9 修改后的OnDraw()函數(shù)代碼

 


  (6) 運(yùn)行程序,打開當(dāng)前目錄中的ReadMe.txt文檔,打開"格式"菜單,選中相應(yīng)的菜單命令,改變其字體和顏色。圖9是其中的一個結(jié)果。



圖10 運(yùn)行后的程序結(jié)果

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多