Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » ALT + F4 = WM_???

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
19.03.2004, 11:11 Uhr
mirrow



Hallo leute,

wie kann man im Windowsprogrammierung
Message ALT+F4 abfangen.

ALT+F4 = WM_???
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.03.2004, 11:49 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


das problem hatte ein anderer auch schon mal...
Ich hatte mir dazu was ausgedacht... Obs die beste Lösung ist weiss ich nicht aber funzen tut sie...

guckst du hier
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.03.2004, 12:54 Uhr
mirrow



Ich habe in mein Programm ein Dialog erstellt und aufgerufen.

hwnd = CreateDialog(hInstance, MAKEINTRESOURSE(IDD_DIALOG),
NULL, (DGLPROC)Dialog);

Leider läßt sich diese Dialog mit ALT+F4 beenden.
Kann man irgendwie ALT+F4 verhindern.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.03.2004, 12:56 Uhr
RedEagle



Wenn ich das jetzt richtig verstanden habe mit dem Dialo, dann versuch doch mal sowas in etwa
if (dialog beendet){//Was passieren soll nach ALT+F4}
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.03.2004, 13:00 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@RedEagle
Nein das ist Blödsinn.

@mirrow
Du musst irgendwie dieses Alt-F4 überschreiben. Das sollte doch funktionieren wenn du das in Pretranslate message abfängst oder?
An sontsen weiss ich das jetzt auch nicht aus dem Hut. Müsste auch erst rumprobieren ohne zu wissen ob ichs hinbekomme....



Bearbeitung:

@RedEagle Sorry sollte nich so hart klingen...
Hört sich ja so an wie und so war das auf keine fall gemeint


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 19.03.2004 um 13:02 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.03.2004, 13:24 Uhr
RedEagle



@Windalf: Ich habe keine Ahnung von WinAPI. Es ist mir nur mal so eingefallen

--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
19.03.2004, 13:28 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Ich habe keine Ahnung von WinAPI


Ich auch nicht wirklich. Mein Problem ist das ich MFC und WInapi noch nichtmal richtig auseinanderhalten kann... Ich puzzel auch immer nur codefetzen zusammen und hoffe das die dann funzen
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
22.03.2004, 16:33 Uhr
mirrow



Hi Windalf,

ich bin ziemlich ein anfänger in C++ und WindowsProgrammierung.
ich habe wirklich keine Ahnung wie ich diese vorgeschlagene Funktion benützt.
kannst du mal ein klein Beispiel (das drumherum von diese Funktion) geben.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
22.03.2004, 16:40 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


naja du musst halt pretranslatemessage überladen...
dazu klickst du auf dem klassenassi an das du pretranslateüberladen willst und der richtet dir das ja von automatisch her

dann packst du noch ins headerfile ein member in diesem fall control pressed oder wie auch immer du das teil nennen willst


C++:
int control_pressed;



beim initialisieren (also z.b. im konstruktor deiner klasse setzt du das teil einfach auf 0;
und den rest macht dann pretranslateMessage für dich
in dem beispiel ist das mit control+F4 wie das mit alt+F4 geht weiss ich wie gesagt auch nicht weil das ja standardmäsig mit beenden belegt ist...



C++:
BOOL MyDlg::PreTranslateMessage(MSG* pMsg)
{
    if(pMsg->message == WM_KEYDOWN){
    
        if(control_pressed && pMsg->wParam==VK_F4)
            AfxMessageBox("CONTROL and F4 pressed");

        if(pMsg->wParam == VK_CONTROL)
            control_pressed=1;
        

    }

    if(pMsg->message == WM_KEYUP && pMsg->wParam == VK_CONTROL)
        control_pressed=0;

}


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
23.03.2004, 00:57 Uhr
~toxic
Gast


hi, versuch doch mal folgendes um die WM_xxxx rauszubekommen

C++:
void CDeinDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
    CString tmp;
    tmp.Format("OnSysCommand %i", nID);
    MessageBox(tmp, 0, MB_OK | MB_ICONINFORMATION);

    CDialog::OnSysCommand(nID, lParam);
}

--
gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: