Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Deze klasse biedt de methoden die nodig zijn om een samengesteld besturingselement te implementeren.
Belangrijk
Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.
Syntaxis
template <class T>
class CComCompositeControl : public CComControl<T,CAxDialogImpl<T>>
Parameterwaarden
T
Uw klasse, afgeleid van CComObjectRoot of CComObjectRootEx, evenals van andere interfaces die u wilt ondersteunen voor uw samengestelde besturingselement.
Leden
Openbare constructors
| Naam | Description |
|---|---|
| CComCompositeControl::CComCompositeControl | De constructor. |
| CComCompositeControl::~CComCompositeControl | De destructor. |
Openbare methoden
| Naam | Description |
|---|---|
| CComCompositeControl::AdviseSinkMap | Roep deze methode aan om alle besturingselementen die worden gehost door het samengestelde besturingselement te adviseren of ongedaan te maken. |
| CComCompositeControl::CalcExtent | Roep deze methode aan om de grootte te berekenen in HIMETRIC-eenheden van de dialoogvensterresource die wordt gebruikt voor het hosten van het samengestelde besturingselement. |
| CComCompositeControl::Maken | Deze methode wordt aangeroepen om het besturingselementvenster voor het samengestelde besturingselement te maken. |
| CComCompositeControl::CreateControlWindow | Roep deze methode aan om het besturingselementvenster te maken en elk gehost besturingselement te adviseren. |
| CComCompositeControl::SetBackgroundColorFromAmbient | Roep deze methode aan om de achtergrondkleur van het samengestelde besturingselement in te stellen met behulp van de achtergrondkleur van de container. |
Publieke dataleden
| Naam | Description |
|---|---|
| CComCompositeControl::m_hbrBackground | De achtergrondborstel. |
| CComCompositeControl::m_hWndFocus | De greep van het venster dat momenteel de focus heeft. |
Opmerkingen
Klassen die zijn afgeleid van klasse CComCompositeControl nemen de functionaliteit van een Samengesteld ActiveX-besturingselement over. ActiveX-besturingselementen die zijn afgeleid van CComCompositeControl , worden gehost door een standaarddialoogvenster. Deze typen besturingselementen worden samengestelde besturingselementen genoemd omdat ze andere besturingselementen (systeemeigen Windows-besturingselementen en ActiveX-besturingselementen) kunnen hosten.
CComCompositeControl identificeert de dialoogvensterresource die moet worden gebruikt bij het maken van het samengestelde besturingselement door te zoeken naar een geïnventariseerd gegevenslid in de onderliggende klasse. De lid-id van deze onderliggende klasse is ingesteld op de resource-id van de dialoogvensterresource die wordt gebruikt als het venster van het besturingselement. Hier volgt een voorbeeld van het gegevenslid waaruit de klasse CComCompositeControl moet bestaan om de dialoogvensterresource te identificeren die moet worden gebruikt voor het venster van het besturingselement:
enum { IDD = IDD_MYCOMPOSITE };
Opmerking
Samengestelde besturingselementen zijn altijd vensterbesturingselementen, hoewel ze vensterloze besturingselementen kunnen bevatten.
Een besturingselement dat door een CComCompositeControl-afgeleide klasse wordt geïmplementeerd, heeft standaardgedrag voor tabbladen ingebouwd. Wanneer het besturingselement de focus krijgt door in een toepassing met tabbladen te worden geplaatst, zorgt het opeenvolgend drukken op de Tab-toets ervoor dat de focus wordt gecyclusd door alle ingesloten besturingselementen van het samengestelde besturingselement, vervolgens uit het samengestelde besturingselement en naar het volgende item in de tabvolgorde van de container. De tabvolgorde van de gehoste besturingselementen wordt bepaald door de dialoogvensterresource en bepaalt de volgorde waarin tabbing plaatsvindt.
Opmerking
Om ervoor te zorgen dat accelerators goed werken met een CComCompositeControl, is het noodzakelijk om een acceleratortabel te laden terwijl het besturingselement wordt gemaakt, de greep en het aantal accelerators weer door te geven in IOleControlImpl::GetControlInfo en ten slotte de tabel te vernietigen wanneer het besturingselement wordt vrijgegeven.
Example
// Example for overriding IOleControlImpl::GetControlInfo()
// This example uses the accelerator table from the project resources
// with the identifier IDR_ACCELTABLE
// Define GetControlInfo() in the header of your composite
// control class as follows:
STDMETHOD(GetControlInfo)(CONTROLINFO* pCI)
{
// Load the accelerator table from the resource
pCI->hAccel = LoadAccelerators(_AtlBaseModule.GetResourceInstance(),
MAKEINTRESOURCE(IDR_ACCELTABLE));
if (pCI->hAccel == NULL)
return E_FAIL;
// Get the number of accelerators in the table
pCI->cAccel = (USHORT)CopyAcceleratorTable(pCI->hAccel, NULL, 0);
// The following is optional if you want your control
// to process the return and/or escape keys
// pCI.dwFlags = CTRLINFO_EATS_RETURN | CTRLINFO_EATS_ESCAPE;
pCI->dwFlags = 0;
return S_OK;
}
Overnamehiërarchie
WinBase
CComCompositeControl
Requirements
Koptekst: atlctl.h
CComCompositeControl::AdviseSinkMap
Roep deze methode aan om alle besturingselementen die worden gehost door het samengestelde besturingselement te adviseren of ongedaan te maken.
HRESULT AdviseSinkMap(bool bAdvise);
Parameterwaarden
bAdvise
Waar als alle controles moeten worden geadviseerd; anders onwaar.
Retourwaarde
| Waarde | Description |
|---|---|
S_OK |
Alle besturingselementen in de gebeurtenissinktoewijzing zijn verbonden of zijn losgekoppeld van de gebeurtenisbron. |
E_FAIL |
Niet alle besturingselementen in de gebeurtenissinktoewijzing kunnen worden verbonden of losgekoppeld van de gebeurtenisbron. |
E_POINTER |
Deze fout geeft meestal een probleem aan met een vermelding in de gebeurtenissinktoewijzing van het besturingselement of een probleem met een sjabloonargument dat wordt gebruikt in een IDispEventImpl of IDispEventSimpleImpl basisklasse. |
CONNECT_E_ADVISELIMIT |
Het verbindingspunt heeft de limiet van verbindingen al bereikt en kan niet meer worden geaccepteerd. |
CONNECT_E_CANNOTCONNECT |
De sink biedt geen ondersteuning voor de interface die vereist is voor dit verbindingspunt. |
CONNECT_E_NOCONNECTION |
De cookiewaarde vertegenwoordigt geen geldige verbinding. Deze fout geeft meestal een probleem aan met een vermelding in de gebeurtenissinktoewijzing van het besturingselement of een probleem met een sjabloonargument dat wordt gebruikt in een IDispEventImpl of IDispEventSimpleImpl basisklasse. |
Opmerkingen
De basisuitvoering van deze methode doorzoekt de vermeldingen in de gebeurtenissinktoewijzing. Vervolgens adviseert of verwijdert u de verbindingspunten met de COM-objecten die worden beschreven door de sinkvermeldingen van de gebeurtenissink. Deze lidmethode is ook afhankelijk van het feit dat de afgeleide klasse wordt overgenomen van één exemplaar van IDispEventImpl elk besturingselement in de sink-kaart dat moet worden geadviseerd of niet wordt gebruikt.
CComCompositeControl::CalcExtent
Roep deze methode aan om de grootte te berekenen in HIMETRIC-eenheden van de dialoogvensterresource die wordt gebruikt voor het hosten van het samengestelde besturingselement.
BOOL CalcExtent(SIZE& size);
Parameterwaarden
grootte
Een verwijzing naar een SIZE structuur die door deze methode moet worden ingevuld.
Retourwaarde
WAAR als het besturingselement wordt gehost door een dialoogvenster; anders ONWAAR.
Opmerkingen
De grootte wordt geretourneerd in de grootteparameter .
CComCompositeControl::Maken
Deze methode wordt aangeroepen om het besturingselementvenster voor het samengestelde besturingselement te maken.
HWND Create(
HWND hWndParent,
RECT& /* rcPos */,
LPARAM dwInitParam = NULL);
Parameterwaarden
hWndParent
Een ingang naar het bovenliggende venster van het besturingselement.
rcPos
Gereserveerd.
dwInitParam
Gegevens die tijdens het maken van het besturingselement moeten worden doorgegeven aan het besturingselement. De gegevens die als dwInitParam worden doorgegeven, worden weergegeven als de LPARAM-parameter van het WM_INITDIALOG-bericht , die naar het samengestelde besturingselement wordt verzonden wanneer deze wordt gemaakt.
Retourwaarde
Een ingang naar het zojuist gemaakte dialoogvenster voor samengesteld besturingselement.
Opmerkingen
Deze methode wordt meestal aangeroepen tijdens in-place activering van het besturingselement.
CComCompositeControl::CComCompositeControl
De constructor.
CComCompositeControl();
Opmerkingen
Initialiseert de CComCompositeControl::m_hbrBackground en CComCompositeControl::m_hWndFocus gegevensleden naar NULL.
CComCompositeControl::~CComCompositeControl
De destructor.
~CComCompositeControl();
Opmerkingen
Hiermee verwijdert u het achtergrondobject, indien aanwezig.
CComCompositeControl::CreateControlWindow
Roep deze methode aan om het besturingsvenster te maken en alle gehoste besturingselementen te adviseren.
virtual HWND CreateControlWindow(
HWND hWndParent,
RECT& rcPos);
Parameterwaarden
hWndParent
Een ingang naar het bovenliggende venster van het besturingselement.
rcPos
De positierechthoek van het samengestelde besturingselement in clientcoördinaten ten opzichte van hWndParent.
Retourwaarde
Hiermee wordt een ingang geretourneerd naar het dialoogvenster voor het zojuist gemaakte samengestelde besturingselement.
Opmerkingen
Met deze methode wordt CComCompositeControl::Create en CComCompositeControl::AdviseSinkMap aangeroepen.
CComCompositeControl::m_hbrBackground
De achtergrondborstel.
HBRUSH m_hbrBackground;
CComCompositeControl::m_hWndFocus
De greep van het venster dat momenteel de focus heeft.
HWND m_hWndFocus;
CComCompositeControl::SetBackgroundColorFromAmbient
Roep deze methode aan om de achtergrondkleur van het samengestelde besturingselement in te stellen met behulp van de achtergrondkleur van de container.
HRESULT SetBackgroundColorFromAmbient();
Retourwaarde
Retourneert S_OK bij succes of een fout HRESULT bij fout.
Zie ook
CComControl-klasse
Grondbeginselen van samengesteld besturingselement
Overzicht van klassen