SetWindowPos işlevi, boyut, konum ve z sırası bir çocuk, açılır ya da üst düzey pencere değiştirir. Çocuk, açılır ve üst düzey windows ekran görünümlerini göre sipariş. Üstteki pencereyi en yüksek rütbe alır ve z sırası ilk pencerede.
bool SetWindowPos () hwnd hWnd, / / idare pencereyehwndhWndInsertAfter, / / yerleştirme-sipariş işlemeint X, / / yatay pozisyonint Y, / / dikey konumu int cx, // width int cy, // heightUINTuFlags / / pencere yerleştirme flags);
Değer | Anlamı |
---|---|
HWND_BOTTOM | Z sırası altındaki pencereye yerleştirir. HWnd parametresi bir üstteki pencere tanımlarsa, pencerenin en üstteki durumunu kaybeder ve diğer tüm pencerelerin alt kısmında yer alıyor. |
HWND_NOTOPMOST | Her şeyden önce sigara üstteki windows pencere yerleştirir (yani, tüm üstteki pencereler ardında). Bir üstteki olmayan pencere pencere varsa bu bayrak etkisi yoktur. |
HWND_TOP | Z sırası üstündeki pencereyi yerler. |
HWND_TOPMOST | Pencerede her şeyden olmayan üstteki windows yerleştirir. Ne zaman bile dy?ydyr pencere üstteki konumunu korur. |
Bu parametre nasıl kullanıldığı hakkında daha fazla bilgi için aşağıdaki açıklamalar bölümüne bakın.
Değer | Anlamı |
---|---|
SWP_ASYNCWINDOWPOS | Arama iş parçacığı penceresini kendi değil, sistem pencere sahibi iş parçacığı isteği nakleder. Bu diğer konular isteği işleme sırasında kendi yürütme bloke edilen arayan iş parçacığı önler. |
SWP_DEFERERASE | WM_SYNCPAINT ileti üretimi önler. |
SWP_DRAWFRAME | Pencere (pencere sınıfı açıklaması'nda tanımlanan) bir çerçeve çizer. |
SWP_FRAMECHANGED | Pencere boyutunu değil değişse dahi WM_NCCALCSIZE ileti penceresine gönderir. Bu bayrak belirtilmezse, yalnızca pencere boyutunu değiştirilirken WM_NCCALCSIZE gönderilir. |
SWP_HIDEWINDOW | Pencereyi gizler. |
SWP_NOACTIVATE | Pencere etkinleştirmez. Bu bayrağı ayarlanmazsa, pencerede etkinleştirilir ve üst ya da en üstteki veya en üstteki olmayan grubun (bağlı, hWndInsertAfter parametre ayarı) taşındı. |
SWP_NOCOPYBITS | İstemci alanının tüm içeriği atar. Bu bayrak belirtilmezse, istemci alanının geçerli içeriğini kaydedilir ve sonra pencere büyüklük ya da yeniden konumlandırılmış ve istemci alanına kopyalanır. |
SWP_NOMOVE | Geçerli konumunu korur ( x ve y parametrelerinin yoksayar). |
SWP_NOOWNERZORDER | Z sırası sahibi pencerenin konumunu değiştirmez. |
SWP_NOREDRAW | Değişiklikleri çizmez. Bu bayrak ayarlanırsa, hiçbir herhangi bir yeniden oluşur. Bu istemci alanı için (başlık çubuğu ve kaydırma çubukları gibi) nonclient uygulanır ve üst pencere herhangi bir bölümünü taşınan penceresinde sonucu ortaya çıkardı. Bu bayrak ayarlandığında, uygulama açıkça geçersiz veya gerekir ve yakınlaştırılmasını gerek ana penceresinde tüm bölümleri yeniden Düzenle. |
SWP_NOREPOSITION | Swp_noownerzorder bayrağı ile aynı. |
SWP_NOSENDCHANGING | Pencere WM_WINDOWPOSCHANGING ileti almanızı engeller. |
SWP_NOSIZE | ( Cx ve cy parametreleri yoksayar) geçerli boyutunu korur. |
SWP_NOZORDER | Geçerli z sırası korur ( hWndInsertAfter parametresini yoksayar). |
SWP_SHOWWINDOW | Pencere görüntüler. |
İşlev başarılı olursa, dönüş değeri sıfır.
İşlev başarısız olursa, dönüş değeri sıfırdır. Genişletilmiş hata bilgilerini için GetLastError.
SWP_SHOWWINDOW ya da SWP_HIDEWINDOW bayrağı ayarlanmışsa, pencere büyüklüğünde veya taşınan olamaz.
SetWindowLongkullanarak belirli pencere verileri değiştirdiyseniz, değişikliklerin etkili olması için SetWindowPos çağırmalısınız. UFlagsiçin aşağıdaki kullanın: swp_nomove | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED.
Bir pencerede en üstteki pencere hwnd_topmost ve bu swp_nozorder bayrağı ayarlı değil sağlamak için hWndInsertAfter parametresini ayarlayarak veya varolan en üstteki pencereler olacak şekilde pencerenin bulunduğu z sırası ayarlama yapılabilir. Üstteki olmayan pencere en üstteki yapıldığında, sahipli pencereleri de üstteki yapılır. Sahipleri, ancak değiştirilmez.
Ne SWP_NOACTIVATE ne de swp_nozorder bayrağı zaman (başka bir deyişle, uygulama bir pencere aynı anda aktif ister ve z sırası konumunu değiştirdi) belirtilirse, hWndInsertAfter içinde belirtilen değeri yalnızca aşağıdaki durumlarda kullanılır.:
Uygulama bir etkin olmayan pencere da z sırasının üstüne getiren olmadan etkinleştiremezsiniz. Uygulamalar z sırası kısıtlama olmadan bir aktif pencerenin konumunu değiştirebilir veya bu pencereyi etkinleştirin ve sonra en üstteki veya en üstteki olmayan windows üstüne taşıyın.
Bir üstteki pencere altına (hwnd_bottom) z sırası veya üstteki olmayan herhangi bir pencereyi yeniden konumlandırılmış, artık üstteki 's. Üstteki pencere üstteki sigara yapılırken, sahipleri ve onun sahibi olduğu windows da üstteki olmayan windows yapılır.
Üstteki olmayan pencere en üstteki pencere sahibi olabilir, ama bunun tersi olamaz. Bir üstteki pencere tarafından sahip olunan herhangi bir pencere (örneğin, bir iletişim kutusu) kendisine ait tüm windows kendi sahibi kalmak emin olmak için üstteki pencere yapılmış olduğunu.
Bir uygulamanın ön planda değil ve ön planda olmalı, SetForegroundWindow işlevini çağırmanız gerekir.
Windows ce: Bu görünür üst düzey pencere SWP_NOACTIVATE bayrağı belirtilmemiş ise, bu işlev penceresini etkinleştirir. Geçerli etkin pencere budur ve SWP_NOACTIVATE bayrağı ya da SWP_HIDEWINDOW bayrağı belirtilmişse, etkinleştirme için başka görünür üst düzey pencere geçti.
Bu işlev için nFlags parametresi swp_framechanged bayrağını ayarladığınızda, Windows ce istemci alanının boyutunu değiştirebilir pencerenin tamamını olmayan istemci alanı yeniden çizer. Bu hesaplanacak olmayan istemci alanı almak için tek yoldur ve sonra SetWindowLong çağırarak pencere stili bir değiştirdiğiniz tipik olarak kullanılır.
SetWindowPos her zaman WM_WINDOWPOSCHANGED ileti penceresine gönderilecek neden olur. Bu iletide geçirilen bayraklar tam olarak işlev geçti aynıdır. Bu işlev tarafından başka bir mesaj gönderilir.
Windows ce 1.0 hwnd_topmost ve hwnd_notopmost sabitleri, hwndInsertAfter parametresini desteklemez.
Windows ce 1.0 swp_drawframe ya da SWP_NOCOPYBITS bayrakları fuFlags paramete desteklemiyor.
nbsp; Windows &NT: sürüm 3.1 veya üstü gerektirir.
Windows:Windows 95 veya sonraki sürümleri gerektirir.
Windows ce:Sürüm 1.0 veya daha ilerisini gerektirir.
Header:WINUSER.h ilan etti.
İçe Library:User32.lib kullanma.
Windows genel bakış, pencere işlevleri, MoveWindow, SetActiveWindow, SetForegroundWindow