22、wxWidgets对话框之wxFontDialog

 

class MyFontDialog:public wxFrame
{
public:
    MyFontDialog(const wxString& title);
protected:
    void OnOpen(wxCommandEvent& event);

    wxTextCtrl* tc;
};

MyFontDialog::MyFontDialog(const wxString& title)
    :wxFrame(NULL,-1,title)
{

    wxMenuBar* mbMain = new wxMenuBar;
    wxMenu* file = new wxMenu;
    wxMenuItem* miFontDialog = new wxMenuItem(file,-1,wxT("字体对话框"));
    file->Append(miFontDialog);

    mbMain->Append(file,wxT("文件"));

    SetMenuBar(mbMain);

    Bind(wxEVT_COMMAND_MENU_SELECTED,MyFontDialog::OnOpen,this,miFontDialog->GetId());

    tc = new wxTextCtrl(this,-1,wxT("测试文字"),wxPoint(-1,-1),wxSize(-1,-1)
                        ,wxEXPAND|wxTE_MULTILINE);


    Centre();
}

void MyFontDialog::OnOpen(wxCommandEvent& event)
{
    wxFontDialog* fontDialog = new wxFontDialog(this);

    if(fontDialog->ShowModal() == wxID_OK)
    {
        tc->SetFont(fontDialog->GetFontData().GetChosenFont());
    }
}
 

//-----注意此处分割------------------------------------------------------------------------------------------------------

//wxFontDialog也以在打开前,对样式进行初始化。

//参照以下的函数

void MyFontDialog::OnOpen(wxCommandEvent& event)
{

    wxFont font = tc->GetFont();
    wxColour fontColour = tc->GetForegroundColour();

    wxFontData fontData;
    fontData.SetInitialFont(font);
    fontData.SetColour(fontColour);


    wxFontDialog* dialog = new wxFontDialog(this,fontData);

    if(dialog->ShowModal() == wxID_OK)
    {
        fontData = dialog->GetFontData();
        font = fontData.GetChosenFont();


        tc->SetFont(font);
        tc->SetForegroundColour(fontData.GetColour());

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值