CWnd::CreateControl
Utilisez cette fonction membre pour créer un contrôle ActiveX qui est représenté dans le programme MFC en un objet d' CWnd .
BOOL CreateControl(
LPCTSTR pszClass,
LPCTSTR pszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL
);
BOOL CreateControl(
REFCLSID clsid,
LPCTSTR pszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL
);
BOOL CreateControl(
REFCLSID clsid,
LPCTSTR pszWindowName,
DWORD dwStyle,
const POINT* ppt,
const SIZE* psize,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL
);
Paramètres
pszClass
Cette chaîne peut contenir le OLE « nom court » (progid) pour la classe, par..exemple, « CIRC3.Circ3Ctrl.1 ». Le nom doit correspondre le même nom enregistré par le contrôle. Sinon, la chaîne peut contenir la forme de chaîne de CLSID, contenue entre accolades, par exemple.., « {9DBAFCCF-592F-101B-85CE-00608CEC297B} ». Dans les deux cas, CreateControl convertit la chaîne à l'ID correspondante de la classepszWindowName
Pointeur vers le texte à afficher dans le contrôle. Définit la valeur de la légende ou de la propriété de texte du contrôle (le cas échéant). Si NULL, la légende du contrôle ou la propriété Text n'est pas modifié.dwStyle
Styles Windows. Les styles disponibles sont répertoriés sous les notes.rect
Spécifie la taille et la position du contrôle. Ce peut être un objet de CRect ou une structure de RECT .ppt
Les points à POINT structure ou l'objet d' CPoint qui contiennent le coin supérieur gauche du contrôle.pSize
Les points à TAILLE structure ou l'objet d' CSize qui contiennent la taille du contrôlepParentWnd
Spécifie la fenêtre du contrôle parent. Il ne doit pas être NULL.nID
Spécifie l'ID du contrôlepPersist
Un pointeur vers fichier C contenant l'état de persistance pour le contrôle. La valeur par défaut est NULL, indiquant que le contrôle s'initialise sans restaurer son état de toute mémoire persistant. Sinon NULL, il doit être un pointeur vers CFile- l'objet dérivé contenant les données persistantes du contrôle, sous la forme de flux ou de mémoire. Ces données peuvent avoir été enregistrées dans un lancement précédent du client. CFile peut contenir d'autres données, mais doit faire définir son pointeur lecture/écriture au premier octet de données persistantes au moment de l'appel à CreateControl.bStorage
Indique si les données dans pPersist doivent être interprétées comme données d'IStorage ou d'IStream. Si les données dans pPersist sont une mémoire, bStorage doit être TRUE. Si les données dans pPersist sont un flux, bStorage doit être FALSE. La valeur par défaut est FALSE.bstrLicKey
Données facultatives de licence. Ces données sont requises uniquement pour créer des contrôles qui requièrent une clé de licence utilisateur. Si le contrôle prend en charge l'attribution d'une licence, vous devez fournir une clé de licence pour la création du contrôle pour réussir. La valeur par défaut est NULL.clsid
Le seul ID de classe du contrôle.
Valeur de retour
Une valeur différente de zéro si l'opération a réussi ; sinon 0.
Notes
CreateControl est un analogue direct de la fonction de CWnd::Create , qui crée la fenêtre pour CWnd. CreateControl crée un contrôle ActiveX au lieu d'une fenêtre ordinaire.
Seul un sous-ensemble des balises d' dwStyle windows en charge pour CreateControl:
WS_VISIBLE crée une fenêtre qui est initialement visible. Obligatoire si vous souhaitez que le contrôle soit visible immédiatement, comme les fenêtres ordinaires.
WS_DISABLED crée une fenêtre qui est initialement désactivée. Une fenêtre désactivée ne peut pas recevoir l'entrée de l'utilisateur. Peut être défini si le contrôle a une propriété Enabled.
WS_BORDER crée une fenêtre avec une bordure épurée de. Peut être défini si le contrôle possède une propriété de BorderStyle.
WS_GROUP spécifie le premier contrôle d'un groupe de contrôles. L'utilisateur peut modifier le focus clavier d'un contrôle au groupe à la suivante à l'aide de les touches de direction. Tout contrôle défini avec le style de WS_GROUP après le premier contrôle appartiennent au même groupe. Le contrôle suivant avec le style de WS_GROUP termine le groupe et met démarrer le groupe.
WS_TABSTOP spécifie un contrôle pouvant recevoir le focus clavier lorsque l'utilisateur appuie sur la touche TAB. Appuyant sur les modifications de touche TAB le focus clavier au contrôle suivant du style de WS_TABSTOP .
Exemple
class CGenocx : public CWnd
{
protected:
DECLARE_DYNCREATE(CGenocx)
public:
CLSID const& GetClsid()
{
static CLSID const clsid
= { 0x20DD1B9E, 0x87C4, 0x11D1, { 0x8B, 0xE3, 0x0, 0x0, 0xF8, 0x75, 0x4D, 0xA1 } };
return clsid;
}
// This code is generated by the Control Wizard.
// It wraps the call to CreateControl in the call to Create.
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect, CWnd* pParentWnd, UINT nID,
CCreateContext* pContext = NULL)
{
UNREFERENCED_PARAMETER(pContext);
UNREFERENCED_PARAMETER(lpszClassName);
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
}
// remainder of class declaration omitted...
Configuration requise
Header: afxwin.h