Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een venster ontvangt dit bericht wanneer de gebruiker een opdracht kiest in het menu Venster (voorheen systeem- of besturingsmenu genoemd) of wanneer de gebruiker de knop maximaliseren kiest, knop minimaliseren, knop herstellen of knop sluiten.
#define WM_SYSCOMMAND 0x0112
Example
case WM_SYSCOMMAND:
if ((wParam & 0xFFF0) == SC_CLOSE)
{
EndDialog (hDlg, TRUE);
return(TRUE);
}
break;
Voorbeeld uit klassieke Windows-voorbeelden op GitHub.
Parameterwaarden
-
wParam
-
Het type systeemopdracht dat is aangevraagd. De vier bits met lage volgorde van de parameter wParam worden intern door het systeem gebruikt. Bits 4-15 bevatten een opdrachtcode die een van de volgende waarden kan zijn.
Waarde Meaning - SC_CLOSE
- 0xF060
Hiermee sluit u het venster. - SC_CONTEXTHELP
- 0xF180
Hiermee wijzigt u de cursor in een vraagteken met een aanwijzer. Als de gebruiker vervolgens op een besturingselement in het dialoogvenster klikt, ontvangt het besturingselement een WM_HELP bericht. - SC_DEFAULT
- 0xF160
Hiermee selecteert u het standaarditem; de gebruiker dubbelklikt op het venstermenu. - SC_HOTKEY
- 0xF150
Hiermee activeert u het venster dat is gekoppeld aan de door de toepassing opgegeven sneltoets. De parameter lParam identificeert het venster dat moet worden geactiveerd. - SC_HSCROLL
- 0xF080
Schuift horizontaal. - SC_KEYMENU
- 0xF100
Hiermee haalt u het venstermenu op als gevolg van een toetsaanslag. Zie de sectie Opmerkingen voor meer informatie. - SC_MAXIMIZE
- 0xF030
Hiermee maximaliseert u het venster. - SC_MINIMIZE
- 0xF020
Hiermee wordt het venster geminimaliseerd. - SC_MONITORPOWER
- 0xF170
Hiermee stelt u de status van de weergave in. Deze opdracht biedt ondersteuning voor apparaten met energiebesparende functies, zoals een computer met accuvoeding.
De parameter lParam kan de volgende waarden hebben:- -1 (het beeldscherm wordt ingeschakeld)
- 1 (het beeldscherm zal weinig vermogen hebben)
- 2 (het beeldscherm wordt afgesloten)
- SC_MOUSEMENU
- 0xF090
Hiermee haalt u het venstermenu op als gevolg van een muisklik. - SC_MOVE
- 0xF010
Hiermee verplaatst u het venster. - SC_NEXTWINDOW
- 0xF040
Naar het volgende venster gaan. - SC_PREVWINDOW
- 0xF050
Naar het vorige venster gaan. - SC_RESTORE
- 0xF120
Hiermee herstelt u het venster naar de normale positie en grootte. - SC_SCREENSAVE
- 0xF140
Hiermee wordt de toepassing voor schermbeveiliging uitgevoerd die is opgegeven in de sectie [boot] van het System.ini-bestand. - SC_SIZE
- 0xF000
Hiermee wordt het venster groter. - SC_TASKLIST
- 0xF130
Hiermee activeert u het startmenu . - SC_VSCROLL
- 0xF070
Schuift verticaal. Als de opdrachtcode is SC_SCREENSAVE, zijn de volgende vlaggen beschikbaar in de vier bits met lage volgorde:
Flag Meaning - SCF_ISSECURE
- 0x0001
De schermbeveiliging is veilig. -
lParam-
-
Het woord met lage volgorde geeft de horizontale positie van de cursor op, in schermcoördinaten, als een opdracht voor het venstermenu met de muis wordt gekozen. Anders wordt deze parameter niet gebruikt.
Het woord met hoge volgorde geeft de verticale positie van de cursor op, in schermcoördinaten, als een opdracht voor het venstermenu met de muis wordt gekozen. Deze parameter is 1 als de opdracht wordt gekozen met behulp van een systeemversneller of nul als u een nemonic gebruikt.
Retourwaarde
Een toepassing moet nul retourneren als dit bericht wordt verwerkt.
Opmerkingen
Gebruik de volgende code om de positiecoördinaten in schermcoördinaten op te halen:
xPos = GET_X_LPARAM(lParam); // horizontal position
yPos = GET_Y_LPARAM(lParam); // vertical position
De functie DefWindowProc voert de venstermenuaanvraag uit voor de vooraf gedefinieerde acties die zijn opgegeven in de vorige tabel.
In WM_SYSCOMMAND berichten worden de vier bits met lage volgorde van de parameter wParam intern gebruikt door het systeem. Als u de opdrachtcode wilt ophalen uit de wParam-waarde , moet een toepassing de waarde 0xFFF0 combineren met de wParam-waarde met behulp van de bitsgewijze AND-operator, zoals wordt weergegeven in het bovenstaande voorbeeld.
De menu-items in een venstermenu kunnen worden gewijzigd met behulp van de functies GetSystemMenu, AppendMenu, InsertMenu, ModifyMenu, InsertMenuItem en SetMenuItemInfo . Toepassingen die het venstermenu wijzigen, moeten WM_SYSCOMMAND berichten verwerken.
Een toepassing kan elke systeemopdracht op elk gewenst moment uitvoeren door een WM_SYSCOMMAND bericht door te geven aan DefWindowProc. Alle WM_SYSCOMMAND berichten die niet door de toepassing worden verwerkt, moeten worden doorgegeven aan DefWindowProc. Opdrachten die door een toepassing worden toegevoegd, moeten door de toepassing worden verwerkt en kunnen niet worden doorgegeven aan DefWindowProc.
Als wachtwoordbeveiliging is ingeschakeld op basis van beleid, wordt de schermbeveiliging gestart, ongeacht wat een toepassing doet met de SC_SCREENSAVE melding, zelfs als deze niet kan worden doorgegeven aan DefWindowProc.
Sneltoetsen die zijn gedefinieerd om items in het venstermenu te kiezen, worden omgezet in WM_SYSCOMMAND berichten; alle andere toetsaanslagen op de accelerator worden omgezet in WM_COMMAND berichten.
Als de wParamis SC_KEYMENU, bevat lParam de tekencode van de sleutel die wordt gebruikt met de Alt-toets om het pop-upmenu weer te geven. Als u bijvoorbeeld op Alt+F drukt om het pop-upvenster Bestand weer te geven, wordt er een WM_SYSCOMMAND met wParam gelijk aan SC_KEYMENU en lParam gelijk aan f.
Requirements
| Requirement | Waarde |
|---|---|
| Minimaal ondersteunde client |
Windows 2000 Professional [alleen desktop-apps] |
| Minimaal ondersteunde server |
Windows 2000 Server [alleen desktop-apps] |
| Header |
|
Zie ook
-
Verwijzing
-
Conceptuele