MFC动态添加控件及响应函数

时间:2019-05-14 02:45:49下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《MFC动态添加控件及响应函数》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《MFC动态添加控件及响应函数》。

第一篇:MFC动态添加控件及响应函数

MFC动态添加控件及响应函数

应该注意:控件也是一个窗口。在添加控件的时候空间变量最好是全部变量或者是局部指针变量,这样即使函数结束也不会造成变量被销毁。下面以动态添加按钮为例的代码:  CButton *pButton = new CButton;//一定要New CButton,否则程序会运行出错 pButton->Create(“New Button”, WS_CHILD|BS_DEFPUSHBUTTON, CRect(0, 0, 100,50), this, 123);

 pButton->ShowWindow(SW_SHOW);

或者是如下代码:

 CButton *pButton = new CButton;//一定要New CButton,否则程序会运行出错 pButton->Create(“New Button”, WS_CHILD|BS_DEFPUSHBUTTON|WS_VISIBLE, CRect(0, 0, 100, 50), this, 123);

根据MFC的消息映射机制,应该更改三处代码。

(1)在头文件中修改代码

 在protected的注释宏中间添加函数声明:

 protected:

 //{{AFX_MSG(CDemoMDIView)

 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

 afx_msg void OnNewButton(void);

 //}}AFX_MSG

(2)在cpp文件中添加消息声明

 BEGIN_MESSAGE_MAP(CDemoMDIView, CView)

 //{{AFX_MSG_MAP(CDemoMDIView)

 ON_WM_CREATE()

 //}}AFX_MSG_MAP

 // Standard printing commands

 ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)

 ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)

 ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) //参数依次为控件ID、响应函数名称

 ON_BN_CLICKED(123, OnNewButton)

 END_MESSAGE_MAP()

(3)在cpp文件中添加函数代码

 voidCDemoMDIView::OnNewButton(void)

 {

 MessageBox(“This is a new button!nThis Function Handler was added manually!”); }

第二篇:MFC控件关联变量小结

MFC控件关联变量总结

通常在要绑定变量的编辑框控件上右键添加变量就可以。

绑定变量分value和control两种,value是赋值用的,control是控制用的。对于编辑框的赋值,共分几种方法 1.不用绑定变量的方法

GetDlgItem(IDC_EDIT1)->GetWindowText(变量); 如果是数组->GetWindowText(数组名,长度)GetDlgItem(IDC_EDIT1)->SetWindowText(变量); 2.绑的是value型变量 一共3处

<1处>project1Dlg.h : 头文件 class Cproject1Dlg : public CDialog { // 构造 public: Cproject1Dlg(CWnd* pParent = NULL);// 标准构造函数

// 对话框数据

enum { IDD = IDD_PROJECT1_DIALOG };protected: virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV 支持

// 实现 protected: HICON m_hIcon;// 生成的消息映射函数 virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public: afx_msg void OnBnClickedOk();CString edit1;//定义了该变量 CString edit2;CEdit edit3;CEdit edit4;CString edit5;};<2处> project1Dlg.cpp : 实现文件

Cproject1Dlg::Cproject1Dlg(CWnd* pParent): CDialog(Cproject1Dlg::IDD, pParent), edit1(_T(“")), edit2(_T(”“)), edit5(_T(”")){ m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}

参数列表跟了edit1 <3处> project1Dlg.cpp : 实现文件

void Cproject1Dlg::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT1, edit1);DDX_Text(pDX, IDC_EDIT2, edit2);DDX_Control(pDX, IDC_EDIT3, edit3);DDX_Control(pDX, IDC_EDIT4, edit4);DDX_Text(pDX, IDC_EDIT5, edit5);}

DDX_Text(pDX, IDC_EDIT1, edit1);变量与控件关联

通过调用 UpdateData(TRUE)UpdateData(FALSE)将控件数据取到变量或将变量数据显到控件 如果 变量赋值语句写在对话框构造函数里,则UpdateData(FALSE)可省略,会被自动调用

3.绑的是control型变量 代码与上方一样,看edit3 但只有两处涉及 CEdit edit3;DDX_Control(pDX, IDC_EDIT3, edit3);程序里只需要 edit3.GetWindowText(变量);edit3.SetWindowText(变量);就可以用了

除了赋值,还能干很多事情.

第三篇:Visual C++ 2010 MFC ActiveX 控件小结[推荐]

一、ActiveX控件

ActiveX控件是基于组件对象模型COM--Components Object Modem的可重用软件组件,旨在用于普通的ActiveX控件容器和Internet上的网页,这里介绍用MFC创建ActiveX控件。一个典型的ActiveX控件,具有方法、属性、事件这三种特性。

二、ActiveX控件的测试与注册

1、使用ActiveX控件测试容器对控件进行测试

对于VC6.0,安装CommonTools目录下的TSTCON32.EXE即可使用。

而vs2010中的TSTCON(ActiveX Control Test Container)工具非自动安装,而是作为一个例程提供。所以应找到该例程,并编译: 如vs2010安装在默认路径则

