информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Ещё одна проблема. Как отследить изменение ComboBox в... 14.10.07 07:57  Число просмотров: 3622
Автор: 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