Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| |
Ой… amirul, в жизни бы не додумался. Спасибо. А в... 25.09.07 12:20 Число просмотров: 3164
Автор: Vedrus <Serokhvostov Anton> Статус: Member
|
Ой… amirul, в жизни бы не додумался. Спасибо. А в сторону MFC если честно не охота копать.
Закрыто.
|
<programming>
|
[Win32] Как в диалоговом окне заполнить данными ComboBox? 25.09.07 04:59 [Den]
Автор: Vedrus <Serokhvostov Anton> Статус: Member Отредактировано 25.09.07 05:04 Количество правок: 3
|
Диалог создан через ресурсы. Пытаюсь инициализировать ComboBox строками из STRINGTABLE. Строки добавляются (команда CB_GETCOUNT возвращает правильный результат), но не отображаются. Вот код:
…
hwndCtrl = GetDlgItem(hDlg, IDC_TYPE);
for (i = 0; i <= 5; i++)
{
LoadString(hInstance, i, szMessage, 255);
SendMessage(hwndCtrl, CB_ADDSTRING, 0, (LPARAM) szMessage);
}
i = SendMessage(hwndCtrl, CB_GETCOUNT, 0, 0);
…
---
Если в диалоговом окне «вручную» создать тот же ComboBox, то всё работает нормально. Вот код, который работает:
…
hwndCtrl = CreateWindow("ComboBox", NULL,
WS_CHILD | WS_VISIBLE | CBS_DROPDOWN | CBS_SORT |
WS_VSCROLL | WS_TABSTOP, 30, 30, 200, 200,
hDlg, NULL, hInstance, NULL);
for (i = 0; i <= 5; i++)
{
LoadString(hInstance, i, szMessage, 255);
SendMessage(hwndCtrl, CB_ADDSTRING, 0, (LPARAM) szMessage);
}
i = SendMessage(hwndCtrl, CB_GETCOUNT, 0, 0);
…
---
Стили ComboBox’а одинаковы в обоих примерах.
Не получается инициализировать ComboBox и через INITDLG (заполнение строк в редакторе ресурсов) - они также не отображаются.
|
|
Ещё одна проблема. Как отследить изменение ComboBox в... 14.10.07 07:57
Автор: Vedrus <Serokhvostov Anton> Статус: Member
|
Ещё одна проблема. Как отследить изменение ComboBox в диалоговом окне?
Диалоговое окно сделано через ресурсы. На сообщение WM_NOTOFY, и тем более на CBN_XXX никак не реагирует. Если то же самое сделать вручную через CreateWindow, то эти сообщения ловятся. Как быть?
PS. Это мне надо, чтобы в зависимости от выбранного в ComboBox элемента, менять данные в другом окне.
|
|
[Win32] Посмотри размер выпадающего окна 25.09.07 09:45
Автор: amirul <Serge> Статус: The Elderman
|
> Диалог создан через ресурсы. Пытаюсь инициализировать > ComboBox строками из STRINGTABLE. Строки добавляются > (команда CB_GETCOUNT возвращает правильный результат), но > не отображаются. Вот код:
Нажми на стрелку вниз прямо в редакторе ресурсов и растяни открывшееся окно до нужного размера.
> > hwndCtrl = GetDlgItem(hDlg, IDC_TYPE);
>
> for (i = 0; i <= 5; i++)
> {
> LoadString(hInstance, i, szMessage, 255);
> SendMessage(hwndCtrl, CB_ADDSTRING, 0, (LPARAM)
> szMessage);
> ---
На всякий случай напоминаю, что в windowsx.h есть очень удобные макросы для сокращения писанины.
Кроме того, взгляни все таки в сторону MFC/WTL/wxWidgets/еще чего нибудь. Удобно ж ведь.
|
| |
Ой… amirul, в жизни бы не додумался. Спасибо. А в... 25.09.07 12:20
Автор: Vedrus <Serokhvostov Anton> Статус: Member
|
Ой… amirul, в жизни бы не додумался. Спасибо. А в сторону MFC если честно не охота копать.
Закрыто.
|
|
|