1, 进入:C:Program FilesMicrosoft Visual Studio 10.0Samples1033,可找到VC2010Samples.zip文件,2, 将其解决到同一个文件夹,解压后将出现一个C++子文件夹。

3, TstCon例程在:C:Program FilesMicrosoft Visual Studio 10.0Samples1033C++MFColeTstCon,双击其中的.sln文件启动工程,直接编译,4, 编译后在Debug子文件夹中将出现一个TstCon.exe文件,将其复制到:C:Program FilesMicrosoft Visual Studio 10.0Common7Tools文件夹。

5, 在vs2010中的Tools菜单点击“External Tools...”,出现如下对话框,点击“Add”添加一项工具。6, 新工具项的“Title”为:ActiveX Control Test Container,“Command” 为:C:Program FilesMicrosoft Visual Studio 10.0Common7Tools TstCon.exe。

7, 确认退出对话框,Tools菜单将出现“ActiveX Control Test Container”菜单项。Visual C++ 2010 MFC ActiveX 控件小结Captain栋蝈 打开控件测试容器初始界面如下图

Visual C++ 2010 MFC ActiveX 控件小结Captain栋蝈 Edit→Insert New Control→选择要测试的控件→OK

2、ActiveX控件的注册与删除

所有的ActiveX控件必须在注册之后才能使用,实际上在VS2010开发环境中生成控件程序时,就已经通过regsvr32程序注册了该控件;如果要删除ActiveX控件的注册信息,利用regsvr32程序的/u选项来完成。通常可以选择“开始”→“运行”命令,然后输入“regsvr32/u”,再在其后输入要删除的ActiveX控件的完整路径。Tips:在“运行”中先输入regsvr32/u,然后拖动要删除的控件到“regsvr32/u”之后,即可获取其完整路径。

将xxx.ocx文件拷贝至Windowssystem下,然后regsvr xxx.ocx即注册;regsvr32/u xxx.ocx即删除。

三、ActiveX控件开发完整过程 经典Clock控件案例~~

1、创建工程

创建MFC ActiveX Control类项目,命名为Clock,MFC ActiveX Control Wizard全选默认,Finish。

2、时钟控件的实现

获取当前系统时间,CClockCtrl类的OnDraw函数中 CTime time=CTime::GetCurrentTime();CString str=time.Format(“%H:%M:%S”);pdc->TextOut(0,0,str);动态显示时间,CClockCtrl类添加WM_CREATE和WM_TIMER消息及处理函数 设置定时器SetTimer(1,1000.NULL);定时器相应函数InvalidateControl();//其实就是调用OnDraw函数

编译并运行ActiveX控件,然后打开ActiveX控件容器中插入该控件,可以看到动态显示的时间

3、属性 3.1标准属性

以背景色和前景色为例,类视图中展开Lib结尾的选项,右键“_DClock”→“添加”→“属性”,然后添加标准属性,及选中“Stock”,在PropertyName中选则BackColor,其余选中默认,单击完成。同理添加前景色ForeColor。

为属性对话框添加“颜色”选项卡,修改类CClockCtrl.cpp中的属性页映射宏PROPPAGEID(CLSID_CColorPropPage);切记计数参数要增加1: // 属性页

// TODO: 按需要添加更多属性页。请记住增加计数!BEGIN_PROPPAGEIDS(CClockCtrl, 2)

PROPPAGEID(CTimePropPage::guid)

PROPPAGEID(CLSID_CColorPropPage);END_PROPPAGEIDS(CClockCtrl)然后在修改OnDraw函数使控件颜色根据颜色选项卡的选则而变化:

CBrush brush(TranslateColor(GetBackColor()));

pdc->FillRect(rcBounds,&brush);

pdc->SetBkMode(TRANSPARENT);

pdc->SetTextColor(TranslateColor(GetForeColor()));3.2自定义属性

添加一个自定义属性:时间间隔(UpdateInterval),用于设置更新时间的间隔。

与标准属性添加相同,在添加属性向导中,在PropertyName中输入UpdateInterval,类型设置为SHORT。可以看到向导自动添加了通知函数OnUpdateIntervalChange(),单击Finish完成添加。void CClockCtrl::OnUpdateIntervalChanged(void){

AFX_MANAGE_STATE(AfxGetStaticModuleState());

// TODO: 在此添加属性处理程序代码

if(m_UpdateInterval<1000 || m_UpdateInterval>6000)

{

//解决输入值不合要求的问题

m_UpdateInterval=1000;

}

else

{

//解决输入值不是整数的问题

m_UpdateInterval=m_UpdateInterval/1000*1000;

}

KillTimer(1);

SetTimer(1,m_UpdateInterval,NULL);

SetModifiedFlag();} 关联某控件变量,需要手动添加:

DDP_Text(pDX, IDC_EDIT1, m_updateInterval,_T(“Interval”));DDX_Text(pDX, IDC_EDIT1, m_updateInterval);DDP_PostProcessing(pDX);DDP、DDX、PostProcessing,顺序不可以调整

