注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

沙粒的博客

 
 
 

日志

 
 

ActiveX : lamp  

2015-01-07 11:44:10|  分类: ActiveX |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一、功能

1、用MFC ActiveX ControlWizard向导制作1个信号灯控件。

2、信号灯控件添加属性 BOOL fred ,控制信号灯显示红色;添加属性 BOOL fgreen ,控制信号灯显示绿色;

3、创建dialog 工程,添加2个信号灯控件,及控制信号灯显示红色、绿色的按键。

 

二、控件创建步骤

1MFC ActiveX ControlWizard向导创建控件名lamp,各步骤选择默认项

2、添加属性fred Type:BOOL implementation:Member variable;其功能为fred=true,信号灯显示红色;

3、添加属性fgreen Type:BOOL implementation:Member variable;其功能为fgreen=true,信号灯显示绿色;

4OnDraw函数代码:

void CLampCtrl::OnDraw(

                            CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)

{

         //定义 色画刷

         CBrush brush1(RGB(255,0,0));

         //定义 绿 色画刷

         CBrush brush2(RGB(0,0,255));

         //定义 色画刷

         CBrush brush3(RGB(170,170,170));

         //

         CBrush* poldbrush;

 

         //选择 red 画刷

         if(m_fred==true)

                   poldbrush=pdc->SelectObject(&brush1);

         //选择 green画刷

         if(m_fgreen==true)

                   poldbrush=pdc->SelectObject(&brush2);

         //选择 gray画刷

         if(m_fred==false && m_fgreen==false)

                   poldbrush=pdc->SelectObject(&brush3);

         //绘制圆

         pdc->Ellipse(rcBounds);

    //恢复系统默认 画刷

         pdc->SelectObject(poldbrush);

}

5OnFredChanged函数代码

void CLampCtrl::OnFredChanged()

{

         //重绘控件

         InvalidateControl();

 

         SetModifiedFlag();

}

 

6OnFgreenChanged函数代码

void CLampCtrl:: OnFgreenChanged ()

{

         //重绘控件

         InvalidateControl();

 

         SetModifiedFlag();

}

 

三、dialog工程创建步骤

1、创建基于dialog的工程temp

2、将创建的lamp控件添加到 controls 窗口中

3、添加2lamp控件到temp窗口;ID分别为IDC_LAMPCTRL1IDC_LAMPCTRL2

4、为控制lamp颜色,为每个lamp添加2个按键。为IDC_LAMPCTRL1添加按键IDIDC_red1IDC_green1。为IDC_LAMPCTRL2添加按键IDIDC_red2IDC_green2

5、为lamp控件关联变量,为IDC_LAMPCTRL1关联变量 m_lamp1category:control, variable type:Clamp. IDC_LAMPCTRL2关联变量 m_lamp2category:control, variable type:Clamp.

6、为4个按键添加响应函数,代码:

void CTempDlg::Onred1()

{

         m_lamp1.SetFgreen(false);

         m_lamp1.SetFred(true);

        

}

 

void CTempDlg::Ongreen1()

{

         m_lamp1.SetFred(false);

         m_lamp1.SetFgreen(true);

}

 

void CTempDlg::Onred2()

{

         m_lamp2.SetFgreen(false);

         m_lamp2.SetFred(true);

        

}

 

void CTempDlg::Ongreen2()

{

         m_lamp2.SetFred(false);

         m_lamp2.SetFgreen(true);

        

}

 

 

 

  评论这张
 
阅读(274)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017