CWnd::CreateControl

使用這個成員函式會在 MFC 程式會以 CWnd 物件的 ActiveX 控制項。

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
);

參數

  • pszClass
    這個字串可以包含 OLE 「簡短名稱」(Programmatic ID,ProgID) 至類別,_._.也就是, 「CIRC3。Circ3Ctrl.1」。這個名稱必須符合控制項註冊的名稱相同。此外,字串可能包含 CLSID字串的表單,其中包含在括號中,_._.也就是, 「{0} 9DBAFCCF-592F-101B-85CE-00608 CEC297 B}」。在任何情況下, CreateControl 字串轉換成對應的類別 ID。.

  • pszWindowName
    要在控制項中顯示之文字的指標。設定控制項的標題文字或屬性的值 (如果有的話)。如果沒有變更 NULL、控制項的標題、文字屬性。

  • dwStyle
    視窗樣式。可用的樣式清單在註解中。

  • rect
    指定控制項的大小和位置。它可以是 CRect 物件或 的長度 結構。

  • ppt
    out 包含控制項左上角的 結構或 CPoint 物件。

  • pSize
    含有控制項的大小 大小 結構或 CSize 物件的點。

  • pParentWnd
    指定控制項的父視窗。不得為 NULL

  • nID
    指定控制項的 ID.

  • pPersist
    含有控制項的 C 檔案 的指標持續性 (Persistent) 狀態。預設值為,表示控制項 NULL初始化其本身,而不會還原其從所有持續性儲存體的狀態。如果不是 NULL,它應該是指向 CFile-以資料流或儲存的格式,其中是包含控制項的持續性資料的衍生物件。此資料儲存在用戶端上的啟動過程可能已儲存。CFile 包含其他資料,不過,必須將其讀取/寫入指標設定為第一個位元組持續性資料在呼叫時會 CreateControl

  • bStorage
    指示是否應該將 pPersist 的資料。IStorage 或 IStream 資料。如果在 pPersist 的資料是儲存區, bStorage 應該是 。如果在 pPersist 資料為資料流, bStorage 應該是 。預設值為

  • bstrLicKey
    選擇性授權金鑰資料。這項資料來建立需要的執行階段授權識別碼的控制項只需要。如果控制項支援授權,您必須為控制項建立提供授權識別碼成功。預設值為 NULL

  • clsid
    控制項的唯一的類別 ID。

傳回值

如果不是零,則成功,則為 0。

備註

CreateControlCWnd::Create 函式的直接類比,建立 CWnd的視窗。CreateControl 建立 ActiveX 控制項而不是泛型的視窗。

視窗 dwStyle 旗標的子集。 CreateControl支援:

  • WS_VISIBLE 建立一開始都是可見的視窗。必要項,如果您要立即是可見的控制項,像一般的視窗。

  • WS_DISABLED 建立初始停用的視窗。已停用的視窗不能接收使用者的輸入。如果控制項有啟用屬性,可將設定為。

  • WS_BORDER 建立具有儲存線條框線的視窗。如果控制項有 BorderStyle 屬性,可將設定為。

  • WS_GROUP 指定控制項群組的第一個控制項。您可以使用方向鍵,在使用者群組方式從一個控制項將鍵盤焦點變更到下一個。所有控制項定義為 WS_GROUP 樣式在第一個控制項之後屬於相同群組。使用 WS_GROUP 樣式的下一個控制項的結束群組並開始下一個群組。

  • WS_TABSTOP 指定可接收鍵盤焦點的控制項,當使用者按下 TAB 鍵。按下 TAB 鍵會將鍵盤焦點變更到 WS_TABSTOP 樣式的下一個控制項。

範例

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...

需求

Header: afxwin.h

請參閱

參考

CWnd 類別

階層架構圖

概念

MFC ActiveX 控制項