CComboBox GetWindowText vs. GetLBText

Category: , By 人生有夢,築夢踏實
CComboBox 使用於視窗中的下拉式選單。
你可以由下拉選單中,來挑選你要的值;亦可透過直接輸入的方式來設定你要的值。
但在這二種方法中,要取得編輯欄 (Edit Control) 內的值是不同的。

於編輯欄內,直接輸入:
輸入欄內容的變更會觸發 CBN_EDITCHANGE 和 CBN_EDITUPDATE 。這二個訊息不同點在於螢幕的顯示:EDITUPDATE 是在未顯示於螢幕上,而 EDITCHANGE 則發生於螢幕顯示後。我的偏好是利用 EDITCHANGE 訊息,透過 GetWindowText 函式來取得編輯欄內的文字內容。

利用下拉選單來選擇:
使用下拉選單來選擇,則會觸發 CBN_SELCHANGE 訊息;若使用 GetWindowText 函式來取得編輯欄內的文字內容,會取得錯誤的內容。需使用 GetLBText 函式來取得編輯欄內的內容;步驟先使用 GetCurSel 函式取得選到選項的 Index number 。再利用 GetLBText 函式透過 CString或
tchar[] 來取得。

 

0 comments so far.

Something to say?

ARCHIVES