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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Ой… 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 если честно не охота копать.

Закрыто.
1




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


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