当前位置:编程学习 > C/C++ >>

在属性页中添加字体对话框

 

 

    mfc提供了三种属性页类:cfontproppage、ccolorproppage和cpictureproppage。

但是,它们只能与ole automation一起使用。在本文中将介绍如何在属性对话框中添

加字体属性页。

 

    解决的办法是你自己建立字体属性页。为了让你能定制通用对话框的行为,sdk

提供了这些对话框的对话框资源。“choose font”对话框是在include目录中的

font.dlg文件中,相应的符号在dlgs.h文件中。使用这些文件作为出发点,我们

可以为字体属性页建立资源,并且添加一个使用这些资源的cpropertypage继承类。

下面的实现可能是有限的的,但也有一定的参考价值。如果你想增强它,可以查看

mfc源程序目录中的cfontproppage源文件。

 

第一步:添加对话资源

    你可以在devstudio中打开下面的rc文件devstudio,然后把对话框资源复制到

你的主资源文件中,或者你也可以把该资源文件包含进去。

 

    为了复制资源文件,请在devstudio中打开“fontpage.rc”文件,然后展开资源

的outline。然后打开resourceview,以便对话框资源是可见的。最后,从

fontpage.rc中拖动idd_fontpage资源到你的应用程序resourceview的资源中。

 

    如果你想包含fontpage资源文件,只要把“fontpage.rc”和“fontpagerc.h”

文件(在下面列出)到项目目录中的“res”目录中即可。然后在该目录中已有的

“rc2”文件中添加下面这段。资源图像也列在下面。

 

#include "fontpage.rc" 

listing of fontpage.rc

/////////////////////////////////////////////////////////////////////////

// listing of fontpage.rc

//

#include "winresrc.h"

#include "fontpagerc.h"

idd_fontpage dialog discardable 13, 54, 264, 133

style ws_child | ws_caption | ws_sysmenu

caption "font"

font 8, "helv"

begin

ltext "&font:",stc1,6,3,40,9

combobox idc_font,6,13,131,54,cbs_易做图 | cbs_autohscroll |

cbs_sort | cbs_disablenoscroll | ws_vscroll | ws_tabstop

ltext "font st&yle:",stc2,153,3,44,9

combobox idc_style,153,13,64,54,cbs_易做图 | cbs_disablenoscroll |

ws_vscroll | ws_tabstop

ltext "&size:",stc3,224,3,30,9

combobox idc_fontsize,224,13,32,54,cbs_易做图 |

cbs_disablenoscroll | ws_vscroll | ws_tabstop

groupbox "effects",grp1,6,72,84,34,ws_group

control "stri&keout",idc_strikeout,"button",bs_autocheckbox |

ws_tabstop,10,82,49,10

control "&underline",idc_underline,"button",bs_autocheckbox,10,

94,51,10

groupbox "sample",grp2,98,72,160,49,ws_group

ctext "aabbyyzz",idc_sample,104,81,149,37,ss_noprefix

end

/////////////////////////////////////////////////////////////////////////

// listing of fontpagerc.h

/////////////////////////////////////////////////////////////////////////

#define idc_strikeout 0x0410

#define idc_underline 0x0411

#define grp1 0x0430

#define grp2 0x0431

#define stc1 0x0440

#define stc2 0x0441

#define stc3 0x0442

#define idc_sample 0x0444

#define idc_font 0x0470

#define idc_style 0x0471

#define idc_fontsize 0x0472

#define idd_fontpage 1543

/////////////////////////////////////////////////////////////////////////

第二步:在你的项目中包含源文件

    下面给出了头文件和实现文件。你只要简单的把它们包含到你的项目中,并且

使用cfontpage类就可以了。该类的实现是比较简单的。cfontpage构造函数获取一

指向logfont结构的指针。它使用该结构的信息来初始化自己。如果logfont结构没

有提供,则使用窗口的当前字体。在oninitdialog()函数中,我们列出了所需字体

和字体组合框。但是,任何字体特性的改变,都要调用onselchange()函数来实现。

所有的信息映射入口都指向该函数。onselchange()函数更新内部信息,并且显示样

本文本。

 

补充:软件开发 , C语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,