Çerçeve ve alt pencereleri oluşturma

Pencere sınıflardan kaydolduktan sonra MDI uygulama pencereleri oluşturabilirsiniz. İlk olarak, çerçeve penceresi Cw_usedefault ya da CreateWindowEx işlevini kullanarak oluşturur. Çerçeve penceresi oluşturduktan sonra uygulamanın istemci penceresi, tekrar Cw_usedefault ya da CreateWindowExkullanarak oluşturur. Uygulama MDICLIENT istemci pencerenin sınıf adı olarak belirtmeniz gerekir; MDICLIENT, sistem tarafından tanımlanan bir preregistered pencere sınıfıdır. LpvParam parametresi Cw_usedefault ya da CreateWindowEx bir CLIENTCREATESTRUCT yapısına işaret etmelidir. Bu yapı aşağıdaki tabloda açıklanan üyeleri içerir:

Üye Açıklama
hWindowMenu MDI alt pencereleri kontrol etmek için kullanılan pencerenin menü işleci. Alt pencereler oluşturuldukça, uygulama penceresinin menü başlıklarına menü öğeleri olarak ekler. Kullanıcı daha sonra alt pencere pencere menüsünden başlığını tıklatarak etkinleştirebilirsiniz.
idFirstChild İlk MDI alt penceresi tanımlayıcısını belirtir. Oluşturulan ilk MDI alt penceresi bu tanımlayıcısı atanır. Ek windows artan pencere tanımlayıcıları ile oluşturulur. Alt pencere yok olduğunda, sistem hemen kendi aralığında bitişik tutmak için pencere tanımlayıcıları atar.

Window menüsü alt pencerenin başlık eklendiğinde, sistem alt pencereye bir tanımlayıcı atar. Kullanıcı alt pencerenin başlığını tıklattığında, çerçeve penceresi wParam parametre bir wm_command ileti tanımlayıcısı alır. Kare pencere menüsündeki menü öğesi tanımlayıcıları ile çakışmaması idFirstChild üye için bir değer belirtmeniz.

Multipad's kare pencere yordamı, wm_create ileti işlenirken MDI istemci penceresi oluşturur. Aşağıdaki örnek, istemci pencerenin nasıl oluşturulacağını gösterir.

case wm_create: {ccs CLIENTCRE&ATESTRUCT; 
 
        / / Pencere menüsünü tanıtıcısını almak ve ATA / / ilk alt pencere tanıtıcısı. 
 
        CCS.hWindowMenu = GetSubMenu(GetMenu(hwnd), WINDOWMENU); 
        CCS.idFirstChild = IDM_WINDOWCHILD; 
 
        / / MDI istemcisi pencere oluşturmak. 
 
        hwndMDIClient Cw_usedefault = ("MDICLIENT", (lpctstr) null, WS_CHILD | WS_CLIPCHILDREN | WS_VSCROLL | ws_hscroll, 0, 0, 0, 0, hwnd, (HMENU'nun) 0xCAC, hInst, (lpstr) amp; ccs); 
 
        ShowWindow (hwndMDIClient, sw_show); 
    } break 

 

Başlıkları alt pencerelerin, pencere menüsü altına eklenir. Uygulama için pencere menüsünü döndürmesini işlevini kullanarak dizeleri ekler, bu dizeleri (alt pencere oluşturulan tahrip veya güncelleştirildiğinde) pencere menüsü yoktur alt pencereleri zemine göre üzerine yazılabilir. Dizeleri onun pencere menüsü ekler bir MDI uygulaması için InsertMenu işlevini kullanın ve bu alt pencereleri başlıkları değil üzerine bu yeni dizeleri doğrulamanız gerekir.

WS_CLIPCHILDREN stili pencere resim üzerinde alt pencereleri engellemek için MDI istemcisi pencere oluşturmak için kullanmak.

Index