MFC SetSel和GetSel

通過實際的界面程序瞭解MFC的SetSel函數和GetSel函數的參數應該怎樣傳遞。


函數參數主要如下:

SetSel(int nStartChar, int nEndChar, BOOL bNoScroll);

GetSel(int& nStartChar, int& nEndChar);


nStartChar表示起始的字符位置

nEndChar表示結束的字符位置

bNoScroll爲TRUE表示在選中的時候不會滾動滾動條,爲FALSE表示會隨光標位置改變而滾動滾動條。


先看SetSel:

(1)、調用SetSel函數並設置nStartChar爲-1,nEndChar爲-1時,-1表示最後一個字符。如圖,光標顯示在最後一個字符後面。


(2)、調用SetSel函數並設置nStartChar爲0,nEndChar爲-1時,表示選中第1個到最後一個字符。如圖,字符串被全選。


(3)、調用SetSel函數並設置nStartChar爲1,nEndChar爲-1時,表示選中第2個到最後一個字符。如圖,從第2個字符串到最後一個字符串被選中。



(4)、調用SetSel函數並設置nStartChar爲2,nEndChar爲-1時,表示選中第3個到最後一個字符。如圖,從第3個字符串到最後一個字符串被選中。



(5)、調用SetSel函數並設置nStartChar爲9,nEndChar爲-1時,表示選中第10個到最後一個字符。如圖,從第10個字符串到最後一個字符串被選中。



(6)、調用SetSel函數並設置nStartChar爲-1,nEndChar爲0時,表示光標跳到最後一個字符。如圖,光標被設置在最後一個字符後面。




(7)、調用SetSel函數並設置nStartChar爲-1,nEndChar爲1時,表示光標跳到最後一個字符。如圖,光標被設置在最後一個字符後面。



(8)、調用SetSel函數並設置nStartChar爲-1,nEndChar爲4時,同樣表示光標跳到最後一個字符。如圖,光標被設置在最後一個字符後面。



(9)、調用SetSel函數並設置nStartChar爲2,nEndChar爲15時,表示選中第3個到第15個字符被選中(第一行有換行符“\r\n”,算2個字符)。如圖所示。



(10)、調用SetSel函數並設置nStartChar爲8,nEndChar爲3時,表示選中第4個到第8個字符被選中。如圖所示。

從以上傳參情況來看,可以知道:

1、如果nStartChar設置爲-1,那麼不管nEndChar設置爲多少,光標都會被移到最後;

2、如果nStart不爲-1,則nStartChar和nEndChar之間的字符都會被選中(不管nStartChar和nEndChar的大小如何)。


再看GetSel:

(1)、將光標點在最開始的位置,調用GetSel則nStartChar和nEndChar均爲0




(10)、選中第一個字符前到第十個字符後之間的字符,調用GetSel,nStartChar爲0,nEndChar爲10



(2)、選中第二個字符前到第九個字符後之間的字符,調用GetSel,nStartChar爲1,nEndChar爲9




(3)、將光標點在第十個字符後面,調用GetSel則nStartChar和nEndChar均爲10




(4)、選中第五個字符前到第二行七個字符後之間的字符,調用GetSel,nStartChar爲4,nEndChar爲19(第一行最後有“\r\n”換行符,2個字符)



從以上傳參情況來看,可以知道:

1、如果光標未選中塊,則nStartChar和nEndChar獲取到的值是相同的;

2、如果選中塊,則nStartChar的值爲選中塊第一個字符所在的位置,nEndChar爲選中塊最後一個字符所在的位置






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