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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2009, 20:44   #1
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
Восклицание Что означает HWND_DESKTOP или Handle в функции MessageBox

Здравствуйте программисты! Недавно только начал изучать С++ Builder 6.0. Набрёл на тему функция MessageBox. Начал постепенно пробывать разберать. Вот как выглядит функция, например чтоб выдало ошибку при нажатии на кнопку: MessageBox
Код:
(HWND_DESKTOP,"Ошибка!!","Error",MB_ICONERROR);
Объясните пожалуйста что такое HWND_DESKTOP или можно поставить Handle. В книге пишется что это идентификатор родительского стола.
Как понимать идентификатор родительского стола, я новичок не в курсе, расшифруйте пожалуйста.
И ещё можно использовать функцию так:
Application->MessageBox("Переполнение","Ошибк а вычислений",MB_OK);

Что такое Application? Напишите пожалуйста какую роль играет в первом случае HWND_DESKTOP, и что оно означает, желательно поподробней, в книге не могу найти. И что такое Application,какую играет роль?
Объясните пожалуйста так, чтоб было понятно, а не фразами, как в книге. Заранне благодарен за ответ.

Модератор: Тег CODE, а не HTML

Последний раз редактировалось MaTBeu; 17.03.2009 в 22:51.
prikolist вне форума Ответить с цитированием
Старый 17.03.2009, 23:56   #2
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Не родительского стола, а родительского окна. Каждое окно, создаваемое приложением, имеет родительское окно . При этом само оно по отношению к родительскому является дочерним. Родительское окно может иметь несколько дочерних окон.
Вот это - HWND_DESKTOP(можно NULL) - это значит, что у вашего MessageBox нет родительского окна. И оно(сообщение) по умолчанию принадлежит рабочему столу. Все окна, у которых не указаны родители, принадлежат рабочему столу. Но вы можете сделать, чтоб сообщение принадлежало какому-то другому окну. И для этого вместо HWND_DESKTOP напишите идентификатор этого другого окна.

Application - это ваше приложение, то есть его класс, я полагаю. И у этого класса есть функция показа сообщения MessageBox. Вот с этим могу ошибаться. Если что не так, поправьте

prikolist, так вам понятно?
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 18.03.2009, 13:29   #3
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию

Нет, я не могу понять. Объясните русскими словами, что такое родительское окно, что такое дочернее окно, в чём между ними разница, вообще, какую роль они играют. Почему, если я введу:

1)MessageBox(HWND_DESKTOP,"ошибка!! ","Error",MB_ICONSTOP);

и введу:

2)MessageBox(0,"ошибка!!","Error",M B_ICONSTOP);

или введу:

3)MessageBox(Нandle,"ошибка!!","Err or",MB_ICONSTOP);

или введу:

4)MessageBox(1,"ошибка!!","Error",M B_ICONSTOP);

Выдаёт тоже самое, что при первом случае, так и при 2,3,4.

И по поводу, что такое Application какую роль оно играет в функции MessageBox, так я тоже и ничего не понял.Application->MessageBox("Переполнение","Ошибк а вычислений",MB_OK);
Дайте пожалуйста пояснение своими словами, понятными для людей, а не книжными фразами. Заранне благодарен.

Последний раз редактировалось prikolist; 18.03.2009 в 13:38.
prikolist вне форума Ответить с цитированием
Старый 18.03.2009, 13:51   #4
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Код:
const 
HWND_DESKTOP=0
Это одно и тоже.

В MSDN пишут что первый параметр
Цитата:
hWnd
[in] Handle to the owner window of the message box to be created. If this parameter is NULL, the message box has no owner window.
Тоесть это владелец месаги.
А если ноль то не будет владельца.

Не заостряй на этом внимания
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 18.03.2009, 14:07   #5
prikolist
Форумчанин
 
Аватар для prikolist
 
Регистрация: 18.06.2008
Сообщений: 350
По умолчанию

Что значит владелец месаги. Разъясните пожалуйста, какого окна. По поводу предыдущего вопроса дайте больше разъяснений пожалуйста.
Просто я пишу, а ни знаю что пишу. Меня спросит препод, а я ему отвечу, фиг его знает, что оно такое. Ответьте пожалуйста с большим разъяснением.

Последний раз редактировалось prikolist; 18.03.2009 в 14:09.
prikolist вне форума Ответить с цитированием
Старый 18.03.2009, 20:47   #6
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Application-в делфи класс для работы с приложением.
У каждого окна есть дети(по научному-потомки).
У каждого потомка должен быть родитель вот и у окошка с сообщением должен быть родитель.Он указывается в первом параметре функции MessageBox.
Схема примерна такая
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Всем доброй ночи.. может кто знает что означает эта ошибка?? PUSHkiN Общие вопросы Delphi 5 09.02.2009 08:20
Что означает этот текст программы в Паскале? xxasb07 Помощь студентам 2 09.12.2008 19:19
Подскажите пожалуйста, что означает строчка??? EDDY Паскаль, Turbo Pascal, PascalABC.NET 4 25.07.2008 16:32
Что означает TForm1 = class(TForm)>/STRONG> metamfetamin Помощь студентам 6 11.11.2007 22:40