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 “简称” (progid)对于选件类,也就是说..,“CIRC3.Circ3Ctrl.1”。 该名称需要与控件注册的相同的名称。 另外,该字符串可以包含 CLSID的字符串形式,包含在大括号,也就是说..,9DBAFCCF-592F-101B-85CE-00608CEC297B “{}”。 在任何情况下,CreateControl 将字符串转换为相应的选件类ID.

  • pszWindowName
    对于控件将显示文本的指针。 将控件的声明或文本属性的值(如果有)。 如果未发生更改 NULL、控件的说明或文本属性。

  • dwStyle
    Windows样式。 可用样式列表的"备注"下。

  • rect
    指定控件的大小和位置。 它可以是 CRect 对象或 RECT 结构。

  • ppt
    指向 POINT 包含控件的左上角的结构或 CPoint 对象。

  • pSize
    指向 范围 包含控件大小的结构或 CSize 对象

  • pParentWnd
    指定控件的父窗口。 不能为 NULL

  • nID
    指定控件的ID.

  • pPersist
    对包含控件的 C文件 的指针持久状态。 默认值为 NULL,这表明该控件初始化自身,而无需还原其从任何持久性存储区的状态。 如果不是 NULL,则应是指向 CFile-以流或存储的形式,包含控件的持久性数据的派生对象。 此数据在客户端以前的启动可能已保存。 CFile 包含其他数据,但是,必须将其读/写指针设置为第一个字节持久性数据在调用时将 CreateControl

  • bStorage
    指示是否应解释在 pPersist 的数据作为IStorage或IStream数据。 如果在 pPersist 的数据是存储,bStorage 应为 TRUE。 如果在 pPersist 的数据是流,bStorage 应为 FALSE。 默认值为 FALSE

  • bstrLicKey
    选项许可证密钥数据。 此数据。创建需要运行时许可证密钥的控件仅需要。 如果控件支持授权,必须为控件创建提供许可证密钥成功。 默认值为 NULL

  • clsid
    控件的唯一选件类ID。

返回值

非零,如果成功;否则为0。

备注

CreateControl 是一个直接模拟的 CWnd::Create 函数,创建 CWnd的窗口。 CreateControl 创建一个ActiveX控件而不是普通窗口。

Windows 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 控件