小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Visual C .NET編程講座之三(5)

 dazuo0312 2006-09-09
Visual C++.NET編程講座之三(5)
2. 使用編輯控件

  "編輯控件"是一個可以讓用戶從鍵盤輸入和編輯文本的控件,通過它可以輸入各種文本、數(shù)字或者口令,也可使用它來編輯和修改簡單的文本內(nèi)容。MFC類CEdit封裝了編輯控件的全部操作。

  使用編輯控件實現(xiàn)文檔數(shù)據(jù)的顯示的思路是,先在視圖中創(chuàng)建一個與視圖客戶區(qū)大小相同的編輯控件,然后把文檔的文本內(nèi)容轉(zhuǎn)送到編輯控件中。這里的視圖客戶區(qū)是指除了窗口標題欄、菜單欄、工具欄、狀態(tài)欄以及邊框之外的部分。簡單地說,就是默認的背景色為白色的區(qū)域。

  實現(xiàn)的步驟如下:

  (1) 為CTextViewerView類添加成員變量CEdit* m_ctrlEdit。這是一個指針變量,用"添加成員變量向?qū)?添加時,要在"變量類型"框加輸入"CEdit*"(雙引號不輸入,注意其中的星號),而在"變量名"中輸入m_ctrlEdit。

  (2) 為CTextViewerView類添加OnInitialUpdate函數(shù)的重寫,并添加如圖10所示的代碼(加框部分)。


                          圖10 在OnInitialUpdate中添加的代碼

  new和delete分別用來為類對象分配和釋放內(nèi)存空間。為了避免m_ctrlEdit內(nèi)存空間重復分配,我們在new操作前,要先將m_ctrlEdit內(nèi)存空間釋放。

  當框架將文檔與視圖關聯(lián),且視圖將要顯示時調(diào)用OnInitialUpdate函數(shù),因此我們將視圖的一些初始化代碼添加到這里。

  (3) 在CTextViewerView析構(gòu)函數(shù)中添加m_ctrlEdit內(nèi)存空間釋放的語句: if ( m_ctrlEdit ) delete m_ctrlEdit;

  (4) 由于視圖大小改變后,編輯控件的大小也應隨之改變,因此我們需要跟蹤窗口的WM_SIZE消息,只要窗口大小發(fā)生改變后,都會發(fā)送這個消息。單擊CTextViewerView類屬性窗口中的"消息"按鈕,添加WM_SIZE消息映射。如圖11所示。


                                  圖11 添加WM_SIZE的消息映射

  (5) 在消息映射函數(shù)CTextViewerView::OnSize中添加如圖12所示的代碼。


                               圖12 在OnSize中添加的代碼

  (6) 運行程序,打開當前文件夾下的ReadMe.txt文件,結(jié)果如圖13所示。


                             圖13 使用編輯控件的文檔數(shù)據(jù)顯示結(jié)果

  評述:這種方法雖然也比較簡單,且具有文本的編輯功能,但文本顯示的格式還很單調(diào),例如它的行間距和字間距無法調(diào)整,更主要的是視圖的繪制功能無法起作用。

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多