Klasa COleControlContainer

Działa jako kontener kontrolek dla kontrolek ActiveX.

Składnia

class COleControlContainer : public CCmdTarget

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
COleControlContainer::COleControlContainer COleControlContainer Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
COleControlContainer::AttachControlSite Tworzy lokację sterowania hostowaną przez kontener.
COleControlContainer::BroadcastAmbientPropertyChange Informuje wszystkie hostowane kontrolki o zmianie właściwości otoczenia.
COleControlContainer::CheckDlgButton Modyfikuje określoną kontrolkę przycisku.
COleControlContainer::CheckRadioButton Wybiera określony przycisk radiowy grupy.
COleControlContainer::CreateControl Tworzy hostowaną kontrolkę ActiveX.
COleControlContainer::CreateOleFont Tworzy czcionkę OLE.
COleControlContainer::FindItem Zwraca witrynę niestandardową określonej kontrolki.
COleControlContainer::FreezeAllEvents Określa, czy lokacja sterowania akceptuje zdarzenia.
COleControlContainer::GetAmbientProp Pobiera określoną właściwość otoczenia.
COleControlContainer::GetDlgItem Pobiera określoną kontrolkę okna dialogowego.
COleControlContainer::GetDlgItemInt Pobiera wartość określonej kontrolki okna dialogowego.
COleControlContainer::GetDlgItemText Pobiera podpis określonej kontrolki okna dialogowego.
COleControlContainer::HandleSetFocus Określa, czy kontener obsługuje komunikaty WM_SETFOCUS.
COleControlContainer::HandleWindowlessMessage Obsługuje komunikaty wysyłane do kontrolki bez okien.
COleControlContainer::IsDlgButtonChecked Określa stan określonego przycisku.
COleControlContainer::OnPaint Wywoływana w celu przemalowania części kontenera.
COleControlContainer::OnUIActivate Wywoływana, gdy kontrolka ma być aktywowana w miejscu.
COleControlContainer::OnUIDeactivate Wywoływana, gdy kontrolka ma zostać zdezaktywowana.
COleControlContainer::ScrollChildren Wywoływana przez platformę podczas odbierania komunikatów przewijania z okna podrzędnego.
COleControlContainer::SendDlgItemMessage Wysyła komunikat do określonej kontrolki.
COleControlContainer::SetDlgItemInt Ustawia wartość określonej kontrolki.
COleControlContainer::SetDlgItemText Ustawia tekst określonej kontrolki.

Publiczne elementy członkowskie danych

Nazwa/nazwisko opis
COleControlContainer::m_crBack Kolor tła kontenera.
COleControlContainer::m_crFore Kolor pierwszego planu kontenera.
COleControlContainer::m_listSitesOrWnds Lista obsługiwanych lokacji kontrolnych.
COleControlContainer::m_nWindowlessControls Liczba hostowanych kontrolek bez okien.
COleControlContainer::m_pOleFont Wskaźnik do czcionki OLE niestandardowej witryny sterowania.
COleControlContainer::m_pSiteCapture Wskaźnik do lokacji kontroli przechwytywania.
COleControlContainer::m_pSiteFocus Wskaźnik do kontrolki, która obecnie ma fokus wejściowy.
COleControlContainer::m_pSiteUIActive Wskaźnik do kontrolki, która jest obecnie aktywowana w miejscu.
COleControlContainer::m_pWnd Wskaźnik do okna implementowania kontenera sterowania.
COleControlContainer::m_siteMap Mapa witryny.

Uwagi

Jest to realizowane przez zapewnienie obsługi co najmniej jednej lokacji kontrolek ActiveX (zaimplementowanej przez COleControlSiteprogram ). COleControlContainer w pełni implementuje interfejsy IOleInPlaceFrame i IOleContainer , dzięki czemu zawarte kontrolki ActiveX spełniają swoje kwalifikacje jako elementy w miejscu.

Często ta klasa jest używana w połączeniu z COccManagerCOleControlSite i do implementowania niestandardowego kontenera kontrolek ActiveX z lokacjami niestandardowymi dla co najmniej jednego formantu ActiveX.

