次の方法で共有


CWnd::CreateControl

CWnd のオブジェクトによって MFC プログラムで 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
    この文字列は CIRC3.Circ3Ctrl.1」クラス」の「OLE 短い名前 (ProgID)、たとえば..、「含まれる場合があります。名前はコントロールに登録されている名前と一致する必要があります。また、文字列は、含まれるたとえば..、「{}」9DBAFCCF-592F-101B-85CE-00608CEC297B CLSIDの文字列のフォームを中かっこに含める場合があります。いずれの場合も、CreateControl は、対応するクラス ID に文字列を変換します

  • pszWindowName
    コントロールに表示するテキストへのポインター。コントロールのキャプションまたはテキスト プロパティの値を設定します (存在する場合)。null、コントロールのキャプションまたはテキスト プロパティを変更する。

  • dwStyle
    Windows のスタイル。使用できるスタイルは、"解説に表示されます。

  • rect
    コントロールのサイズと位置を指定します。これは CRect のオブジェクトまたは RECT の構造体のいずれかです。

  • ppt
    コントロールの左上隅を含む CPoint のオブジェクトまたは [ポイント] をポイントし、構成します。

  • pSize
    コントロールのサイズを含む CSize のオブジェクトまたは サイズ変更 をポイントし、構成します

  • pParentWnd
    コントロールの親ウィンドウを指定します。これは nullである必要があります。

  • nID
    コントロールのリソース id。

  • pPersist
    コントロールの永続的な状態を含む CFile へのポインター。既定では、コントロールを永続ストレージで状態を復元せずに、自身を初期化することを示す nullです。nullない場合は CFileへのポインター。コントロールの永続データを含む派生オブジェクトの場合、ストリームやストレージの形式で。このデータは、クライアントの前にアクティブ化に保存されている可能性があります。CFile そのほかのデータを含めることができますが、読み取り/書き込みポインターを CreateControlに呼び出し時の永続データの最初のバイトに設定されている必要があります。

  • bStorage
    pPersist のデータが IStorage または IStream のデータとして解釈する必要があるかどうかを示します。pPersist のデータ ストレージがの場合、bStorage は **[真]**必要があります。pPersist のデータ ストリームがの場合、bStorage は FALSE必要があります。既定値は FALSEです。

  • bstrLicKey
    省略可能なライセンス キー データ。このデータは、ランタイム ライセンス キーを必要とするコントロールを作成する場合にのみ必要です。コントロールがライセンス処理をサポートする場合、コントロールの作成に成功するライセンス キーを提供する必要があります。既定値は NULL です。

  • clsid
    コントロール固有のクラス ID。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

CreateControlCWndのウィンドウを作成する CWnd::Create の関数に対応しています。CreateControl は通常のウィンドウではなく、ActiveX コントロールを作成します。

Windows dwStyle のフラグのサブセットのみ CreateControlでサポートされています:

  • WS_VISIBLE は最初に表示するウィンドウを作成します。コントロールには表示されませんが、すぐに場合は、通常のウィンドウと同様に、必ず指定します。

  • WS_DISABLED は、最初に無効にするウィンドウを作成します。無効なウィンドウは、ユーザーから入力を受け取ることができません。コントロールが有効なプロパティを設定して設定できます。

  • WS_BORDER は薄型の境界線を表示するウィンドウを作成します。コントロールが BorderStyle のプロパティを設定して設定できます。

  • WS_GROUP は、コントロールのグループの最初のコントロールを指定します。ユーザーは方向キーを使用してグループの 1 種類のコントロールから次がキーボード フォーカスを変更できます。最初のコントロールの後に 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...

必要条件

ヘッダー: afxwin.h

参照

関連項目

CWnd クラス

階層図

概念

MFC ActiveX コントロール