WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Сообщение при инициализации

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Сообщение при инициализации
Susik опубликован 27-08-2001 00:51 MSK   Click Here to See the Profile for Susik   Click Here to Email Susik  
Просветите, пожалуйста, в плане сообщений Виндовса.
1) Могут ли приложению посылаться сообщения без создания цикла обработки сообщений? (ну без функции, которая их обрабатывает, а они вроде как сами обрабатываются или не обрабатываются вообще) Если - да, то какие?
2) Какие сообщения посылаются приложению самыми первыми после его запуска? (если там окно создавалось или.... ну я не знаю, что там еще случилось)
Kasya опубликован 27-08-2001 04:24 MSK     Click Here to See the Profile for Kasya  Click Here to Email Kasya     
Когда ты в WinMain создаешь какое-либо окно, ты для него указываешь функцию обработки сообщений и все сообщения посылаються туда.
Если тебе в лом писать сам цикл создай диалог через:
INT_PTR DialogBox(
HINSTANCE hInstance, // handle to module
LPCTSTR lpTemplate, // dialog box template
HWND hWndParent, // handle to owner window
DLGPROC lpDialogFunc // dialog box procedure
);
Тогда будешь писать только функцию обработки сообщений - WinMain тогда вообще может быть на 3 строчки, однако это способ только длоя сравнительно простых прог.
При создании окна ему посылаеться сообщение WM_CREATE
При создани диалога - WM_INITDIALOG

В функции обработки сообщений обрабатвывай те сообщения, которые тебе нужны - для остальных передавай управление винде.
Вообщем читай МСДН - там все подробней и понятней

Susik опубликован 27-08-2001 13:27 MSK     Click Here to See the Profile for Susik  Click Here to Email Susik     
Спасибо, конечно, за информацию. Но я это уже все знаю (про обработку сообщений в приложении) - в МСДН читал :).
Я просто хотел узнать, посылаются ли какие-нить сообщения не для оконных компонентов, а так, чисто для приложения. Я, правда, себе не могу представить, как это, но все же. :)
purpe опубликован 27-08-2001 13:45 MSK     Click Here to See the Profile for purpe  Click Here to Email purpe     
помоему в винде как минимум регистрируется класс окна для каждого приложения. А иначе как оно будет работать в форточках ? надо ведь сообщения как-то получать.
Susik опубликован 27-08-2001 14:50 MSK     Click Here to See the Profile for Susik  Click Here to Email Susik     
Не обязательно регистрировать класс окна - можно работать и без сообщений. Ну типа там прога что-то делает, ей сообщения нафиг не нужны. Ну мож там сервис какой или что-то подобное. Или вирус какой.
purpe опубликован 27-08-2001 15:24 MSK     Click Here to See the Profile for purpe  Click Here to Email purpe     
ну так если без окна, то это получится консольное приложение, а консольное приложение всё равно является окном :)

сервис в любом случае должен обрабатывать сообщения иначе винда просто не сможет его запустить.

Susik опубликован 27-08-2001 17:32 MSK     Click Here to See the Profile for Susik  Click Here to Email Susik     
А вот в этом и прикол. :)
Допустим, у меня есть прога, в которой есть точка входа (WinMain), и есть там внутри цикл какой-нить. Вывод на экран она не использует - ни оконный, ни косольный - никакой. А из-за цикла она работает сколь угодно долго (но не висит).
purpe опубликован 27-08-2001 17:37 MSK     Click Here to See the Profile for purpe  Click Here to Email purpe     
значит осталось только выяснить - какое сообщение отправляется системе при вызове WinMain :)
Susik опубликован 27-08-2001 19:15 MSK     Click Here to See the Profile for Susik  Click Here to Email Susik     
Точно. :)))
server_mouse опубликован 27-08-2001 20:31 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
Что вы имеете в виду, когда говорите 'отправляется системе'? Зачем её отправлять самой себе сообщение? Думаете хукнуть?

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.