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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2008, 13:40   #1
Tan4ik
Пользователь
 
Аватар для Tan4ik
 
Регистрация: 20.04.2008
Сообщений: 18
Вопрос Корректное закрытие MessageBox

Есть приложение:обычное окошко с 2-мя пунктами меню, при выборе одного из которых "Вылазит" диалог. Диалог состоит из 2-х RADIOBUTTON -ов и 2- х селекторных переключателей, при смене которых должно выдаваться сообщение, подтверждающее выбор.

Для вывода этого самого сообщения я использую MessageBox...
Если в параметрах MessageBox использовать дескриптор = NULL или родительского, или окна диалога, это окошко с сообщением просто не закрывается, а "размножается".
Попробовала также сделать так:
Цитата:
if(MessageBox(hDlg,"Change font","Font",MB_OK)==IDOK)DestroyWi ndow(hDlg);
но, в этом случае закрывается все приложение...
КАК КОРРЕКТНО ЗАКРЫТЬ MessageBox?
Tan4ik вне форума Ответить с цитированием
Старый 01.05.2008, 14:37   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

А зачем "DestroyWindow(hDlg)" ? MessageBox закрывает себя сам и возвращает значение нажатой кнопки.
B_N вне форума Ответить с цитированием
Старый 01.05.2008, 14:39   #3
Nixtone
Пользователь
 
Регистрация: 16.10.2007
Сообщений: 17
По умолчанию

Пишется так MessageDlg('Сообщение',mtInformatio n,[mbOk],0); можно еще добавить exit; и все будет зашибись))
Nixtone вне форума Ответить с цитированием
Старый 02.05.2008, 01:07   #4
Tan4ik
Пользователь
 
Аватар для Tan4ik
 
Регистрация: 20.04.2008
Сообщений: 18
По умолчанию

Цитата:
B_N
А зачем "DestroyWindow(hDlg)" ? MessageBox закрывает себя сам и возвращает значение нажатой кнопки.
да, как бы, я так сразу и поняла,но без Destroy...вообще не закрывается.
Скорее всего, у меня там как-то несколько раз вызывается MessageBox...в этом проблема?..
hDlg - дескриптор диалога
Код:
BOOL CALLBACK ButtonsExampleDialogProc(HWND hDlg,
			UINT Message,WPARAM wParam,
					   LPARAM lParam)
{
	int i;
	char cMyMessage[80];

	switch(Message)
	{
	case WM_INITDIALOG:
		switch(nFlag)
		{
		case 1:break;
		case 2:break;
		case 3:break;
		case 4:break;
		}
	SendDlgItemMessage(hDlg,nRadioButtonId,BM_SETCHECK,
						BST_CHECKED,0);
	for(i=IDC_CHECKBOX1;i<=IDC_CHECKBOX2;i++)
		if(uCheckBoxesState[i-208])
			SendDlgItemMessage(hDlg,i,BM_SETCHECK,
			BST_CHECKED,0);
		return TRUE;

case WM_COMMAND:
		switch(LOWORD(wParam))
		{


	
		case IDC_RADIOBUTTON1:nFlag = 1;break;
		case IDC_RADIOBUTTON2:nFlag = 2;break;
						   
		
		case IDC_CHECKBOX1:nFlag = 3;break;
		case IDC_CHECKBOX2:nFlag = 4;break;
						   

case IDC_BUTTON1:
SendDlgItemMessage(hDlg,IDC_STATUSBAR,SB_SETTEXT,
				   (WPARAM)0,(LPARAM)cMyMessage);
i=LOWORD(wParam)-208;
uCheckBoxesState[i]=uCheckBoxesState[i]==MF_CHECKED?
										MF_UNCHECKED:
										MF_CHECKED;

CheckMenuItem(GetSubMenu
		   (GetSubMenu(GetMenu(hWnd),1),1),
			LOWORD(wParam)-103,
			uCheckBoxesState[i]);


             
switch(nFlag)
					{
					case 1:
					MessageBox(hDlg,"Change font","Font",MB_OK);
						break;
					case 2:
					MessageBox(hDlg,"Change font","Font",MB_OK);
		
						break;
					case 3:
						MessageBox(hDlg,"Change font","Font",MB_OK);
			
						break;
					case 4:
						MessageBox(hDlg,"Change font","Font",MB_OK);
						break;
						
					}

Последний раз редактировалось Tan4ik; 02.05.2008 в 01:30.
Tan4ik вне форума Ответить с цитированием
Старый 02.05.2008, 01:21   #5
Tan4ik
Пользователь
 
Аватар для Tan4ik
 
Регистрация: 20.04.2008
Сообщений: 18
По умолчанию

я так издевалась над кодом(задача состояла именно в исправлении, ане написании с нуля), чтобы он заработал..что такое вот сотворила...теперь сама вижу...как-то не корректно
Tan4ik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Корректное масштабирование рисунка devi409 Мультимедиа в Delphi 16 12.06.2012 21:54
Зацените мой MessageBox Altera Софт 1 29.10.2008 15:17
как убрать excel'овские messagebox? aslanbek Общие вопросы Delphi 0 15.03.2008 19:47
как убрать excel'овские messagebox? aslanbek Общие вопросы Delphi 0 15.03.2008 19:47
MessageBox??? Рустам Общие вопросы Delphi 3 16.01.2008 01:26