CComCompositeControl, classe
Cette classe fournit les méthodes requises pour implémenter un contrôle composite.
Important
Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s'exécutent dans les fenêtres d'exécution.
template <
class T
>
class CComCompositeControl :
public CComControl< T, CAxDialogImpl< T > >
Paramètres
- T
Votre classe, dérivée de CComObjectRoot ou de CComObjectRootEx, ainsi que de toutes les autres interfaces vous souhaitez prendre en charge pour votre contrôle composite.
Membres
Constructeurs publics
Nom |
Description |
---|---|
Constructeur. |
|
Le destructeur. |
Méthodes publiques
Nom |
Description |
---|---|
Appelez cette méthode pour avertir ou unadvise tous les contrôles hébergés par le contrôle composite. |
|
Appelez cette méthode pour calculer la taille en unités HIMETRIC de la ressource de boîte de dialogue utilisée pour héberger le contrôle composite. |
|
Cette méthode est appelée pour créer la fenêtre de contrôle du contrôle composite. |
|
Appelez cette méthode pour créer la fenêtre du contrôle et pour notifier tout contrôle hébergé. |
|
Appelez cette méthode pour définir la couleur d'arrière-plan du contrôle composite à la couleur d'arrière-plan du conteneur. |
Données membres publiques
Nom |
Description |
---|---|
Pinceau d'arrière-plan. |
|
Handle de la fenêtre qui a actuellement le focus. |
Notes
Les classes dérivées de la classe CComCompositeControl héritent les fonctionnalités d'un contrôle composite ActiveX. Les contrôles ActiveX dérivés d' CComCompositeControl sont hébergés par une boîte de dialogue standard. Ces types de contrôles sont appelés des contrôles composites car ils peuvent héberger d'autres contrôles (contrôles natifs de contrôles Windows et ActiveX).
CComCompositeControl identifie la ressource de boîte de dialogue à utiliser lors de la création du contrôle composite en recherchant une donnée membre énumérée dans la classe enfant. Le membre IDD de cette classe enfant a pour valeur l'ID de ressource de la ressource de boîte de dialogue qui sera utilisée comme fenêtre de contrôle. Voici un exemple des données membres que la classe dérivée d' CComCompositeControl doit contenir pour identifier la ressource de boîte de dialogue à utiliser pour la fenêtre du contrôle :
enum { IDD = IDD_MYCOMPOSITE };
Notes
Les contrôles composites sont toujours les contrôles fenêtrés, bien qu'ils puissent contenir des contrôles sans fenêtre.
Un contrôle implémenté par CComCompositeControl- la classe dérivée a le comportement de tabulation par défaut incorporé. Lorsque le contrôle reçoit le focus en étant tabulé dans une application conteneur, appuyez sur la touche TAB successivement entraîne le focus d'être défilé via les contrôles contenus de tout le contrôle composite, puis du contrôle composite et en fonction à l'élément suivant dans l'ordre de tabulation du conteneur. L'ordre de tabulation des contrôles hébergés est déterminé par la ressource de boîte de dialogue et détermine l'ordre dans lequel la tabulation se produit.
Notes
Pour que les accélérateurs fonctionnent correctement avec CComCompositeControl, il est nécessaire de charger une table d'accélérateurs lorsque le contrôle est créé, passez le handle et le nombre d'accélérateurs dans le en IOleControlImpl::GetControlInfo, et perdent enfin la table lorsque le contrôle est libéré.
Exemple
// 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;
}
Hiérarchie d'héritage
WinBase
CComCompositeControl
Configuration requise
Header: atlctl.h
Voir aussi
Référence
Concepts
Notions de base du contrôle composite