Aracılığıyla paylaş


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

  1. öğesinden COleIPFrameWndyerinde 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.

  2. Ç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 üyenizi COleResizeBar çağırınCreate.

  3. 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.

  4. Bu yerinde çerçeve penceresi sınıfı için üst bilgi dosyasını ana .cpp dosyanıza ekleyin.

  5. 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