雖然這個問題可能被問過一千次之前(很確定它,我已經讀了一千個答案)。我仍然不明白。Win32 C++從元素中獲取文本
可以說,我有一個創建一個像這樣的組合框的功能:
scopeComboSelector=CreateCombobox(hwnd,
GetModuleHandle(0),
CBS_DROPDOWNLIST,
re,
IDCC_DROPDOWNLIST_SCOPE_SELECTOR,
_T("Scopes"));
其中「re」是一個定位矩形。和IDCC_DROPDOWNLIST_SCOPE_SELECTOR(很長的名字)是組合框的ID。現在重點是,我實際上可以填充這個「下拉選擇列表」,但我不知道如何簡單地將當前選定的值作爲字符串獲取。
我已經看到了大約10種方式來做到這一點,這些方法都會立即給出錯誤(需要轉換爲LPWSTR - >修復更多恐怖結果)。
也許我只是用來Java的其中一個可以簡單地說:
textfield.getText();
一個將如何在Win32中C++中實現這一++(微軟的Visual Studio)?
編輯
碼我用:
char userName[_MAX_PATH+1];
GetDlgItemTextW(scopeComboSelector,
IDCC_DROPDOWNLIST_SCOPE_SELECTOR,
(LPWSTR)userName,
200);
返回:用戶名==空
更新
現在使用:GetDlgItemText()。調試器告訴我的值userName =「」
請發佈您嘗試過的方式的代碼,以及您得到的確切錯誤。這聽起來像你在某個時候可能有正確的答案,但只是沒有正確處理字符串。如果您發佈該信息,則可能有人可能會向您顯示您出錯的位置。 – JBentley 2013-02-25 17:37:58
看起來你正在使用一個'char'數組,它需要unicode。嘗試'GetDlgItemText'而不是'GetDlgItemTextW',或者使用寬字符而不是char。另外,請發佈編譯器錯誤。 – JBentley 2013-02-25 17:42:14
可能的重複http://stackoverflow.com/questions/7262644/get-the-text-of-a-combo-box-win32-api-c-no-mfc – Rich 2013-02-25 17:42:54