Hierarchia dziedziczenia

Cobject

Ccmdtarget

COleControlContainer

Wymagania

Nagłówek: afxocc.h

COleControlContainer::AttachControlSite

Wywoływana przez platformę w celu utworzenia i dołączenia lokacji sterowania.

virtual void AttachControlSite(
    CWnd* pWnd,
    UINT nIDC = 0);

void AttachControlSite(
    CWnd* pWnd,
    UINT nIDC = 0);

Parametry

Pwnd
Wskaźnik do CWnd obiektu.

NIDC
Identyfikator kontrolki do dołączenia.

Uwagi

Zastąpi tę funkcję, jeśli chcesz dostosować ten proces.

Uwaga

Użyj pierwszej formy tej funkcji, jeśli statycznie łączysz się z biblioteką MFC. Użyj drugiego formularza, jeśli dynamicznie łączysz się z biblioteką MFC.

COleControlContainer::BroadcastAmbientPropertyChange

Informuje wszystkie hostowane kontrolki o zmianie właściwości otoczenia.

virtual void BroadcastAmbientPropertyChange(DISPID dispid);

Parametry

Dispid
Identyfikator wysyłki zmienianej właściwości otoczenia.

Uwagi

Ta funkcja jest wywoływana przez strukturę, gdy właściwość otoczenia zmieniła wartość. Zastąpi tę funkcję, aby dostosować to zachowanie.

COleControlContainer::CheckDlgButton

Modyfikuje bieżący stan przycisku.

virtual void CheckDlgButton(
    int nIDButton,
    UINT nCheck);

Parametry

nIDButton
Identyfikator przycisku, który ma zostać zmodyfikowany.

nZnacz
Określa stan przycisku. Może być jednym z następujących elementów:

  • BST_CHECKED Ustawia stan przycisku do sprawdzenia.

  • BST_INDETERMINATE Ustawia stan przycisku na szary, wskazując nieokreślony stan. Użyj tej wartości tylko wtedy, gdy przycisk ma styl BS_3STATE lub BS_AUTO3STATE.

  • BST_UNCHECKED Ustawia stan przycisku do wyczyszczenia.

COleControlContainer::CheckRadioButton

Wybiera określony przycisk radiowy w grupie i czyści pozostałe przyciski w grupie.

virtual void CheckRadioButton(
    int nIDFirstButton,
    int nIDLastButton,
    int nIDCheckButton);

Parametry

nIDFirstButton
Określa identyfikator pierwszego przycisku radiowego w grupie.

nIDLastButton
Określa identyfikator ostatniego przycisku radiowego w grupie.

nIDCheckButton
Określa identyfikator przycisku radiowego do sprawdzenia.

COleControlContainer::COleControlContainer

COleControlContainer Tworzy obiekt.

explicit COleControlContainer(CWnd* pWnd);

Parametry

Pwnd
Wskaźnik do okna nadrzędnego kontenera sterowania.

Uwagi

Po pomyślnym utworzeniu obiektu dodaj niestandardową lokację sterowania z wywołaniem metody AttachControlSite.

COleControlContainer::CreateControl

Tworzy kontrolkę ActiveX hostowaną przez określony COleControlSite obiekt.

BOOL CreateControl(
    CWnd* pWndCtrl,
    REFCLSID clsid,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const RECT& rect,
    UINT nID,
    CFile* pPersist =NULL,
    BOOL bStorage =FALSE,
    BSTR bstrLicKey =NULL,
    COleControlSite** ppNewSite =NULL);

BOOL CreateControl(
    CWnd* pWndCtrl,
    REFCLSID clsid,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const POINT* ppt,
    const SIZE* psize,
    UINT nID,
    CFile* pPersist =NULL,
    BOOL bStorage =FALSE,
    BSTR bstrLicKey =NULL,
    COleControlSite** ppNewSite =NULL);

Parametry

pWndCtrl
Wskaźnik do obiektu okna reprezentującego kontrolkę.

Clsid
Unikatowy identyfikator klasy kontrolki.

