CallWindowProc işlevi ileti bilgilerini belirtilen pencereyi yordam geçirir.
lresult CallWindowProc) wndproc lpPrevWndFunc, / / önceki yordamı işaretçisinehwndhWnd, / / idare pencereyeUINTMsg, // messagewparamwParam, / / ilk mesajı parametresilparamlParam / / saniye iletisi parametresi);
Bu değeri gwl_wndproc veya dwl_dlgproc nIndex parametresi ile GetWindowLong işlevini çağırarak elde edilir, aslında ya da adresini bir pencere veya iletişim kutusu yordamı veya adres gösteren tanıtıcı 's.
Dönüş değeri ileti işleme sonucu belirtir ve gönderilen mesaj bağlıdır.
Pencere sınıflara için CallWindowProc işlevini kullanın. Genellikle, tüm windows ile aynı sınıfta bir pencere yordamı paylaşın. Bir pencere veya windows ile aynı sınıfta olan iletileri el konulan ve başka bir pencere yordamı (veya yordamları) sınıfın penceresini yordama geçirilen önce işlenen bir alt sınıfıdır.
SetWindowLong işlevi, eskisinin yerine yeni pencerede yordamy ça?yran sistem neden, belirli bir pencere ile ilişkili pencere yordamı değiştirerek 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.
STRICT tanımlanmışsa, lpPrevWndFunc parametre veri türüne sahip wndproc. wndproc türü aşağıdaki şekilde bildirilmiş
LRESULT (CALLBACK * WNDPROC) (HWND, UINT, WPARAM, LPARAM)
STRICT tanımlanmamışsa, lpPrevWndFunc parametre veri türüne sahip farproc. farproc türü aşağıdaki şekilde bildirilmiş
int (far WINAPI * farproc))
C, farproc beyanı belirtilmemiş parametre listesine sahip bir geriçağırım işlevi gösterir. C++'da, ancak, boş parametre listesi bildirimindeki bir işlev parametre olduğunu gösterir. Bu ince fark, dikkatsiz kod zarar verebilir. Aşağıda bu durumu idare etmek için bir yol olduğunu:
#ifdef kesin wndproc MyWindowProcedure # başka farproc MyWindowProcedure endif... lResult = CallWindowProc (MyWindowProcedure,...)
c++ programlama dili, Second Edition, Bjarne Stroustrup tarafından boş bağımsız değişken listelerle ilan işlevleri hakkında daha fazla bilgi için bakın.
Windows NT: CallWindowProc işlevi Unicode ANSI dönüşüm gerçekleştirir. Pencere yordamı doğrudan ça?yryrsanyz, bu dönüşüm yararlanamaz.
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 işlemleri genel bakış, pencere yordamı işlevleri, GetWindowLong, SetClassLong, SetWindowLong