VC中怎样添加activeX控件

VC中怎样添加activeX控件,第1张

使用AppWizard建立一个ActiveX控件工程。

请按如下步骤生成该控件:

1.在文件菜单中选择新建

2.在工程选项卡中选择MFC ActiveX Control Wizard

3.工程命名为Plot,然后确定进入下一步。

4.在“Step 1 of 2 ”对话框中接受默认选择,进入下一步。

5.在“Step 2of 2 ”对话框中的Which window class, if any, should this control subclass?下拉框中选择STATIC,用途使用它来显示数 据。

6.选择“Advanced”按钮,在“Flicker free activation (无闪烁)”前面打钩。

7.点击“Finish”按钮后,AppWizard会建立以下类:

CPlotApp类:派生于COleControlModule的程序类。COleControlModule是派生一个OLE模块对象的基类,此类为控件的初始化 (InitInstance) 与销毁(ExitInstance)提供成员函数

CPlotCtrl类:派生于COleControl的类。为控件提供的功能函数最多,故大部分代码添加与此。

CPlotPropPage类:派生于COlePropertyPage的类。此类用与管理控件的属性页,同时也有相应的对话框资源来为控件提供属性页。

2。添加“固有的”属性。

单文档不能像对话框一样用鼠标拖控件来添加控件

要在单文档中添加控件要用代码实现,函数用Create.

举个例子:添加一个按钮控件

1.在View类的头文件中定义个ID号:

#define

IDC_DYNAMICBUTTON

1001

2.加入成员变量

public:

CButton

m_button

3.在OnCreate函数加创建按钮和列表框

int

CStyleView::OnCreate(LPCREATESTRUCT

lpCreateStruct)

{

....

//

TODO:

Add

your

specialized

creation

code

here

//创建按钮

m_button.Create(

//按钮标题

"i

am

a

dynimic

button",

//按钮风格

WS_CHILD|WS_VISIBLE|WS_BORDER,

//按钮大小

CRect(300,40,500,80),

//按钮父指针

this,

//该按钮对应的ID号

IDC_DYNAMICBUTTON)

....

}

4.添加处理函数

//{{AFX_MSG(..)

afx_msg

void

OnClickButton()

//按钮消息处理函数

//}}AFX_MSG

BEGIN_MESSAGE_MAP(...)

ON_BN_CLICKED(IDC_DYNAMICBUTTON,OnClickButton)

//按钮ON_BN_CLICKED消息的处理函数OnClickButton

//}}AFX_MSG_MAP

//现在就可以给这个按钮添加你要实现功能的代码了

void

CStyleView::OnClickButton()

{

AfxMessageBox("按钮被点到了!")

}

第一种方法:

定义一个CButton类的对象btn。在MainFrm.h里定义一个private:类型的CButton btn

在int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)函数的return 0;前边加上btn.Create("按钮显示的名称",WS_CHILD|WS_VISIBLE,CRect(0,0,100,40),this,123)

注意:(1)btn不能放在OnCreate里,否则OnCreate的生命期结束了,就析构了btn了。(2)btn.Create里的第二个参数或上了一个WS_VISIBLE就不用调用btn.ShowWindow(SW_SHOWNORMAL)了。否则需要显示调用ShowWindow。(3)第四个参数之所以可以是this指针,因为它是指向对象,是从CWnd派生出来的,所以匹配。第五个参数随便制定,为int就好。

第二种方法:

在CLesson3View类上右键Add Member Viarable。也可以在Lesson3View.h里添加private:类型的 CButton btn注意不是在MainFrm.h

在CLesson3View类上右键选择Add Windows Message Handlers,在New Windows Message/events:里选择WM_CREATE,选择Add Handler,点Edit Existing,看到多了一个Oncreate,在return 0前加代码btn.Create("按钮显示的名称",WS_CHILD|WS_VISIBLE,CRect(0,0,100,40),this,123)即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11376509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存