Accelerator und praktische Umsetzung

22/05/2008 - 19:46 von Thomas Steinbach | Report spam
Hallo NG,

ich habe bei einer kleinen App einen Modeless Dialog
bei dem ich Accelerator laden moechte.

in WinMain habe ich:

snip
MSG msg;
HWND hWnd;
HACCEL hAccel;

hWnd = CreateDialog(hInst, MAKEINTRESOURCE(IDD_DLG_MAIN), NULL,
ProcDlgMain);
ShowWindow(hWnd, nCmdShow);

hAccel = LoadAccelerators(hInst, MAKEINTRESOURCE(IDC_MAIN_ACCEL));

while( GetMessage(&msg, NULL, 0, 0) ) {
if( !IsWindow(hWnd) || !IsDialogMessage(hWnd, &msg) ) {
if( !TranslateAccelerator(hWnd, hAccel, &msg) ) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}

return 0;
snap

in der *.rc datei habe ich folgende Definition fuer mein Accelarator
snip
IDC_MAIN_ACCEL ACCELERATORS
BEGIN
VK_F9, IDM_EXIT, VIRTKEY, CONTROL, NOINVERT
"/", IDM_ABOUT, ASCII, ALT, NOINVERT
"?", IDM_ABOUT, ASCII, ALT, NOINVERT
END
snap

jetzt muesste meine Applikation doch schliessen, wenn ich
Strg-F9 druecke - Das will aber nicht funktionieren. Warum?

btw: in der MessageLoop wird beim Menuepunkt
bzw- WM_COMMAND "IDM_EXIT" die Applikation
beendet und funktioniert auch so.

Was laeuft hier noch falsch?

Thomas
 

Lesen sie die antworten

#1 Thomas Steinbach
23/05/2008 - 21:04 | Warnen spam
Hallo NG;

hat denn hierzu keiner eine Idee warum
das nicht funktioniert? Bin mit meinem
Latein am Ende und weiss momentan
nicht weiter...

btw: Compiler ist einmal der vom VS2008
und dann auch der MinGW (gcc 3.4.5) bzw.
Cygwin (gcc 3.4.4)

Thomas

Ähnliche fragen