插入符號函式

插入符號函式是指在Windows中,插入符號定義為水平線、與字元大小相同的方框,或者與字元同高的豎線。

五個插入符號函式,定義,其他規則,

五個插入符號函式

主要有五個插入符號函式:
CreateCaret 建立與視窗有關的插入符號
SetCaretPos 在視窗中設定插入符號的位置
ShowCaret 顯示插入符號
HideCaret 隱藏插入符號
DestroyCaret 撤消插入符號
另外還有取得插入符號目前位置(GetCaretPos)和取得以及設定插入符號閃爍時間(GetCaretBlinkTimeSetCaretBlinkTime)的函式。

定義

如果使用調和字型,例如Windows內定的系統字型,則推薦使用豎線插入符號。因為調和字型中的字元沒有固定大小,水平線或方框不能設定為字元的大小。
如果程式中需要插入符號,那么您不應該簡單地在視窗訊息處理程式的WM_CREATE訊息處理期間建立它,然後在WM_DESTROY訊息處理期間撤消。其原因顯而易見:一個訊息佇列只能支援一個插入符號。因此,如果您的程式有多個視窗,那么各個視窗必須有效地共用相同的插入符號。
其實,它並不像聽起來那么多限制。您再想想就會發現,只有在視窗有輸入焦點時,視窗內顯示插入符號才有意義。事實上,閃爍的插入符號只是一種視覺提示:您可以在程式中輸入文字。因為任何時候都只有一個視窗擁有輸入焦點,所以多個視窗同時都有閃爍的插入符號是沒有意義的。
通過處理WM_SETFOCUS和WM_KILLFOCUS訊息,程式就可以確定它是否有輸入焦點。正如名稱所暗示的,視窗訊息處理程式在有輸入焦點的時候接收到WM_SETFOCUS訊息,失去輸入焦點的時候接收到WM_KILLFOCUS訊息。這些訊息成對出現:視窗訊息處理程式在接收到WM_KILLFOCUS訊息之前將一直接收到WM_SETFOCUS訊息,並且在視窗打開期間,此視窗總是接收到相同數量的WM_SETFOCUS和WM_KILLFOCUS訊息。
使用插入符號的主要規則很簡單:視窗訊息處理程式在WM_SETFOCUS訊息處理期間呼叫CreateCaret,在WM_KILLFOCUS訊息處理期間呼叫DestroyCaret

其他規則

這裡還有幾條其他規則:插入符號剛建立時是隱蔽的。如果想使插入符號可見,那么您在呼叫CreateCaret之後,視窗訊息處理程式還必須呼叫ShowCaret。另外,當視窗訊息處理程式處理一條非WM_PAINT訊息而且希望在視窗內繪製某些東西時,它必須呼叫HideCaret隱藏插入符號。在繪製完畢後,再呼叫ShowCaret顯示插入符號。HideCaret的影響具有累積效果,如果多次呼叫HideCaret而不呼叫ShowCaret,那么只有呼叫ShowCaret相同次數時,才能看到插入符號。

相關詞條

熱門詞條

聯絡我們