IVBGetControl::EnumControls 方法 (vbinterf.h)

枚举窗体上的控件。

注意 不建议再使用此方法,因为 Visual Basic 以外的容器不支持此方法。
 

语法

HRESULT EnumControls(
  [in]  DWORD         dwOleContF,
  [in]  DWORD         dwWhich,
  [out] LPENUMUNKNOWN *ppenumUnk
);

参数

[in] dwOleContF

指定要枚举的 OLE 对象的类型。 此参数可以是 OLECONTF 枚举枚举的下列值之一。

含义
OLECONTF_EMBEDDINGS
枚举窗体上的嵌入对象。 包括此标志以枚举 OLE 控件。
OLECONTF_LINKS
枚举窗体上的链接对象。
OLECONTF_OTHER
枚举所有伪 OLE 对象。 包括此标志以枚举 VBX 控件。
OLECONTF_ONLYUSER
仅枚举用户知道的对象。
OLECONTF_ONLYIFRUNNING
仅枚举窗体上运行的对象。
 

枚举 OLE 控件时,建议将标志 OLECONTF_ONLYUSEROLECONTF_ONLYIFRUNNING和OLECONTF_EMBEDDINGS组合在 一起。 若要同时包含 OLE 控件和 VBX 控件,请将 OLECONTF_OTHERS 标志添加到此列表。 若要仅枚举 VBX 控件,请删除 OLECONTF_EMBEDDINGS 标志并包含 OLECONTF_OTHERS 标志。

[in] dwWhich

指定要枚举的控件集。 此参数的取值可为下列值之一:

含义
GCW_WCH_SIBLING
0x00000001
枚举控件的所有同级。
GC_WCH_CONTAINER
0x00000002
枚举控件的父级的所有对象。 不能将 GC_WCH_FONLYAFTERGC_WCH_FONLYBEFORE 标志用于此标志。
GC_WCH_CONTAINED
0x00000003
枚举属于控件子级的所有对象。 不能将 GC_WCH_FONLYAFTERGC_WCH_FONLYBEFORE 标志用于此标志。
GC_WCH_ALL
0x00000004
枚举所有对象。
GC_WCH_FREVERSEDIR
0x08000000
枚举和组织反向 Tab 键顺序方向的控件。 此标志可以与其他任何标志组合使用。
GC_WCH_FONLYAFTER
0x10000000
枚举按 Tab 键顺序显示在控件之后的所有控件。
GC_WCH_FONLYBEFORE
0x20000000
枚举按 Tab 键顺序显示在控件之前的所有控件。
GC_WCH_FSELECTED
0x40000000
枚举当前选择的所有控件。
 

将其中一个标志 GC_WCH_SIBLINGGC_WCH_CONTAINERGC_WCH_CONTAINEDGC_WCH_ALL 与任何GC_WCH_Fxxx 标志结合使用。

在 VBX 代码中,GC_FORM标志传递给 VBGetControl 以获取指向窗体的指针。 在 OLE 控制代码中,没有直接替换此标志。 而是将 GC_WHC_ALL 传递到 EnumControls ,并使用指向枚举中第一个控件的指针。 使用 GC_WHC_ALL 时,枚举中的第一个控件始终是窗体。

[out] ppenumUnk

指向 OLE 对象的枚举的指针。

返回值

此方法支持标准返回值 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTED,以及以下内容:

注解

将 VBX 控件迁移到 OLE 控件时, EnumControls 将替换不再受支持的 Visual Basic VBGetControl

要求

   
目标平台 Windows
标头 vbinterf.h

另请参阅

IVBGetControl

OLECONTF