Serwery: Wykonawczych W miejsce ramki w systemie Windows
W tym artykule wyjaśniono, co należy zrobić wdrożenie ramki w miejscu systemu windows w visual edytowania aplikacji serwera, jeśli nie używasz Kreatora aplikacji do tworzenia aplikacji serwera.Zamiast zgodnie z procedurą opisaną w tym artykule, można użyć istniejącej klasy okno ramek w miejscu wizard–generated aplikacji lub próbki, wyposażone w Visual C++.
Aby zadeklarować klasy w miejsce ramki okien
Klasę okno ramek w miejscu, z COleIPFrameWnd.
Użyj DECLARE_DYNCREATE makro w pliku nagłówka klasy.
Użyj IMPLEMENT_DYNCREATE makro w pliku klasy implementacji (.cpp).Dzięki temu obiekty do utworzenia w ramach tej klasy.
Zadeklarować COleResizeBar Członkowskich klasy okno ramek.Jest to potrzebne, aby wspierać, w miejsce zmiana rozmiaru w aplikacji serwera.
Zadeklarować OnCreate obsługi wiadomości (za pomocą Właściwości okna) i wywołać Tworzenie dla sieci COleResizeBar członka, jeśli zdefiniowano go.
Jeśli pasek narzędzi, należy zadeklarować CToolBar Członkowskich klasy okno ramek.
Zastąpić OnCreateControlBars funkcji składowej, aby utworzyć pasek narzędzi, gdy serwer jest aktywny w miejscu.Na przykład:
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; }
Zobacz Omówienie tego kodu następującego kroku 5.
Plik nagłówka dla tej klasy okno ramek w miejscu należy umieścić w pliku .cpp głównym.
W InitInstance dla swojej klasy aplikacji wywołać SetServerInfo funkcji obiektu szablonu dokumentu do określania zasobów i w miejscu ramki okna ma być używany w edycji otwartych i w miejscu.
Szereg funkcji wywołuje w Jeśli instrukcja tworzy pasek narzędzi z zasobów serwera, pod warunkiem.W tym momencie pasek narzędzi jest częścią kontenera hierarchii okna.Ponieważ ten pasek narzędzi jest pochodną CToolBar, go przekazuje swoje wiadomości do jej właściciela aplikacji kontenera ramki okna, chyba że zmiana właściciela.Dlatego wywołanie SetOwner jest niezbędne.To wywołanie zmienia okno, w którym polecenia są wysyłane do serwera w miejsce ramki okna, powodując wiadomości mają być przekazywane do serwera należy.Dzięki temu serwer reagować na operacje na pasku narzędzi, który zapewnia.
Identyfikator mapy bitowej narzędzi powinien być taki sam, jak inne zasoby w miejscu, określone w aplikacji serwera.Zobacz menu i zasobów: Dodatki serwera szczegóły.
Aby uzyskać więcej informacji, zobacz COleIPFrameWnd, COleResizeBar, i CDocTemplate::SetServerInfo w Odwołanie do biblioteki klas.