lpszWindowName
Wskaźnik do tekstu, który ma być wyświetlany w kontrolce. Ustawia wartość właściwości Caption lub Text kontrolki (jeśli istnieje). Jeśli wartość NULL, właściwość Caption lub Text kontrolki nie zostanie zmieniona.

Dwstyle
Style systemu Windows. Dostępne style są wymienione w sekcji Uwagi .

Rect
Określa rozmiar i położenie kontrolki. Może to być CRect obiekt lub RECT struktura.

Nid
Określa identyfikator okna podrzędnego kontrolki.

pPersist
Wskaźnik zawierający CFile stan trwały dla kontrolki. Wartość domyślna to NULL, co oznacza, że kontrolka inicjuje się bez przywracania stanu z dowolnego magazynu trwałego. Jeśli nie ma wartości NULL, powinien to być wskaźnik do obiektu pochodnego CFilezawierającego trwałe dane kontrolki w postaci strumienia lub magazynu. Te dane mogły zostać zapisane w poprzedniej aktywacji klienta. Element CFile może zawierać inne dane, ale musi mieć ustawiony wskaźnik odczytu i zapisu na pierwszy bajt danych trwałych w momencie wywołania metody CreateControl.

bStorage
Wskazuje, czy dane w narzędziu pPersist powinny być interpretowane jako IStorage lub IStream dane. Jeśli dane w narzędziu pPersist są magazynem, funkcja bStorage powinna mieć wartość TRUE. Jeśli dane w narzędziu pPersist są strumieniem, funkcja bStorage powinna mieć wartość FALSE. Wartość domyślna to FALSE.

bstrLicKey
Opcjonalne dane klucza licencji. Te dane są potrzebne tylko do tworzenia kontrolek, które wymagają klucza licencji w czasie wykonywania. Jeśli kontrolka obsługuje licencjonowanie, musisz podać klucz licencji, aby tworzenie kontrolki powiodło się. Wartość domyślna to NULL.

ppNewSite
Wskaźnik do istniejącej lokacji sterowania, która będzie hostować tworzoną kontrolkę. Wartość domyślna to NULL, co oznacza, że nowa lokacja sterowania zostanie automatycznie utworzona i dołączona do nowej kontrolki.

Ppt
Wskaźnik do POINT struktury zawierającej lewy górny róg kontrolki. Rozmiar kontrolki jest określany przez wartość psize. Wartości ppt i psize są opcjonalną metodą określania rozmiaru i położenia kontrolki.

rozmiar psize
Wskaźnik do SIZE struktury zawierającej rozmiar kontrolki. Lewy górny róg jest określany przez wartość ppt. Wartości ppt i psize są opcjonalną metodą określania rozmiaru i położenia kontrolki.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Obsługiwane są tylko podzestaw flagi Windows dwStyle:CreateControl

  • WS_VISIBLE Tworzy okno, które jest początkowo widoczne. Wymagane, jeśli kontrolka ma być widoczna natychmiast, na przykład zwykłe okna.

  • WS_DISABLED Tworzy okno, które jest początkowo wyłączone. Wyłączone okno nie może odbierać danych wejściowych od użytkownika. Można ustawić, jeśli kontrolka ma właściwość Enabled.

  • WS_BORDER Tworzy okno z obramowaniem cienkim. Można ustawić, jeśli kontrolka ma właściwość BorderStyle.

  • WS_GROUP Określa pierwszą kontrolkę grupy kontrolek. Użytkownik może zmienić fokus klawiatury z jednej kontrolki w grupie na następną, używając klawiszy kierunkowych. Wszystkie kontrolki zdefiniowane za pomocą stylu WS_GROUP po pierwszym kontrolce należą do tej samej grupy. Następna kontrolka ze stylem WS_GROUP kończy grupę i uruchamia następną grupę.

  • WS_TABSTOP Określa kontrolkę, która może odbierać fokus klawiatury, gdy użytkownik naciska klawisz TAB. Naciśnięcie klawisza TAB powoduje zmianę fokusu klawiatury na następną kontrolkę stylu WS_TABSTOP.

Użyj drugiego przeciążenia, aby utworzyć kontrolki o domyślnym rozmiarze.

COleControlContainer::CreateOleFont

