Navigation im Dialogfeld
-
@ Hellsgore,
man, das sieht nicht schlecht aus. Respekt!
Und vielen Dank!
-
return ::TranslateAccelerator(m_hWnd, (HACCEL__ *)m_hAccel, pMsg);
Wofür diese komische Cast?
-
Stimmt brauchste nicht. Brauchte in meinem Projekt mal das Handle kannste einfach so machen:
.h
HACCEL m_hAccel;
in .cpp
BOOL CDeinDlg::PreTranslateMessage(MSG* pMsg) { if (pMsg->message >= WM_KEYFIRST && pMsg->message <= WM_KEYLAST) { if (pMsg->wParam != VK_TAB) return ::TranslateAccelerator(m_hWnd, m_hAccel, pMsg); } return CDialog::PreTranslateMessage(pMsg); }
Pferdfisch
*winke*
Hellsgore
-
Hellsgore schrieb:
Servus,
das Beenden kannst du ja schonmal mit dem Überschreiben der Methode OnOK() verhindern.
Einfach:.h
public: void OnOK();
.cpp
void CDeinDlg::OnOK() { //nix }
und schon springt er dir nicht mehr mit Return raus.
Tut er doch.
-
Servus,
mhmm ehrlich? (Bei mir nicht)
dann machs doch mit den Accelatoren damit funzt das aber...
*winke*
Hellsgore
-
Ich werd´s nochmal mit dem Accelator versuchen. Hat beim erstenmal auch etliche Fehler ausgeworfen (kann allerdings durchaus an mir liegen).
-
Immer die Fehler beschreiben dann kann man dir Helfen.
Ähm nur so am Rande das Bsp. von mir ist für einen stinknormalen Dialog nicht für SDI oder MDI. Dort funzt das glaube ich anders....
*winke*
Hellsgore
-
Das erklärt einiges.
Ich habe ne dialogfeldbasierende Anwendung.
Was muß man denn da anders machen.So bekomme ich nämlich die Fehlermeldungen:
error C2664: 'TranslateAcceleratorA': Konvertierung des Parameters 2 von 'HANDLE' in 'HACCEL' nicht möglich
in Zeilereturn ::TranslateAccelerator(m_hWnd, m_hAccelator, pMsg);
Du hattest vorher statt m_hAccelator die Variable m_hAccel drinstehen.
Ich gehe davon aus das das die selbe sein soll.
Ich hab aber noch nie was von HACCEL gehört.
-
Die Var m_hAccelator sollte auch HACCEL sein. Ich hatte das in den Threads darunter geändert.
Dann sollte es funzen *g*
*winke*
Hellsgore
-
Jup, jetzt funzt es
vielen Dank.