如何創建插入符
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 );
兩個實例: 字符輸入,字幕變色