Tworzy czcionkę OLE.

void CreateOleFont(CFont* pFont);

Parametry

pFont
Wskaźnik do czcionki, która ma być używana przez kontener sterowania.

COleControlContainer::FindItem

Znajduje witrynę niestandardową, która hostuje określony element.

virtual COleControlSite* FindItem(UINT nID) const;

Parametry

Nid
Identyfikator elementu, który ma zostać znaleziony.

Wartość zwracana

Wskaźnik do niestandardowej witryny określonego elementu.

COleControlContainer::FreezeAllEvents

Określa, czy kontener zignoruje zdarzenia z dołączonych lokacji kontrolnych lub je zaakceptuje.

void FreezeAllEvents(BOOL bFreeze);

Parametry

bFreeze
Niezerowe, jeśli zdarzenia zostaną przetworzone; w przeciwnym razie 0.

Uwagi

Uwaga

Kontrolka nie jest wymagana do zatrzymania wyzwalania zdarzeń, jeśli jest to wymagane przez kontener sterowania. Może on kontynuować uruchamianie, ale wszystkie kolejne zdarzenia zostaną zignorowane przez kontener sterowania.

COleControlContainer::GetAmbientProp

Pobiera wartość określonej właściwości otoczenia.

virtual BOOL GetAmbientProp(
    COleControlSite* pSite,
    DISPID dispid,
    VARIANT* pvarResult);

Parametry

Witryna pSite
Wskaźnik do lokacji sterowania, z której zostanie pobrana właściwość otoczenia.

Dispid
Identyfikator wysyłki żądanej właściwości otoczenia.

pVarResult
Wskaźnik do wartości właściwości otoczenia.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

COleControlContainer::GetDlgItem

Pobiera wskaźnik do określonej kontrolki lub okna podrzędnego w oknie dialogowym lub innym oknie.

virtual CWnd* GetDlgItem(int nID) const;

virtual void GetDlgItem(
    int nID,
    HWND* phWnd) const;

Parametry

Nid
Identyfikator elementu okna dialogowego do pobrania.

phWnd
Wskaźnik do uchwytu określonego obiektu okna okna okna.

Wartość zwracana

Wskaźnik do okna elementu okna dialogowego.

COleControlContainer::GetDlgItemInt

Pobiera wartość przetłumaczonego tekstu danej kontrolki.

virtual UINT GetDlgItemInt(
    int nID,
    BOOL* lpTrans,
    BOOL bSigned) const;

Parametry

Nid
Identyfikator kontrolki.

lpTrans
Wskaźnik do zmiennej logicznej, która odbiera wartość powodzenia/niepowodzenia funkcji (WARTOŚĆ TRUE wskazuje powodzenie, FAŁSZ wskazuje niepowodzenie).

bSigned
Określa, czy funkcja powinna zbadać tekst znaku minus na początku i zwrócić podpisaną wartość całkowitą, jeśli ją znajdzie. Jeśli parametr bSigned ma wartość TRUE, określając, że pobierana wartość to podpisana wartość całkowita, rzutuj wartość zwracaną int na typ. Aby uzyskać rozszerzone informacje o błędzie, wywołaj metodę GetLastError.

Wartość zwracana

W przypadku powodzenia zmienna wskazywana przez lpTrans jest ustawiona na wartość TRUE, a wartość zwracana jest przetłumaczoną wartością tekstu kontrolki.

Jeśli funkcja zakończy się niepowodzeniem, zmienna wskazywana przez funkcję lpTrans jest ustawiona na WARTOŚĆ FALSE, a zwracana wartość to zero. Należy pamiętać, że ponieważ zero jest możliwą przetłumaczoną wartością, zwracana wartość zero nie wskazuje błędu.

Jeśli wartość lpTrans ma wartość NULL, funkcja nie zwraca żadnych informacji o powodzeniu lub niepowodzeniu.

Uwagi

Funkcja tłumaczy pobrany tekst, usuwając wszelkie dodatkowe spacje na początku tekstu, a następnie konwertując cyfry dziesiętne. Funkcja przestaje tłumaczyć, gdy osiągnie koniec tekstu lub napotka znak nieliczbowy.

Ta funkcja zwraca zero, jeśli przetłumaczona wartość jest większa niż INT_MAX (dla cyfr podpisanych) lub UINT_MAX (w przypadku niepodpisanych liczb).

COleControlContainer::GetDlgItemText

Pobiera tekst danej kontrolki.

virtual int GetDlgItemText(
    int nID,
    LPTSTR lpStr,
    int nMaxCount) const;

Parametry

Nid
Identyfikator kontrolki.

Lpstr
Wskaźnik do tekstu kontrolki.

nMaxCount
Określa maksymalną długość ciągu, w znakach, które mają być kopiowane do buforu wskazywanego przez lpStr. Jeśli długość ciągu przekroczy limit, ciąg zostanie obcięty.

Wartość zwracana

Jeśli funkcja powiedzie się, zwracana wartość określa liczbę znaków skopiowanych do buforu, a nie w tym znak null zakończenia.

Jeśli funkcja zakończy się niepowodzeniem, zwracana wartość to zero. Aby uzyskać rozszerzone informacje o błędzie, wywołaj metodę GetLastError.

COleControlContainer::HandleSetFocus

Określa, czy kontener obsługuje komunikaty WM_SETFOCUS.

virtual BOOL HandleSetFocus();

Wartość zwracana

Nonzero, jeśli kontener obsługuje WM_SETFOCUS komunikatów; w przeciwnym razie zero.

COleControlContainer::HandleWindowlessMessage

Przetwarza komunikaty okien dla kontrolek bez okien.

virtual BOOL HandleWindowlessMessage(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* plResult);

Parametry

message
Identyfikator komunikatu okna dostarczonego przez system Windows.

Wparam
Parametr komunikatu; dostarczane przez system Windows. Określa dodatkowe informacje specyficzne dla komunikatów. Zawartość tego parametru zależy od wartości parametru komunikatu.

Lparam
Parametr komunikatu; dostarczane przez system Windows. Określa dodatkowe informacje specyficzne dla komunikatów. Zawartość tego parametru zależy od wartości parametru komunikatu.

plResult
Kod wyniku systemu Windows. Określa wynik przetwarzania komunikatów i zależy od wysłanego komunikatu.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie zero.

Uwagi

Zastąpij tę funkcję, aby dostosować obsługę komunikatów sterowania bez okien.

COleControlContainer::IsDlgButtonChecked

Określa stan określonego przycisku.

virtual UINT IsDlgButtonChecked(int nIDButton) const;

Parametry

nIDButton
Identyfikator kontrolki przycisku.

Wartość zwracana

Wartość zwracana na podstawie przycisku utworzonego za pomocą BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON lub stylu BS_3STATE. Może być jednym z następujących elementów:

  • przycisk BST_CHECKED jest zaznaczony.

  • BST_INDETERMINATE Przycisk jest szary, wskazując nieokreślony stan (ma zastosowanie tylko wtedy, gdy przycisk ma styl BS_3STATE lub BS_AUTO3STATE).

  • BST_UNCHECKED Przycisk jest czyszczone.

Uwagi

Jeśli przycisk jest kontrolką trójstanową, funkcja składowa określa, czy jest wygaszona, sprawdzana, czy też nie.

COleControlContainer::m_crBack

Kolor tła kontenera.

COLORREF m_crBack;

COleControlContainer::m_crFore

Kolor pierwszego planu kontenera.

COLORREF m_crFore;

COleControlContainer::m_listSitesOrWnds

Lista lokacji sterujących hostowanych przez kontener.

CTypedPtrList<CPtrList, COleControlSiteOrWnd*> m_listSitesOrWnds;

COleControlContainer::m_nWindowlessControls

Liczba kontrolek bez okien hostowanych przez kontener sterowania.

int m_nWindowlessControls;

COleControlContainer::m_pOleFont

Wskaźnik do czcionki OLE niestandardowej witryny sterowania.

LPFONTDISP m_pOleFont;

COleControlContainer::m_pSiteCapture

Wskaźnik do lokacji kontroli przechwytywania.

