C++ 中的 VB 事件






1.78/5 (9投票s)
2003年6月8日
2分钟阅读

68293
如何在 C++ 中使用 Visual Basic ActiveX 控件的事件
本文将逐步引导你如何在C++中使用VB ActiveX控件的事件...
引言
步骤1: 设置工程
启动 Microsoft Visual C++ 并创建一个新的 MFC AppWizard(exe) 工程,命名为 vbEvents。设置类型为多文档。持续点击“下一步”直到到达第 6 步(共 6 步)。在列表框中,点击 CVbEventsView
并将基类更改为 CFormView
,然后点击“完成”和“确定”。
步骤2: 添加 ActiveX 控件 (第一部分)
在菜单栏中,转到“项目” -> “添加到项目” -> “组件和控件”。在框中点击“注册的 ActiveX 控件”,并选择你要添加的任何控件。在本例中,我们将使用 Microsoft FlexGrid
Control, version 6.0。点击“确定”,并只勾选第一个框(本例中我们不需要其他选项)。然后点击“确定”。然后关闭“添加组件和控件”窗口。
步骤2: 添加 ActiveX 控件 (第二部分)
转到资源视图,然后转到“对话框”并打开 IDD_VBEVENTS_FORM
。删除文本框并添加 Microsoft Flexigrid
控件,将其大小调整到各个方向的蓝线。按 Ctrl-w 以调出类向导并转到“成员变量”选项卡。在下拉框中,选择 CVbEventsView
,点击“添加变量”并将变量命名为 m_grid
,保持其他设置不变,然后点击“确定”。你应该能够编译你的工程并在窗口中看到 ActiveX 控件。
步骤3: 分配事件
打开类向导,并点击“消息映射”选项卡。在“类名”框中,选择 CVbEventsView
,在“对象 ID”中,选择 IDC_MSFLEXGRID1
。然后在“消息”中,选择你想要的事件(在本例中是“Click”),然后点击“确定”。
在 CVbEventsView::OnClickMsflexgrid1()
函数中,添加
MessageBox("Grid:Clicked");
然后编译你的代码,并在点击时观察事件。
步骤4: 清理
在 vbEventsView.h 和 vbEventsView.cpp 的顶部,添加
#define CFormView CView
从 CVbEventsView.cpp 中删除第 68 行。
ResizeParentToFit();
此外,你需要在第 35 行找到这个。
CVbEventsView::CVbEventsView() : CView(CVbEventsView::IDD)
并移除
: CView(CVbEventsView::IDD)
另外,右键单击 CVbEventView
并点击“添加虚函数”。然后点击 Draw()
,然后点击“添加”。右键单击 CVbEventView
并点击“添加 Windows 消息处理程序”。在列表框中,点击 CVbEventView
并选择 WM_CREATE
,点击“添加并编辑”。
在 CVbEventView:OnCreate
中,添加
RECT rect; rect.top = rect.left = 0; rect.right=rect.bottom = 50; m_grid.Create("CMSFlexGrid", "Grid", WS_CHILDWINDOW, rect, this,IDC_MSFLEXGRID1); m_grid.ShowWindow(SW_SHOW);
右键单击 CVbEventView
并点击“添加 Windows 消息处理程序”。在列表框中,点击 CVbEventView
并选择 WM_SIZE
,点击“添加并编辑”。在 CVbEventView:OnSize
中添加,
m_grid.SetWindowPos(NULL,0,0,cx,cy,SWP_NOZORDER );
就这样。此方法可以修改用于其他 Activex 控件或不同的事件。