информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяСтрашный баг в WindowsГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 С наступающим 
 Microsoft обещает радикально усилить... 
 Ядро Linux избавляется от российских... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Ещё одна проблема. Как отследить изменение ComboBox в... 14.10.07 07:57  Число просмотров: 3550
Автор: Vedrus <Serokhvostov Anton> Статус: Member
<"чистая" ссылка>
Ещё одна проблема. Как отследить изменение ComboBox в диалоговом окне?

Диалоговое окно сделано через ресурсы. На сообщение WM_NOTOFY, и тем более на CBN_XXX никак не реагирует. Если то же самое сделать вручную через CreateWindow, то эти сообщения ловятся. Как быть?

PS. Это мне надо, чтобы в зависимости от выбранного в ComboBox элемента, менять данные в другом окне.
<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 если честно не охота копать.

Закрыто.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach