Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kullanıcı Pencere menüsünden (eski adıyla sistem veya denetim menüsü) bir komut seçtiğinde veya kullanıcı ekranı kapla düğmesini, simge durumuna küçült düğmesini, geri yükleme düğmesini veya kapat düğmesini seçtiğinde bir pencere bu iletiyi alır.
#define WM_SYSCOMMAND 0x0112
Example
case WM_SYSCOMMAND:
if ((wParam & 0xFFF0) == SC_CLOSE)
{
EndDialog (hDlg, TRUE);
return(TRUE);
}
break;
GitHub'da Windows Klasik Örnekleri örneği.
Parametreler
-
wParam
-
İstenen sistem komutunun türü. wParam parametresinin dört düşük sıralı biti sistem tarafından dahili olarak kullanılır. Bit 4-15, aşağıdaki değerlerden biri olabilecek bir komut kodu içerir.
Değer Meaning - SC_CLOSE
- 0xF060
Pencereyi kapatır. - SC_CONTEXTHELP
- 0xF180
İmleci bir işaretçiyle soru işaretine değiştirir. Kullanıcı iletişim kutusunda bir denetime tıklarsa, denetim bir WM_HELP iletisi alır. - SC_DEFAULT
- 0xF160
Varsayılan öğeyi seçer; kullanıcı pencere menüsüne çift tıkladı. - SC_HOTKEY
- 0xF150
Uygulama tarafından belirtilen kısayol anahtarıyla ilişkili pencereyi etkinleştirir. lParam parametresi etkinleştirecek pencereyi tanımlar. - SC_HSCROLL
- 0xF080
Yatay olarak kayar. - SC_KEYMENU
- 0xF100
Tuş vuruşunun bir sonucu olarak pencere menüsünü alır. Daha fazla bilgi için Açıklamalar bölümüne bakın. - SC_MAXIMIZE
- 0xF030
Pencerenin ekranı kaplamasını sağlar. - SC_MINIMIZE
- 0xF020
Pencereyi simge durumuna küçültür. - SC_MONITORPOWER
- 0xF170
Ekranın durumunu ayarlar. Bu komut, pille çalışan kişisel bilgisayar gibi güç tasarrufu özelliklerine sahip cihazları destekler.
lParam parametresi aşağıdaki değerlere sahip olabilir:- -1 (ekran açılıyor)
- 1 (ekran düşük güç olacak)
- 2 (ekran kapatılıyor)
- SC_MOUSEMENU
- 0xF090
Fare tıklaması sonucunda pencere menüsünü alır. - SC_MOVE
- 0xF010
Pencereyi taşır. - SC_NEXTWINDOW
- 0xF040
Sonraki pencereye geçer. - SC_PREVWINDOW
- 0xF050
Önceki pencereye gider. - SC_RESTORE
- 0xF120
Pencereyi normal konumuna ve boyutuna geri yükler. - SC_SCREENSAVE
- 0xF140
System.ini dosyasının [boot] bölümünde belirtilen ekran koruyucu uygulamasını yürütür. - SC_SIZE
- 0xF000
Pencereyi boyutlandırıyor. - SC_TASKLIST
- 0xF130
Başlat menüsünü etkinleştirir. - SC_VSCROLL
- 0xF070
Dikey olarak kayar. Komut kodu SC_SCREENSAVE, aşağıdaki bayraklar dört düşük sıralı bitte kullanılabilir:
Flag Meaning - SCF_ISSECURE
- 0x0001
Ekran koruyucu güvenlidir. -
lParam
-
Düşük sıralı sözcük, fareyle bir pencere menüsü komutu seçilirse ekran koordinatlarında imlecin yatay konumunu belirtir. Aksi takdirde, bu parametre kullanılmaz.
Yüksek sıralı sözcük, fareyle bir pencere menüsü komutu seçilirse ekran koordinatlarında imlecin dikey konumunu belirtir. Komut bir sistem hızlandırıcısı kullanılarak seçilirse bu parametre 1, anımsatıcı kullanılıyorsa sıfırdır.
Dönüş değeri
Bir uygulama bu iletiyi işlerse sıfır döndürmelidir.
Açıklamalar
Ekran koordinatlarında konum koordinatlarını almak için aşağıdaki kodu kullanın:
xPos = GET_X_LPARAM(lParam); // horizontal position
yPos = GET_Y_LPARAM(lParam); // vertical position
DefWindowProc işlevi, önceki tabloda belirtilen önceden tanımlanmış eylemler için pencere menü isteğini gerçekleştirir.
WM_SYSCOMMAND iletilerde, wParam parametresinin dört düşük sıralı biti sistem tarafından dahili olarak kullanılır. Komut kodunu wParam değerinden almak için uygulamanın yukarıdaki örnekte gösterildiği gibi bit tabanlı AND işlecini kullanarak 0xFFF0 değerini wParam değeriyle birleştirmesi gerekir.
Pencere menüsündeki menü öğeleri GetSystemMenu, AppendMenu, InsertMenu, ModifyMenu, InsertMenuItem ve SetMenuItemInfo işlevleri kullanılarak değiştirilebilir. Pencere menüsünü değiştiren uygulamaların WM_SYSCOMMAND iletileri işlemesi gerekir.
Bir uygulama, WM_SYSCOMMAND iletisini DefWindowProc'a geçirerek herhangi bir zamanda herhangi bir sistem komutunu gerçekleştirebilir. Uygulama tarafından işlenmeyen tüm WM_SYSCOMMAND iletileri DefWindowProc'a geçirilmelidir. Bir uygulama tarafından eklenen tüm komut değerleri uygulama tarafından işlenmelidir ve DefWindowProc'a geçirilemez.
Parola koruması ilke tarafından etkinleştirildiyse, uygulamanın SC_SCREENSAVE bildirimini DefWindowProc'a geçiremese bile ne yaptığına bakılmaksızın ekran koruyucu başlatılır.
Pencere menüsünden öğe seçmek için tanımlanan hızlandırıcı tuşları WM_SYSCOMMAND iletilere çevrilir; diğer tüm hızlandırıcı tuş vuruşları WM_COMMAND iletilere çevrilir.
wParamSC_KEYMENU ise, lParam açılır menüyü görüntülemek için ALT tuşuyla birlikte kullanılan anahtarın karakter kodunu içerir. Örneğin, Dosya açılan penceresini görüntülemek için ALT+F tuşlarına basıldığında wParamdeğeri SC_KEYMENU ve lParam değeri 'f' olan bir WM_SYSCOMMAND neden olur.
Gereksinimler
| Gereksinim | Değer |
|---|---|
| Desteklenen en düşük düzeydeki istemci |
Windows 2000 Professional [yalnızca masaüstü uygulamaları] |
| Desteklenen en düşük sunucu |
Windows 2000 Server [yalnızca masaüstü uygulamaları] |
| Header |
|