Server: Distribuire le applicazioni utilizzano sul posto
Questo articolo illustra l'azione da intraprendere per distribuire le applicazioni utilizzano sul posto in un'applicazione server di modifica visiva se non si utilizza la procedura guidata per creare l'applicazione server.Anziché seguendo la procedura descritta in questo articolo, è possibile utilizzare una classe esistente della finestra cornice sul posto da un'applicazione generata dalla creazione guidata applicazione o da un esempio specifico di Visual C++.
Per dichiarare una classe della finestra cornice sul posto
Derivare la classe della finestra cornice sul posto da COleIPFrameWnd.
Utilizzare la macro di DECLARE_DYNCREATE nel file di intestazione della classe.
Utilizzare la macro di IMPLEMENT_DYNCREATE nel file di implementazione della classe (CPP).In questo modo gli oggetti di questa classe per creare dal framework.
Dichiarare un membro di COleResizeBar nella classe della finestra cornice.Questa operazione è necessaria se si desidera supportare il ridimensionamento sul posto nelle applicazioni server.
Dichiarare un gestore messaggi di OnCreate (tramite la finestra Proprietà ) e chiamare Create per il membro di COleResizeBar , se è stato definito.
Se si dispone di una barra degli strumenti, dichiarare un membro di CToolBar nella classe della finestra cornice.
Eseguire l'override della funzione membro di OnCreateControlBars per creare una barra degli strumenti quando il server è disponibile attivo.Di seguito è riportato un esempio:
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; }
Vedere la descrizione di questo codice dopo il passaggio 5.
Includere il file di intestazione per questa classe della finestra cornice sul posto nel file principale con estensione cpp.
In InitInstance per la classe dell'applicazione, chiamare la funzione di SetServerInfo oggetti modello di documento per specificare le risorse e la finestra cornice sul posto da utilizzare nella modifica aperta e sul posto.
La serie di chiamate di funzione nell'istruzione di if crea la barra degli strumenti dalle risorse del server ha fornito.In questa fase, la barra degli strumenti fa parte della gerarchia della finestra contenitore.Poiché questa barra degli strumenti è derivata da CToolBar, passerà i messaggi al proprietario, la finestra cornice dell'applicazione contenitore, ad eccezione di modificare il proprietario.Per questo motivo la chiamata a SetOwner è necessaria.Questa chiamata viene modificata la finestra in cui i controlli vengono inviati essere la finestra cornice sul posto del server, in modo che i messaggi a essere passato al server.In questo modo il server reagisca alle operazioni sulla barra degli strumenti che fornisce.
L'ID della bitmap della barra degli strumenti deve corrispondere a quello di altre risorse sul posto definite nell'applicazione server.Vedere menu e risorse: aggiunte server per i dettagli.
Per ulteriori informazioni, vedere COleIPFrameWnd, COleResizeBare CDocTemplate::SetServerInfoin riferimenti alla libreria di classi.
Vedere anche
Concetti
Server: Implementazione di un server