MFC 文本編程 -- 總結

如何創建插入符

1.可以利用CWnd 類的CreateSolidCaret 函數來完成創建操作。

但這樣創建的插入符剛開始是隱藏的,需用ShowCaret 來顯示。

void CreateSolidCaret( int nWidth, int nHeight );     // 創建插入符

void ShowCaret( );                                                     // 顯示插入符

void HideCaret( );                                                      // 隱藏插入符

 

2.創建插入符時,需指定其寬度同高度,這需求獲取當前文本字體屬性信息纔可確定。

我們可通過CDC 類的GetTextMetrics函數來取得設備環境中的字體度量。

BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics ) const;

 

其中,TEXTMETRIC 結構用於存儲字體度量信息。

 

3.創建圖形插入符

先創建一個位圖資源,再定義一個CBitmap類實例並加載之前已創建的位圖資源

再利用CWnd 類的CreateCaret函數來創建圖形播放符。

void CreateCaret( CBitmap* pBitmap );

 

4.設置插入符位置

static void PASCAL SetCaretPos( POINTpoint );

 

窗口重繪

1. 如何定義字符串對象

定義一個CString 對象,並用字符串來初始化。

CStirng 類的構造函數

CString( );                                                  // 缺省構造函數
CString( const CString& stringSrc );        // 複製構造函數
CString( TCHAR ch, int nRepeat = 1 );     // 用字符初始化
CString( LPCTSTR lpch, int nLength );     // 用字符串前nLength 個字符初始化
CString( LPCSTR lpsz );                            // 用字符串初始化
CString( LPCWSTR lpsz );                         // 用寬字符串初始化
CString( const unsigned char* psz ); :   // 用字符串初始化

也可用LoadString函數來加載一個已定義的字符串資源

BOOL   LoadString(UINT    nID);

 

路徑層

1.通過CDC 類的GetTextExtent 函數,可獲得一個字符串在當前設備環境中顯示所需的長度同寬度

CSize GetTextExtent( LPCTSTR lpszString, int nCount ) const;
CSize GetTextExtent( const CString& str ) const;

 

2.設置路徑層

通過CDC類的成員函數 BeginPath 同 EndPath 函數來設置

 

3.設置裁剪模式

經過這樣的設置後,可將當前路徑區域與非路徑區域區分開來

BOOL SelectClipPath( int nMode );

 

兩個實例: 字符輸入,字幕變色

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章