Bagikan melalui


Server: Menerapkan Windows Bingkai Di Tempat

Artikel ini menjelaskan apa yang harus Anda lakukan untuk menerapkan jendela bingkai di tempat di aplikasi server pengeditan visual Anda jika Anda tidak menggunakan wizard aplikasi untuk membuat aplikasi server Anda. Sebagai ganti mengikuti prosedur yang diuraikan dalam artikel ini, Anda dapat menggunakan kelas jendela bingkai di tempat yang ada dari aplikasi yang dihasilkan wizard aplikasi atau sampel yang disediakan dengan Visual C++.

Untuk mendeklarasikan kelas jendela bingkai di tempat

  1. Dapatkan kelas jendela bingkai di tempat dari COleIPFrameWnd.

    • Gunakan makro DECLARE_DYNCREATE di file header kelas Anda.

    • Gunakan makro IMPLEMENT_DYNCREATE dalam file implementasi kelas (.cpp) Anda. Ini memungkinkan objek kelas ini dibuat oleh kerangka kerja.

  2. Nyatakan COleResizeBar anggota di kelas jendela bingkai. Ini diperlukan jika Anda ingin mendukung perubahan ukuran di tempat dalam aplikasi server.

    Deklarasikan handler OnCreate pesan (menggunakan Panduan Kelas), dan panggil Create anggota Anda COleResizeBar , jika Anda telah menentukannya.

  3. Jika Anda memiliki toolbar, deklarasikan CToolBar anggota di kelas jendela bingkai.

    Ambil alih OnCreateControlBars fungsi anggota untuk membuat toolbar saat server aktif di tempat. Contohnya:

    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;
    }
    

    Lihat diskusi kode ini setelah langkah 5.

  4. Sertakan file header untuk kelas jendela bingkai di tempat ini dalam file .cpp utama Anda.

  5. Untuk InitInstance kelas aplikasi Anda, panggil SetServerInfo fungsi objek templat dokumen untuk menentukan sumber daya dan jendela bingkai di tempat yang akan digunakan dalam pengeditan terbuka dan di tempat.

Rangkaian panggilan fungsi dalam if pernyataan membuat toolbar dari sumber daya yang disediakan server. Pada titik ini, toolbar adalah bagian dari hierarki jendela kontainer. Karena toolbar ini berasal dari CToolBar, toolbar ini akan meneruskan pesannya kepada pemiliknya, jendela bingkai aplikasi kontainer, kecuali Anda mengubah pemiliknya. Itulah sebabnya panggilan ke SetOwner diperlukan. Panggilan ini mengubah jendela tempat perintah dikirim menjadi jendela bingkai server di tempat, menyebabkan pesan diteruskan ke server. Ini memungkinkan server untuk bereaksi terhadap operasi pada toolbar yang disediakannya.

ID untuk bitmap toolbar harus sama dengan sumber daya lain di tempat yang ditentukan dalam aplikasi server Anda. Lihat Menu dan Sumber Daya: Penambahan Server untuk detailnya.

Untuk informasi selengkapnya, lihat COleIPFrameWnd, COleResizeBar, dan CDocTemplate::SetServerInfo di Referensi Pustaka Kelas.

Baca juga

Server
Server: Menerapkan Server
Server: Menerapkan Dokumen Server
Server: Item Server