windows - At skelne mellem ALT + F4 vs Aktivitetslinje Luk hændelser

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg vil gerne afgøre, om OnClose er blevet udløst via ALT+F4 eller via Valg af 'Luk vindue' fra programmets TaskBar-ikon. Hidtil kan alt, hvad jeg kan tænke på, teste sådan:


void ...::OnClose() 
{
     if (::GetKeyState( VK\_MENU ))
     {
          // Alt F4 triggered close
     }
}


Er der en bedre måde?


Bonuspoint: Er der en måde at håndtere Windows 7-proceslinjen på, lukker vinduesmenupunktet specifikt?

Bedste reference


WM\_CLOSE sendes af task manager.
WM\_SYSCOMMAND sendes med parameter SC\_CLOSE, når du trykker på ALT\_F4 eller fra systemmenuen på proceslinjeknappen.

Andre referencer 1


Du skal håndtere ALT+F4 genvejstasten med RegisterHotkey API. Kør den brugerdefinerede kode, og luk derefter vinduet. [4]