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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2009, 18:28   #1
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию оконная процедура и вложенный switch

Код:
LRESULT CALLBACK MainFormProc(HWND hwnd, 
						UINT uMsg,
						WPARAM wParam,
						LPARAM lParam)
{
	switch (uMsg)
	{
		case WM_COMMAND:
			if ((HWND)lParam==hButton1||wParam==BN_CLICKED)
			{
				MessageBox(hWnd,"Мы нажали кнопку","Браво",MB_OK);
			}
			break;
		case WM_DESTROY:
			PostQuitMessage(0);
			break;
	}
	return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
вот так работает, но пытаюсь сделать вложенный switch:
Код:
LRESULT CALLBACK MainFormProc(HWND hwnd, 
						UINT uMsg,
						WPARAM wParam,
						LPARAM lParam)
{
	switch (uMsg)
	{
		case WM_COMMAND:
			if ((HWND)lParam==hButton1)
			{
				switch (wParam)
				{
					case BN_CLICKED:
						MessageBox(hWnd,"Мы нажали кнопку","Браво",MB_OK);
						break;
				}
			}
			break;
		case WM_DESTROY:
			PostQuitMessage(0);
			break;
	}
	return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
и так не получается
как верно то?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.09.2009, 18:32   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

В первом случае логическое "или" идёт, а во втором - "и".
pu4koff вне форума Ответить с цитированием
Старый 09.09.2009, 18:46   #3
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Если не ошибаюсь, то нужно во втором свитче вот так:
Код:
switch(HIWORD(wParam))
{ 
...
netrino вне форума Ответить с цитированием
Старый 09.09.2009, 18:56   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

netrino, спасибо

pu4koff, спасибо, случайно, хотя работало...а вот если две кнопки то наверно бы неверно работало..

просто приступил наконец к изучению, вот и идут ошибки
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SWITCH 8 портовый SKS Компьютерное железо 3 29.01.2009 03:39
Оператор switch. IgorArhangel Помощь студентам 4 16.01.2009 01:53
Switch Division Общие вопросы C/C++ 3 11.01.2009 23:52
не работает вложенный catch jorjik Общие вопросы C/C++ 5 13.07.2008 22:37
Оконная процедура HunterMan Win Api 5 04.06.2008 12:10