Данные не отображаются в выпадающем списке .
всем привет ,
Я пытаюсь заполнить некоторые данные в элементе управления combobox, но когда я запускаю программу, я не вижу в ней никаких данных .
Вот этот фрагмент :
HWND hcombo = CreateWindow(TEXT("COMBOBOX"), NULL, WS_VISIBLE | WS_CHILD | WS_TABSTOP|CBS_DROPDOWNLIST|CBS_HASSTRINGS, 24, 8, 137, 25, hWnd, (HMENU) 1, NULL, NULL); SendMessage(hcombo, CB_ADDSTRING, 0, (LPARAM) TEXT("Item1")); SendMessage(hcombo, CB_ADDSTRING, 0, (LPARAM) TEXT("Item2")); SendMessage(hcombo, CB_ADDSTRING, 0, (LPARAM) TEXT("Item3"));
Хотя если я установлю курсор на какой-то индекс, как в SendMessage(hcombo, CB_SETCURSEL, 0, 0);
Я действительно вижу точные данные в combobox, но единственный элемент данных rest не заполняется в нем .
Я ищу помощи в этом вопросе .
большое спасибо
Richard MacCutchan
Я только что попробовал ваш код, и он работает нормально. Вам нужно проверить с помощью вашего отладчика, чтобы увидеть, что происходит.
iampradeepsharma
имеет ли это отношение к тому, где был выполнен код, я имею в виду, что я поместил этот код внутри WM_CREATE внутри switch case . Хотя я вижу на нескольких других сайтах , они поместили его под WM_INITDIALOG . Хотя я и пытался поставить его под него, но WM_INITDIALOG никогда не вызывается . У вас есть какие - нибудь идеи по этому поводу?
Спасибо Ричард
Richard MacCutchan
Это зависит от вашего приложения. Если это обычное оконное приложение, то WM_CREATE
наверное, это хорошее место. Если это диалог, то WM_INITDIALOG
все должно быть в порядке.
Возможно, что в вашем коде есть что-то еще, что вызывает проблему, но, не видя больше, невозможно сказать, что это может быть. Как я уже предлагал ранее, вы должны использовать свой отладчик, чтобы захватить немного больше информации.
iampradeepsharma
Действительно ли вы видите 3 элемента, заполненных внутри поля со списком, как с этим кодом, который я пробовал на двух машинах, но безрезультатно .
Richard MacCutchan
Как я уже говорил раньше, - он прекрасно работает", что означает, что он работает правильно. Таким образом, вы должны делать что-то еще в своем коде, что портит или иным образом разрушает что-то в вашем ComboBox.
iampradeepsharma
Ричард, было бы очень полезно, если бы вы могли поделиться своим файлом со мной (если вы не возражаете), чтобы я мог работать непосредственно на своей машине .
спасибо!
Richard MacCutchan
Здесь нечем поделиться. Я просто вставил ваш код в программу после того, как окно было создано, и это сработало.
iampradeepsharma
ладно СПС
iampradeepsharma
Итак, проблема была в размере окна 24, 8, 137 , 25, это 25 было причиной ..Я довел его до 100 и обнаружил, что он может показывать в нем 3 элемента . Спасибо Ричарду за то, что помог мне .
Richard MacCutchan
Наверное, я неправильно понял ваш вопрос. Он всегда показывал элементы только тогда, когда я нажимал, чтобы развернуть выпадающий список.