CWnd::CreateControl
Utilizzare questa funzione membro per creare un controllo ActiveX che verrà rappresentato nel programma MFC da un oggetto 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
);
Parametri
pszClass
Questa stringa può contenere OLE "nome breve" (ProgID) per la classe, ad esempio.., "CIRC3.Circ3Ctrl.1". Le necessità di nome corrisponda allo stesso nome registrato dal controllo. In alternativa, la stringa può contenere il formato della stringa CLSID, contenuto in parentesi graffe, ad..esempio, "{9DBAFCCF-592F-101B-85CE-00608CEC297B}". In entrambi i casi, CreateControl converte la stringa all'identificazione corrispondente della classepszWindowName
Un puntatore al testo da visualizzare nel controllo. Imposta il valore della barra del titolo o della proprietà Text del controllo (se presente). Se NULL, la barra del titolo del controllo o la proprietà Text non viene modificato.dwStyle
Stili di Windows. Gli stili disponibili sono elencati in commenti.rect
Specifica la dimensione e la posizione del controllo. Può essere un oggetto CRect o una struttura RECT.ppt
I punti su QUESTION struttura o all'oggetto CPoint che contengono l'angolo superiore sinistro del controllo.pSize
I punti su DIMENSIONE struttura o all'oggetto CSize che contengono le dimensioni del controllopParentWnd
Specifica la finestra padre del controllo. Non deve essere NULL.nID
Specifica l'id del controllopPersist
Un puntatore a file C che contiene lo stato persistente per il controllo. Il valore predefinito è NULL, per indicare che il controllo viene inizializzato senza ripristinare lo stato da qualsiasi archivio permanente. Se non NULL, deve essere un puntatore a CFileoggetto derivato da che contiene dati persistenti del controllo, sotto forma di flusso o di archiviazione. Questi dati possono essere salvati di attivazione precedente del client. CFile può contenere altri dati, ma deve l'impostazione puntatore di lettura e scrittura al primo byte di dati persistenti al momento della chiamata a CreateControl.bStorage
Indica se i dati in pPersist devono essere interpretati come dati di IStream o di IStorage. Se i dati in pPersist sono un'archiviazione, bStorage deve essere TRUE. Se i dati in pPersist sono un flusso, bStorage deve essere FALSE. Il valore predefinito è FALSE.bstrLicKey
Dati facoltativi il codice di licenza. Di questi dati sono necessarie solo per creare controlli che richiedono una chiave di licenza runtime. Se il controllo supporta la licenza, è necessario specificare un codice di licenza per la creazione del controllo per gestire. Il valore predefinito è NULL.clsid
ID univoco della classe del controllo.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Note
CreateControl è un valore diretto della funzione CWnd::Create, che crea la finestra per CWnd. CreateControl crea un controllo ActiveX invece di una finestra comune.
Solo un sottoinsieme dei flag di Windows dwStyle è supportato per CreateControl:
WS_VISIBLE crea una finestra che inizialmente è visibile. Obbligatorio se si desidera che il controllo sia visibile immediatamente, come le normali finestre.
WS_DISABLED crea una finestra che inizialmente è disabilitata. Una finestra disattivata non può ricevere l'input dall'utente. È possibile impostare se il controllo ha una proprietà attivata.
WS_BORDER crea una finestra con un bordo di sottile- riga. È possibile impostare se il controllo ha una proprietà di BorderStyle.
WS_GROUP specifica il primo controllo di un gruppo di controlli. L'utente può modificare lo stato attivo da un controllo nel gruppo a l utilizzando i tasti di direzione. Tutti i controlli definiti con lo stile WS_GROUP dopo il primo controllo appartengono allo stesso gruppo. Il controllo successivo alla fine dello stile WS_GROUP il gruppo e avvia il gruppo successivo.
WS_TABSTOP specifica di un controllo che può ricevere lo stato attivo quando l'utente preme il tasto TAB. Premere le modifiche di tasto TAB lo stato attivo al controllo successivo dello stile WS_TABSTOP.
Esempio
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...
Requisiti
Header: afxwin.h