I am trying to get keyboard accelerators to work but the messages are not aligned to the menu messages. can anyone
tell me what I'm doing wrong?? Here is my code:
main.cpp
acctest.hCode:#include <windows.h> #include <stdlib.h> #include "acctest.h" char szClassName[ ] = "acctest"; LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_DESTROY: PostQuitMessage (0); break; case WM_COMMAND: switch (wParam) case COM_FILEEXIT: system("pause"); break; default: return DefWindowProc (hwnd, message, wParam, lParam); } return 0; } int WINAPI WinMain (HINSTANCE hThisInstance,HINSTANCE hPrevInstance, LPSTR lpszArgument, int n){ HWND hwnd; HMENU menu; HACCEL hAccTable; MSG messages; WNDCLASSEX wincl; wincl.hInstance = hThisInstance; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WindowProcedure; wincl.style = CS_DBLCLKS; wincl.cbSize = sizeof (WNDCLASSEX); wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor (NULL, IDC_ARROW); wincl.lpszMenuName = NULL; wincl.cbClsExtra = 0; wincl.cbWndExtra = 0; wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND; if (!RegisterClassEx (&wincl)) return 0; hwnd = CreateWindowEx (0, szClassName, "acctest", WS_OVERLAPPEDWINDOW, 300,300,300,300,HWND_DESKTOP, NULL,hThisInstance, NULL ); ShowWindow (hwnd, n); menu = LoadMenu(hThisInstance, MAKEINTRESOURCE(COM_MENU)); SetMenu(hwnd, menu); hAccTable = LoadAccelerators(hThisInstance, MAKEINTRESOURCE(COM_KEY)); while (GetMessage (&messages, NULL, 0, 0)){ if (TranslateAccelerator(hwnd, hAccTable, &messages) == 0) { TranslateMessage(&messages); DispatchMessage(&messages); } } return messages.wParam; }
RC.rcCode:#define COM_KEY 500 #define COM_MENU 501 #define COM_FILEEXIT 502
Code:#include <windows.h> #include "acctest.h" COM_MENU MENU BEGIN POPUP "File" BEGIN MENUITEM "&Exit\tctrl+e", COM_FILEEXIT END END COM_KEY ACCELERATORS DISCARDABLE BEGIN "E", COM_FILEEXIT, VIRTKEY, CONTROL END



LinkBack URL
About LinkBacks


