Floris Velleman
Floris Velleman

Reputation: 4888

Win32 C++ getting text from elements

While this question has probably been asked a thousand times before (pretty sure of it I have read a thousand answers). I still don't get it.

Lets say I have a function that creates a ComboBox like this:

  scopeComboSelector=CreateCombobox(hwnd,
                                    GetModuleHandle(0),
                                    CBS_DROPDOWNLIST,
                                    re,
                                    IDCC_DROPDOWNLIST_SCOPE_SELECTOR,
                                    _T("Scopes"));

Where "re" is a positioning rectangle. And IDCC_DROPDOWNLIST_SCOPE_SELECTOR (pretty long name) is the id of the combobox. Now the point is, I can actually fill this "drop down select list" but I have no clue as how I can simply get the currently selected value as a string.

I have seen about 10 ways to do it, which all give errors straight away (need to Convert to LPWSTR -> fixing results in more terror).

Maybe I'm just to used to Java where one can simply say:

 textfield.getText();

How would one achieve this in Win32 C++ (microsoft visual studio)?

Edit

Code I've used:

  char userName[_MAX_PATH+1];
  GetDlgItemTextW(scopeComboSelector,
                  IDCC_DROPDOWNLIST_SCOPE_SELECTOR,
                 (LPWSTR)userName,
                  200);

Returns: userName == empty

Update

Now using: GetDlgItemText(). Debugger tells me the value of userName = ""

Upvotes: 0

Views: 987

Answers (1)

Cheers and hth. - Alf
Cheers and hth. - Alf

Reputation: 145269

The documentation has a C style Windows 9x code example.

You need simply to replace C with C++ and Windows 9x silly T macros with wchar_t and friends.

It's always a good idea to read the documentation.

Upvotes: 1

Related Questions