如何在ActiveX控件中使用字体1

如何在ActiveX控件中使用字体

时间:2008-02-26 来源:网络/责编:编程入门 作者:韩耀旭
<script src="js1/468.js"></script>
<script src="js1/300.js"></script> <script type="text/javascript"></script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>

  字体的使用是ActiveX控件制作过程中不可缺少的部分。本文将深入浅出地介绍在ActiveX控件中制作过程中如何使用字体。本文所提及的ActiveX控件制作是指利用VC++6.0的MFC ActiveX ControlWizard 工具,用其它方法制作 ActiveX 控件本文不作讨论。

  本文专门设置了一些例程,以便您能够更好地掌握这些内容。这些例程都是完整的ActiveX控件制作源代码。为了突出重点,本文仅对字体使用相关部分的源代码作较详细的介绍,其余部分的代码本文不作过多讨论。字体作为一种属性在ActiveX控件中使用,与其它属性没有区别,同样分为库存属性和自定义属性,本文将分四个部分进行介绍。

  • 第一部分 在控件中使用库存字体(Stock Font)属性
  • 第二部分 在控件中使用自定义的字体(Custom Font)属性
  • 第三部分 使用多种字体
  • 第四部分 优化代码,合理地使用多种字体

  第一部分 在控件中使用库存字体(Stock Font)属性

  使用ClassWizard 添加 Font库存属性的步骤:

  1. 打开控件工程, 单击View菜单的ClassWizard打开ClassWizard;
  2. 单击Automation标签;
  3. 在Class Name框,选择你的控件类名;
  4. 单击Add Property;
  5. 在 External name框, 单击Font;
  6. 单击 OK;
  7. 单击 OK确认你的选择并关闭 ClassWizard;

  ClassWizard将在控件类的执行文件的dispatch映射表中加入下列行:

DISP_STOCKPROP_FONT()

  另外, ClassWizard 在.ODL 文件中加入下列行:

[id(DISPID_FONT), bindable] IFontDisp* Font;

  例程1:Label.ocx

  下面,我们举一个具体的实例详细演示如何在控件中添加Font库存属性。您可以下载该例程进行编译生成 .ocx 控件,并测试该控件。

  我们将要制作的控件取名Label.ocx,模仿VB工具箱中的Label控件。该控件增强了VC++工具箱中的Static Text控件的有限的功能,您可以方便地在您的工程中使用。例程的工程名也取名为Label。

  创建Label工程

  打开Visual C++ 6.0,单击File菜单的New,弹出New对话框。在对话框中选择MFC ActiveX ControlWizard,并输入工程名Label,单击OK按钮,关闭该对话框并弹出MFC ActiveX ControlWizard-Step 1 of 2对话框。如图1-1。

接受MFC ActiveX ControlWizard-Step 1 of 2对话框所有默认设置,单击Next按钮,关闭该窗口同时弹出MFC ActiveX ControlWizard-Step 2 of 2对话框。继续接受MFC ActiveX ControlWizard-Step 2 of 2对话框所有默认设置,单击Finish按钮。

  继续单击OK 按钮,Label工程创建完成,我们将继续对该工程进行修改。使用ClassWizard 给控件增加库存属性Caption,BackColor,ForeColor,Font。

  1. 单击View菜单的ClassWizard打开 ClassWizard;
  2. 单击Automation标签;
  3. Class Name下拉列表框选择CLabelCtrl,单击 Add Property;
  4. 在External name框中,单击Caption;
  5. 单击OK;
  6. 单击OK确认你的选择并关闭ClassWizard;

  我们已经给控件增加了库存属性Caption,该属性用以设置Label控件的文本内容。按上述同样操作,依次添加库存属性BackColor,ForeColor,Font。这3个属性分别用以设置Label控件的背景色,前景色以及字体的属性。如图1-2。

添加颜色属性页和字体属性页

  打开工程的LabelCtl.cpp文件,将其中的如下代码进行修改:

BEGIN_PROPPAGEIDS(CLabelCtrl, 1)
PROPPAGEID(CLabelPropPage::guid)
END_PROPPAGEIDS(CLabelCtrl)

修改后的代码:BEGIN_PROPPAGEIDS(CLabelCtrl, 3) // 具体个数由实际情况而定
PROPPAGEID(CLabelPropPage::guid)//系统自带的属性页
PROPPAGEID(CLSID_CColorPropPage) //加入Color属性页
PROPPAGEID(CLSID_CFontPropPage) //加入Font属性页
END_PROPPAGEIDS(CLabelCtrl)

  修改系统自带的属性页

  打开系统自带的属性页资源IDD_PROPPAGE_LABEL,将静态文本框IDC_STATIC的内容改为"Caption:",添加一个编辑框(Edit Box)控件,控件ID为IDC_CAPTION。如图1-3

图1-3

  按下"Ctrl+W"组合键打开ClassWizard,选中Member Variables标签,Class name:下拉列表框选择CLabelPropPage,Control IDs:选中IDC_CAPTION,单击Add Variable…按钮,弹出Add Member Variable对话框。

  在Add Member Variable对话框中,Member variable name:框输入m_caption,Category选择Value,Variable type:框选择CString,Optional property name:框选择Caption,单击OK按钮。如图1-4。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值