SetWindowLong

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);
 

Parametreleri

hWnd
Pencere ve pencereye ait olduğu sınıfı, dolaylı olarak ele.
nIndex
Değeri ayarlamak için sıfır tabanlı dizin konumunu belirtir. Geçerli değerler sıfır ile eksi 4 ilave pencere belleğin bayt arasındadır; Örneğin, 12 veya daha çok bayt ekstra bellek belirttiyseniz, 8 değeri dizinin üçüncü 32 bitlik tamsayı için olurdu. Başka bir değer ayarlamak üzere aşağıdaki değerlerden birini belirtin:
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.

dwNewLong
Değiştirme değerini belirtir.

Dönüş değerleri

İş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.

Açıklamalar

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.

QuickInfo

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.

Ayrıca bkz:

Pencere sınıflarını genel bakış, pencere sınıfı işlevler, CallWindowProc, GetWindowLong, RegisterClassEx, SetParent, WindowProc, wndclassex

Index