Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2014, 21:30   #1
Tahoma
DI HALT RET
Форумчанин
 
Аватар для Tahoma
 
Регистрация: 30.12.2010
Сообщений: 117
По умолчанию CBN_SELCHANGE в DialogBox

Доброго времени суток.
Уважаемые, знающие, подскажите, в каком направлении смотреть решение задачи поимки сообщения CBN_SELCHANGE в ресурсном окне вызванном через DialogBox.
Также не ловятся сообщения через WM_NOTIFY.

Прога содержит кучу стандартных окошек от static text до picture, по этому легче использовать конструктор диалогового окна, чем вызывать CreateWindow.
Tahoma вне форума Ответить с цитированием
Старый 13.02.2014, 21:57   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Я не понял про CreateWindow - чем вам CreateDialog не угодила?
Что значит "не ловятся сообщения через WM_NOTIFY" - хотите сказать, что в диалоговую процедуру не приходит WM_NOTIFY?
waleri вне форума Ответить с цитированием
Старый 13.02.2014, 22:41   #3
Tahoma
DI HALT RET
Форумчанин
 
Аватар для Tahoma
 
Регистрация: 30.12.2010
Сообщений: 117
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Я не понял про CreateWindow - чем вам CreateDialog не угодила?
Как раз таки нужна.

Цитата:
Сообщение от waleri Посмотреть сообщение
Что значит "не ловятся сообщения через WM_NOTIFY" - хотите сказать, что в диалоговую процедуру не приходит WM_NOTIFY?
Почему то нет. Дебагер не ловит. Хотя должен, с этим сейчас разбираюсь.

Код:
	switch (message)
	{
	case WM_NOTIFY:
->		lParam = wParam;   // breakpoint
		wParam = wParam;
		break;

Последний раз редактировалось Tahoma; 13.02.2014 в 22:43.
Tahoma вне форума Ответить с цитированием
Старый 14.02.2014, 10:17   #4
Tahoma
DI HALT RET
Форумчанин
 
Аватар для Tahoma
 
Регистрация: 30.12.2010
Сообщений: 117
По умолчанию

Разобрался таки, когда выспался Как и следовало ожидать, CBN_SELCHANGE надо ловить непосредственно от диалога ComboBox:

Код:
	int cursel = 0;
	char tmp[256];
	switch (message)
	{
	case WM_COMMAND:
		{
			switch(LOWORD(wParam))
			{
			case IDS_COMBO_ID:
				if(HIWORD(wParam) == CBN_SELCHANGE)
				{
					cursel = SendMessage((HWND)lParam, CB_GETCURSEL, 0, 0);
					SendMessage((HWND)lParam, CB_GETLBTEXT, cursel, (LPARAM)tmp);
				}
				break;
			}
			break;
		}
	}
Tahoma вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DialogBox или обычное окно? Dj-IIyIIc Win Api 3 05.11.2010 00:14
Почему DialogBox возвращает (-1) ? vassel Общие вопросы C/C++ 5 17.01.2010 23:30