Sunucuları: Yerinde çerçeve Windows uygulama
Sunucu uygulamanızı oluşturmak için uygulama Sihirbazı kullanmazsanız, yerinde çerçeve windows görsel düzenleme server uygulamanızda uygulamak için yapmanız gerekir, bu makalede açıklanmaktadır. Bu makalede açıklanan yordamı izleyerek yerine varolan bir yerinde kare pencere sınıfı uygulaması wizard–generated uygulama ya da Visual C++ ile sağlanan örnek kullanabilirsiniz.
Yerinde çerçeve penceresi sınıf bildirmek için
Yerinde çerçeve penceresi sınıfından türeyen COleIPFrameWnd.
Use DECLARE_DYNCREATE makro sınıf üstbilgi dosyasında.
Use IMPLEMENT_DYNCREATE class uygulaması (.cpp) dosyasındaki makro. Bu çerçeve tarafından oluşturulacak bu sınıfın nesneleri sağlar.
Bildirdiğiniz bir COleResizeBar kare pencere sınıfı üyesi. Sunucu uygulamalarında, yerinde yeniden boyutlandırma desteklemek istiyorsanız gereklidir.
Bildirmek bir OnCreate ileti işleyicisi (kullanarak özellikleri pencere) ve çağrı Create için sizin COleResizeBar onu tanımladıysanız üye.
Bir araç çubuğu varsa bildirmek bir CToolBar kare pencere sınıfı üyesi.
Geçersiz kılma OnCreateControlBars üye işlevi sunucu etkin olduğunda, bir araç çubuğu oluşturmak. Örne?in:
BOOL CInPlaceFrame::OnCreateControlBars(CFrameWnd* pWndFrame, CFrameWnd* pWndDoc) { UNREFERENCED_PARAMETER(pWndDoc); // Set owner to this window, so messages are delivered to correct app m_wndToolBar.SetOwner(this); // Create toolbar on client's frame window if (!m_wndToolBar.CreateEx(pWndFrame, TBSTYLE_FLAT,WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_SRVR_INPLACE)) { TRACE0("Failed to create toolbar\n"); return FALSE; } // TODO: Delete these three lines if you don't want the toolbar to be dockable m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); pWndFrame->EnableDocking(CBRS_ALIGN_ANY); pWndFrame->DockControlBar(&m_wndToolBar); return TRUE; }
5. Adımı uygulayarak bu kodu tartışmalarına bakın.
Bu yerinde kare pencere sınıfı için üstbilgi dosyası ana .cpp dosyanıza ekleyin.
De InitInstance uygulama sınıfı için arama SetServerInfo kaynaklar ve yerinde çerçeve penceresi açık ve yerinde düzenleme kullanılacak belirtmek için belge şablonu nesnesinin işlevi.
Dizi işlev çağrıları , deyimi sağlanan sunucu kaynaklarından araç oluşturur. Bu noktada araç konteynerin pencere hiyerarşisinin parçası değil. Bu araç türetilmiş olduğundan CToolBar, sahibi değiştirmediğiniz sürece sahibi, Kap uygulamasının çerçeve penceresi iletileri iletir. İşte bu nedenle çağrısı SetOwner gereklidir. Bu çağrı komutları sunucunun yerinde çerçeve penceresi sunucusuna iletilmek üzere iletiler neden olacak şekilde gönderileceği pencereyi değiştirir. Böylece, sunucunun sağladığı araç işlemlerine karşı tepki vermek.
Araç çubuğu bit eşlem kimliği sunucu uygulamanızı tanımlanan diğer yerinde kaynakları ile aynı olmalıdır. Bkz: menüler ve kaynaklar: sunucu ekleme Ayrıntılar için.
Daha fazla bilgi için bkz: COleIPFrameWnd, COleResizeBar, ve CDocTemplate::SetServerInfo , Sınıf kitaplığı başvuru.
Ayrıca bkz.
Kavramlar
Sunucular: bir sunucu uygulama