程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於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_simple | 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_simple | cbs_disablenoscroll |

ws_vscroll | ws_tabstop

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

combobox idc_fontsize,224,13,32,54,cbs_simple |

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()函數更新內部信息,並且顯示樣

本文本。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved