Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Вопрос про модальные окна диалога...На первый взгляд праздный. 15.06.01 22:18
Автор: veshalka Статус: Незарегистрированный пользователь
|
Вот если я создаю модальное диалоговое окно, пусть, для определенности, в Borland'e C++ 5.02, неважно, вызываю
DialogBox(hInst, (LPSTR)DIALOG, hWnd, (DLGPROC)fnDialog);
и в fnDialog() обрабатываю сообщения. Вопрос такой...
Откуда они туда попадают из цикла обработки сообщений, где их GetMessage() выбирает а DispatchMessage() посылает окну или окно диалога их само из системной очереди фильтрует. И еще-какой утилитой можно системную очередь сообщений подсмотреть. Подскажите, plz, а то эта мысль мне покоя не дает чегойто.
|
|
[Win32] [Win32] Вопрос про модальные окна диалога...На первый взгляд праздный. 18.06.01 12:26
Автор: MatrikZ Статус: Незарегистрированный пользователь
|
> Откуда они туда попадают из цикла обработки сообщений, где > их GetMessage() выбирает а DispatchMessage() посылает окну > или окно диалога их само из системной очереди фильтрует.
Vsjo nemnogo po-drugomu rabotajet. Esli ty sozdajoshMODALNYJdialog, to jego funkcija obrabotki soobshenij nahoditsa v sisteme. Sija funkcija i vyzyvajet tvoju funkciju kotoruju ty ukazal v DialogBox s sootvetstvujushimi parametrami.
Sije sdelano tak, potomu chto sama priroda modalnogo dialoga trebujet ostanovku raboty programmy. Poetomu, esli ispolzovat GetMessage() i DispatchMessage() to vse okna tvojej progi vsjo ravno budut rabotat.
Jesli tebe eto ne nuzhno, posmotri funkciju CreateDialog. Ona sozdajot NEMODALNYJ dialog, kotoryj rabotajet odnovremenno so vsemi oknami tvojej progi i ispolzujet tot zhe cikl obrabotki soobshenij s GetMessage() i DispatchMessage().
> еще-какой утилитой можно системную очередь сообщений > подсмотреть. Подскажите, plz, а то эта мысль мне покоя не > дает чегойто.
Jesli pishesh pod Borland, to sija utilita dozhna byt ustanovlena, nazyvajetsa WinSight. Esli pod Microsoft, to ispolzuj Spy++. Po oboim progam doljen byt help i, vozmozhno, adres gde ih mozhno slit (jesli oni ne proinstalljany).
Vot takaja petrushka.
|
|
|