SetWindowLong işlevi, belirtilen pencerenin bir öznitelik değiştirir. Fonksiyonu da bir 32-bit (uzun) değeri belirtilen uzaklıktan pencere ilave pencere belleğe ayarlar.
long SetWindowLong) hwnd hWnd, / / idare penceresiintnIndex, / / ofset değerini ayarlamak içinUzundwNewLong / / yeni değer);
| Değer | Eylem |
|---|---|
| GWL_EXSTYLE | Yeni bir pencere stili genişletilmiş ayarlar. |
| GWL_STYLE | Yeni pencere stilini ayarlar. |
| GWL_WNDPROC | Pencere yordamı yeni adresini ayarlar. |
| GWL_HINSTANCE | Bir yeni uygulama örneği tanıtıcısını ayarlar. |
| GWL_ID | Ayarlar yeni bir pencere tanıtıcısı. |
| GWL_USERDATA | Pencere ile ilişkili 32-bit değerini ayarlar. Her pencere pencere oluşturan uygulama tarafından kullanılması amaçlanan karşılık gelen bir 32 bitlik değer vardır. |
HWnd parametresi bir iletişim kutusu belirlediğinde aşağıdaki değerleri de mevcuttur:
| Değer | Eylem |
|---|---|
| DWL_DLGPROC | Ayarlar iletişim kutusunda yordam yeni adresi. |
| DWL_MSGRESULT | İletişim kutusu yordamda işlenen ileti dönüş değerini ayarlar. |
| DWL_USER | Özel işleme veya işaretçileri gibi uygulamaya yeni ilave bilgilerini ayarlar. |
İşlev başarılı olursa, dönüş değeri önceki belirtilen 32 bitlik tamsayı değeridir.
İşlev başarısız olursa, dönüş değeri sıfırdır. Genişletilmiş hata bilgilerini için GetLastError.
Belirtilen 32 bitlik tamsayı önceki değeri sıfırdır ve işlev başarılı, dönüş değeri sıfırdır, ama işlevi son hata bilgileri belli değil. Bu başarı ya da başarısızlık belirlemek zor yapar. Bu başa çıkmak için son hata bilgilerini çağırarak temizlemelisiniz SetWindowLongçağırmadan önce SetLastError(0). Ardından, işlev hata dönüş değeri sıfıra ve sıfır GetLastError sonucu tarafından belirtilir.
Pencerenin hWnd parametresi tarafından belirtilen arama iplik olarak aynı işlemde ait değil, SetWindowLong işlevi başarısız olur.
Yani SetWindowLong kullanarak yaptığınız değişiklikler etkili olmaz, bu kadar SetWindowPos işlevini çağırın belirli pencere verileri önbelleğe alınır.
SetWindowLong ile gwl_wndproc Dizin Değiştir penceresini yordamını kullanarak, pencere yordamı WindowProc geriçağırım işlevinin açıklamasında belirtilen kurallara uymalıdır.
Size SetWindowLong ile dwl_msgresult dizin iletişim yordam tarafından işlenen ileti döndürülen değeri ayarlamak için kullanırsanız, size doğru doğrudan sonradan döndürmelidir. Aksi halde iç içe pencereyi mesajı üzerine dwl_msgresult kullanarak ayarladığınız dönüş değeri bir pencereyi mesajı alma, iletişim yordamda sonuçları herhangi bir işlevi çağırıyorsanız,.
SetWindowLong ile gwl_wndproc dizin arama penceresi oluşturmak için kullanılan pencerenin sınıfının bir alt sınıfı oluşturur. Uygulama alt sistem sınıfı kullanabilirsiniz, ancak bir pencere sınıfı, başka bir işlem tarafından oluşturulan alt sınıfı olmalıdır. SetWindowLong işlevi, eskisinin yerine yeni pencerede yordamy ça?yran sistem neden belirli pencere sınıfı, ilişkili pencere yordamı değiştirerek pencerenin alt sınıfı oluşturur. Bir uygulama tarafından önceki pencere yordamı yeni pencere yordamı CallWindowProcçağırarak uygulanmamasına iletileri geçmesi gerekir. Bu pencere işlemleri zinciri oluşturmak için uygulama sağlar.
RegisterClassEx fonksiyonu ile kullanılan wndclassex yapısı cbWndExtra üyesi sıfır dışında bir değer belirterek ilave pencere bellek ayırma.
Size SetWindowLong ile gwl_hwndparent dizin alt pencere üst değiştirmek için çağırması gerekir değil. Bunun yerine SetParent işlevini kullanma.
Windows ce: NIndex parametre 4 bayt katları olmalıdır.
Hizalanmamış erişim desteklenmiyor.
Aşağıdaki nIndex parametre değerleri desteklenmez:
GWL_HINSTANCE
GWL_HWNDPARENT
GWL_USERDATA
Windows ce 2.0 ve sonraki sürümlerde dwl_dlgproc değerini nIndex parametresini destekler, ancak Windows ce 1.0 yapmaz.
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 kullanın.
Unicode:Unicode ve ANSI sürümleri Windows NT olarak uygulanır.
Pencere sınıflarını genel bakış, pencere sınıfı işlevler, CallWindowProc, GetWindowLong, RegisterClassEx, SetParent, WindowProc, wndclassex