用MFC寫文字文件的編輯字處理程式

2021-09-30 08:15:52 字數 2356 閱讀 7064

通常我們所用的 words  、記事本、等等

1選擇c++檔案

2選擇但文件檔案,文件和其他不同的是,有乙個一閃一閃的插入符,

3 件沒有插入符。我們就給他做當我們建立乙個檔案的時候,我們就編譯一些這個工程,看到這個文插入符,現在怎麼做插入符呢,我們可以在

框架類裡面做,也可以在可視類裡面做,在框架類是包含在可視類裡面的,所以我們就做可視類裡面,用訊息響應的方式來做,第一我們用函

數來響應,我們在建立函式(首先是在視覺化裡增加)

4   

首先增加函式為createsolidcaret( int nwidth, int nheight ); int nwidth,插入符的寬度 、int nheight插入符的高度 

視類始終是覆蓋在框架類之上的,我們應該在視類中去建立響應的函式,我們可以自己去新增建立響應函式, wm create 我們來增加編輯** 

然後我們建立乙個插入符,createsolidcaret(1,20);然後編譯程式,執行,看看

沒有看見我們的插入符,插入符初始化的時候是隱藏的,要顯示,需要呼叫函式,showcaret函式

插入符的大小根據我們的字型來變化,我們在word 和記事本中有體現 要讓我們的插入符和字型大小一直,那我們的插入符就要獲取裝置描述

表文字的資訊gettextmetrics獲取當前字型的一些資訊,我們看到的是乙個指標的變數我們將指標傳給乙個成員函式,來呼叫,看看這個結構

體,我們看看,我們需要定義結構體,

我們首先來構造乙個dc  用  cclinetdc dc(this);

texetmetric tm;

dc.gettexetmetrics(&tm);

接著我們建立圖形的插入符。我們可以利用乙個函式-createcaret( createcaret( cbitmap* pbitmap );這裡有乙個指向bitmap的乙個指標

,我們現構造乙個 cbimap

)          cbitmap bitmap; 區域性的變數,當發生變化是要發生析構 最後我們將 cbitmap bitmap;剪貼到ctestview下的後面就可以了,這

樣就是全域性

bitmap.loadbitmap(idb_bitmap1);

createcaret(&bitmap);

我們在我們的視窗輸出一串文字,當我們的視窗尺寸發生變化時,我們的文字會發生重繪,我們就看不到了

ctestview::ondraw(cdc* pdc)  ondraw函式通過呼叫cdc* pdc來

要來輸入一串文字,現在就介紹乙個類: cstring 通常我們在對乙個字串進行定義的時候,就通過,利用指標完成字串操作的功能。 

cstring str("陳蕊我愛你-鄭航好愛你");

pdc->textout(50,50,str);

//cstring str("陳蕊我愛你-鄭航好愛你");

cstring str;

str="陳蕊我愛你-鄭航好愛你";

pdc->textout(50,50,str);

現在還有乙個函式,等等看吧,

str.loadstring(ids_zhenghang);

pdc->textout(30,100,str);

2  路程序概念。圈地乙個圈,我們走的軌跡,就是我們路程序。建立路程序,我們有來兩個函式,beginpath endpath

現在獲取什麼呢,就是字串的大小長度, 可用乙個函式, gettextextent

csize sz=pdc->gettextextent(str);    pdc->rectangle(50,50,50+sz.cx,50+sz.cy);

這個會用畫刷填充矩形,看不見了,我們接著看,接著我們劃一寫網格。

for(int i=0;i<300;i+=10)

現在跟糊塗了,現在看看,這個

selectclippath  這個函式將我們的繪圖會有所改變,是將怎麼樣得的改變呢,

pdc->selectclipath(rgm_and)

現在我們看字元輸出的訊息,我們看看,我們用textout來輸出的時候, 我們就不能實現,因為每次輸出的時候的都要指定座標。

我們增加wm char 訊息來編輯  有這個我們將完成乙個輸出的功能, 輸出的時候我們的插入符跟著我們的游標移動的地方移動,我點到那裡,

插入符就跟在那裡,這樣我們還需要捕獲乙個訊息  wm lbuttondown 為了移動插入符我們可以利用乙個函式來完成,setcaretpos

setcaretpos( point ); 我們可以用這個函式來表示

void ctestview::onlbuttondown(uint nflags, cpoint point)

void ctestview::ondraw(cdc* pdc)

後===

MFC練習小結 單文字文件

在練習了前面兩個實驗以後,略微對mfc的單文字文件 sdi 有所了解,現總結如下 用 表示派生的話,有如下的關係 cframewnd cmainframe,主程式視窗 cdocument csdidoc,存放程式資料並在磁碟上讀寫 cview csdiview,程式資料顯示並處理使用者輸入 下為附加...

用python讀寫txt文字文件

1.檔案讀取 file open rules.txt 開啟檔案 txt 1 file read 讀取所有內容 txt 2 file readline 讀取第一行內容 txt 3 file readlines 讀取所有內容,並將每行以列表形式返回 file next 逐行讀取檔案 去掉每行的換行符號 ...

WinCE中Unicode文字文件的編寫

在程式執行的時候通常要記錄一些log檔案,通常使用的方法是把程式執行資訊輸出到txt文字。因為wince中使用的是unicode,普通的windows,ansi txt文字編寫方法在wince中使用不了。在wince之中,預設使用unicode雙位元組編碼而非傳統系統的ansi單位元組,因此在編寫t...