65.9K
CodeProject 正在变化。 阅读更多。
Home

C++ 中的 VB 事件

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.78/5 (9投票s)

2003年6月8日

2分钟阅读

viewsIcon

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.hvbEventsView.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 控件或不同的事件。

© . All rights reserved.