Форум » GUI » WINDOW MESSAGEONLY в MiniGUI » Ответить

WINDOW MESSAGEONLY в MiniGUI

Петр: После успешной дискуссии и последующего внедрения APPEVENT, предлагаю для включения в MiniGUI еще один механизм обработки сообщений - MESSAGEONLY WINDOW Пример и реализация прилагается. [more][pre2] /* * Harbour MiniGUI Message-Only Window Demo * (c) 2017 P.Ch. */ #include "minigui.ch" #include "i_winuser.ch" /////////////////////////////////////////////////////////////////////////// #define ev_Fire1 (WM_USER + 100) /////////////////////////////////////////////////////////////////////////// FUNCTION Main( ... ) LOCAL hwnd // DEFINE WINDOW MESSAGEONLY myWnd EVENTS FUNC myWndEvents RESULT TO hwnd MESSAGEONLY myWnd EVENTS myWndEvents TO hwnd IF Empty( hwnd ) ; MsgInfo( "Oops!" ) QUIT ENDIF DEFINE WINDOW Win_1 ; CLIENTAREA 400, 400 ; TITLE 'WndEvents(HWND_MESSAGE) Demo' ; MAIN ; ON RELEASE DestroyWindow( hwnd ) DEFINE BUTTONEX FireButton1 ROW 290 COL 50 CAPTION "Fire 1" ACTION EMIT ev_Fire1 OF hwnd WIDTH 140 HEIGHT 40 END BUTTONEX END WINDOW Win_1.Center Win_1.Activate RETURN 0 /////////////////////////////////////////////////////////////////////////// FUNCTION MyWndEvents( hWnd, message, wParam, lParam ) LOCAL result := 0 HB_SYMBOL_UNUSED( hWnd ) IF message == WM_CREATE MsgInfo( 'Got It!' ) ELSEIF message == ev_Fire1 MsgInfo( 'Got It Again!' ) result := 1 ENDIF RETURN result[/pre2][/more] Вопросы (по теме), пожелания приветствуются, критика тем более UPD. CreateMessageOnlyWindow переименована InitMessageOnlyWindow (подобно другим в hmg) Обновленные исходники библиотеки - update1706.7z UPD2. Для MessageOnly окон добавлена установка событий WINEVENT ON WINEVENT ev_Fire1 ACTION bEvent OF hwnd Обновленные исходники библиотеки, примеры - update1706_2.7z UPD3. Обновленные исходники библиотеки, примеры - update1706_3.7z

Ответов - 1

gfilatov2002: Петр пишет: предлагаю для включения в MiniGUI Принимается с благодарностью Интересная возможность для скрытной передачи сообщений в обход очереди



полная версия страницы