Język: Assembler
Witam wszystkich!
Mam problem z klawiszami skrótów {accelerators}. We wszystkich przykładach jakie znalazłem ich obsługa realizowana jest w głównej pętli poprzez wywołanie funkcji "TranslateAccelerator". Jednak w moim programie nie ma takiej pętli, gdyż jego główne okno jest oknem dialogowym. W pliku Win32.hlp w opisie owej funkcji jest napisane, że zamienia ona komunikat WM_KEYDOWN (lub WM_SYSKEYDOWN) na WM_COMMAND (lub WM_SYSCOMMAND), jeśli dany klawisz znajduje się w tablicy skrótów. Pierwsze co mi przyszło na myśl, to dopisanie obsługi tego komunikatu:
.ELSEIF uMsg==WM_KEYDOWN
;tu następuje ustawienie Message
invoke TranslateAccelerator, hWnd, hAccel, addr Message
Niestety okno główne nigdy nie otrzymuje tego komunikatu. Również dopisanie powyższego kodu do procedury obsługi okna podrzędnego {child window} nie dało żadnych rezultatów. Będę wdzięczny za pomoc w rozwiązaniu tego problemu.