为测试自定义属性,在Edit→Insert New Control→选择要测试的控件后,选择Control→Invoke Methods,如果想要获取,某个属性值,则选择PropGet;如果设置,则选PropPut。这里选择后者,然后输入2000,单击SetValue,在单击【Invoke】按钮,发现控件时间每个2S更新一次。

4、方法

与添加属性一样,_DClock右键......选择“方法”,这里添加一个简单的“Hello” 代码:

void CClockCtrl::Hello(void){

AFX_MANAGE_STATE(AfxGetStaticModuleState());

// TODO: 在此添加调度处理程序代码

MessageBox(_T(“Hello world”));} 测试时Control→Invoke Methods,选择“Hello”

5、事件

5.1添加标准事件

右键CClockCtrl类(类视图CxxxCtrl上点击右键才能添加事件,而在_DxxxEvents接口上点击右键则没有添加事件),添加“事件”,显示添加事件向导对话框,“Event Name”下拉列表框中选择”Click“,单击Finish。5.2添加自定义事件

添加一个NewMinute事件,实现新的一分钟时有提示 Event Name中输入NewMinute,然后Finish。在InDraw函数中获取系统时间代码后添加 if(time.GetSecond()==0)

{

NewMinute();//判断是否过了一分钟,是则触发NewMinute事件

}

6、调用ActiveX控件

新建一个名为ClockTest的对话框,在对话框上右键,选择”Insert ActiveX Control“,找到Clock控件添加即可。

或者是,”工具“→”选择工具箱选项“→”COM Components“,选择要插入的控件,单击OK。

第四篇:严厉打击食品非法添加和滥用食品添加剂专项行动工作动态(三十一)

严厉打击食品非法添加和滥用食品添加剂专项行动

工 作 动 态

(第三十一期)

XXX食品安全委员会办公室 二OXX年十二月XX日

XX县开展严厉打击食品非法 添加和滥用食品添加剂专项行动工作

为进一步加强食品安全管理工作,落实XX市食品安全委员会办公室转发《XX省食品安全委员会办公室关于落实国务院食品安全督查工作意见的通知》(XX安办[2011]28号)文件精神,XX县食品安全委员会办公室下发关于转发《XX省食品安全委员会办公室关于落实国务院食品安全督查工作意见的通知》的通知(XX食安办〔2011〕23号),要求各有关部门按照食品安全工作目标考核方案的要求,于12月XX日前完成市对县食品安全工作目标考核准备。

一、本周工作开展情况

(一)农业部门组织县级兽药GSP检查员成立检查验收组对我县两家申请兽药GSP检查验收兽药经销企业的软、硬件设施等进行初步检查。检查验收结束后,验收组对各企业软、硬件方面存在的不足分别提出整改意见。

(二)工商部门出动执法人员对辖区内19户销售运动饮料、果汁、茶饮料等食品和饮品店所使用的果浆果酱类、粉状胶体等食品添加剂的销售和使用情况进行了检查,重点对县城内各大超市、饮品店、批发部进行了检查。检查中未发现有被污染的食品和违规销售和使用食品添加剂的情况。

检查中执法人员要求经营户进一步完善进货查验制度、进销货台帐和索证索票制度,保障食品安全。

(三)食药监部门结合餐饮服务、保健食品、可用于食品和饲料加工的药品监管工作实际,积极组织执法力量针对我县餐饮服务企业、食品经营企业继续加强打击食品非法添加和滥用食品添加剂专项整治行动力度。

本周出动执法车辆 6台次,执法人员92人次,对23家餐饮服务企业和食品经营企业进行了严格检查,检查中未发现有食品非法添加和滥用食品添加剂的行为。

(四)质监部门组织执法人员8人次、车辆2台次开展食品安全巡查工作,本周巡查了2家,检查中未发现有非法添加和使用地沟油进行生产等违法行为。

本周各部门共出动执法人员180人次,执法车辆17台次,检查种养殖、生产加工、食品流通、餐饮服务等经营单位50余户次,检查中未发现有非法添加和滥用食品添加剂现象。

二、下一步工作打算

(一)根据专项整治要求,继续深入开展严厉打击非法添加和滥用食品添加剂专项整治行动宣传力度,形成消费者参与、食品生产经营者自律、监管部门履职的长效监管机制。

(二)进一步加强地沟油专项整治工作力度,加强餐饮等食品生产经营单位使用油脂的管理,保障人们群众饮食安全。

(三)加大食品安全法律法规宣传,教育生产经营者学法、懂法、守法,依法经营,诚实守信。教育广大消费者了解法律法规,提高维权意识。鼓励其运用法律、行政等手段,维护自己的合法权益。

(四)做好打击非法添加和滥用食品添加剂专项整治工作,是党和人民交给我们的一项光荣而又艰巨的任务,我们将扎实工作,确保人民群众的健康平安。

报:县政府办、市食安办 电子文档报出

下载MFC动态添加控件及响应函数word格式文档
下载MFC动态添加控件及响应函数.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