Sunucular: Yerinde Çerçeve Pencereleri Uygulama
Bu makalede, sunucu uygulamanızı oluşturmak için uygulama sihirbazını kullanmazsanız, görsel düzenleme sunucusu uygulamanızda yerinde çerçeve pencereleri uygulamak için yapmanız gerekenler açıklanmaktadır. Bu makalede açıklanan yordamın yerine, uygulama sihirbazı tarafından oluşturulan bir uygulamadan veya Visual C++ ile sağlanan bir örnekten mevcut bir yerinde çerçeve penceresi sınıfını kullanabilirsiniz.
Yerinde çerçeve penceresi sınıfını bildirmek için
öğesinden
COleIPFrameWnd
yerinde bir çerçeve penceresi sınıfı türetin.Sınıf üst bilgi dosyanızda DECLARE_DYNCREATE makroyu kullanın.
Sınıf uygulama (.cpp) dosyanızda IMPLEMENT_DYNCREATE makroyu kullanın. Bu, bu sınıfın nesnelerinin çerçeve tarafından oluşturulmasını sağlar.
Çerçeve penceresi sınıfında bir
COleResizeBar
üye bildirin. Sunucu uygulamalarında yerinde yeniden boyutlandırmayı desteklemek istiyorsanız bu gereklidir.Bir
OnCreate
ileti işleyicisi bildirin (Sınıf Sihirbazı'nı kullanarak) ve tanımladıysanız üyeniziCOleResizeBar
çağırınCreate
.Araç çubuğunuz varsa, çerçeve penceresi sınıfında bir
CToolBar
üye bildirin.OnCreateControlBars
Sunucu etkin durumdayken araç çubuğu oluşturmak için üye işlevini geçersiz kılın. Örnek: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ımdan sonra bu kodun tartışmasını inceleyin.
Bu yerinde çerçeve penceresi sınıfı için üst bilgi dosyasını ana .cpp dosyanıza ekleyin.
InitInstance
Uygulama sınıfınızda, açık ve yerinde düzenlemede kullanılacak kaynakları ve yerinde çerçeve penceresini belirtmek için belge şablonu nesnesinin işlevini çağırınSetServerInfo
.
deyimindeki if
işlev çağrıları dizisi, araç çubuğunu sunucunun sağladığı kaynaklardan oluşturur. Bu noktada araç çubuğu kapsayıcının pencere hiyerarşisinin bir parçasıdır. Bu araç çubuğu'ndan türetildiğinden CToolBar
, sahibini değiştirmediğiniz sürece iletileri sahibine, kapsayıcı uygulamasının çerçeve penceresine geçirir. Bu nedenle çağrısı SetOwner
gereklidir. Bu çağrı, komutların sunucunun yerinde çerçeve penceresi olması için gönderildiği pencereyi değiştirir ve iletilerin sunucuya geçirilmesine neden olur. Bu, sunucunun sağladığı araç çubuğundaki işlemlere tepki vermesine olanak tanır.
Araç çubuğu bit eşleminin kimliği, sunucu uygulamanızda tanımlanan diğer yerinde kaynaklar ile aynı olmalıdır. Ayrıntılar için bkz . Menüler ve Kaynaklar: Sunucu Eklemeleri .
Daha fazla bilgi için, Sınıf Kitaplığı Başvurusu'ndaki COleIPFrameWnd, COleResizeBar ve CDocTemplate::SetServerInfo bölümlerine bakın.
Ayrıca bkz.
Sunucular
Sunucular: Sunucu Uygulama
Sunucular: Sunucu Belgeleri Uygulama
Sunucular: Sunucu Öğeleri