COleControlSite* m_pSiteCapture;

COleControlContainer::m_pSiteFocus

Wskaźnik do lokacji sterowania, która obecnie ma fokus wejściowy.

COleControlSite* m_pSiteFocus;

COleControlContainer::m_pSiteUIActive

Wskaźnik do lokacji sterowania, która jest aktywowana w miejscu.

COleControlSite* m_pSiteUIActive;

COleControlContainer::m_pWnd

Wskaźnik do obiektu okna skojarzonego z kontenerem.

CWnd* m_pWnd;

COleControlContainer::m_siteMap

Mapa witryny.

CMapPtrToPtr m_siteMap;

COleControlContainer::OnPaint

Wywoływana przez platformę do obsługi żądań WM_PAINT.

virtual BOOL OnPaint(CDC* pDC);

Parametry

Pdc
Wskaźnik do kontekstu urządzenia używanego przez kontener.

Wartość zwracana

Nonzero, jeśli komunikat został obsłużony; w przeciwnym razie zero.

Uwagi

Zastąpi tę funkcję, aby dostosować proces malowania.

COleControlContainer::OnUIActivate

Wywoływana przez platformę, gdy lokacja sterowania wskazywana przez lokację pSite ma zostać aktywowana w miejscu.

virtual void OnUIActivate(COleControlSite* pSite);

Parametry

Witryna pSite
Wskaźnik do lokacji sterowania, który ma być aktywowany w miejscu.

Uwagi

Aktywacja w miejscu oznacza, że menu główne kontenera jest zastępowane menu złożone w miejscu.

COleControlContainer::OnUIDeactivate

Wywoływana przez platformę, gdy lokacja sterowania wskazywana przez lokację pSite ma zostać zdezaktywowana.

virtual void OnUIDeactivate(COleControlSite* pSite);

Parametry

Witryna pSite
Wskaźnik do lokacji sterowania, który ma zostać zdezaktywowany.

Uwagi

Po odebraniu tego powiadomienia kontener powinien ponownie zainstalować interfejs użytkownika i skupić się na tym.

COleControlContainer::ScrollChildren

Wywoływana przez platformę podczas odbierania komunikatów przewijania z okna podrzędnego.

virtual void ScrollChildren(
    int dx,
    int dy);

Parametry

Dx
Ilość w pikselach przewijania wzdłuż osi x.

Dy
Ilość w pikselach przewijania wzdłuż osi y.

COleControlContainer::SendDlgItemMessage

Wysyła komunikat do określonej kontrolki.

virtual LRESULT SendDlgItemMessage(
    int nID,
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Parametry

Nid
Określa identyfikator kontrolki, która odbiera komunikat.

message
Określa komunikat do wysłania.

Wparam
Określa dodatkowe informacje specyficzne dla komunikatów.

Lparam
Określa dodatkowe informacje specyficzne dla komunikatów.

COleControlContainer::SetDlgItemInt

Ustawia tekst kontrolki w oknie dialogowym na ciąg reprezentujący określoną wartość całkowitą.

virtual void SetDlgItemInt(
    int nID,
    UINT nValue,
    BOOL bSigned);

Parametry

Nid
Identyfikator kontrolki.

nValue
Wartość całkowita, która ma być wyświetlana.

bSigned
Określa, czy parametr nValue jest podpisany, czy niepodpisany. Jeśli ten parametr ma wartość TRUE, parametr nValue jest podpisany. Jeśli ten parametr ma wartość TRUE, a wartość nValue jest mniejsza niż zero, znak minus zostanie umieszczony przed pierwszą cyfrą w ciągu. Jeśli ten parametr ma wartość FALSE, nValue jest niepodpisany.

COleControlContainer::SetDlgItemText

Ustawia tekst określonej kontrolki przy użyciu tekstu zawartego w lpszString.

virtual void SetDlgItemText(
    int nID,
    LPCTSTR lpszString);

Parametry

Nid
Identyfikator kontrolki.

lpszString
Wskaźnik do tekstu kontrolki.

Zobacz też

Klasa CCmdTarget
Wykres hierarchii
Klasa COleControlSite
Klasa COccManager