wxWidgets入门小程序

 

// Name: wxProject.cpp
// Purpose: A wxWidgets sample
// Author: XXXX


//要在程序中使用wxWidgets库,首先要包含头文件"wx/wx.h"
#include "wx/wx.h"
#include "wx/wxprec.h"


// 定义应用程序类,该类必须从wxApp类派生,wxApp类是由wxWidgets库提供的基类
class MyApp:public wxApp
{
public:
// 这个函数将会在程序启动的时候被调用
virtual bool OnInit();
};

//定义主窗口类
class MyFrame:public wxFrame
{
public:
//主窗口类的构造函数
MyFrame(const wxString& title);

//事件处理函数
void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
private:
//声明事件表
DECLARE_EVENT_TABLE()
};

//下面两行是在wx/wx.h头文件中定义的宏,执行一些隐秘的操作,这些操作是类MyApp构造一个应用程序时所必须的
DECLARE_APP(MyApp) //有了这一行就可以使用MyApp& wxGetApp()了
IMPLEMENT_APP(MyApp) //告诉wxWidgets主应用程序是哪个类


//初始化程序
bool MyApp::OnInit()
{
//创建主窗口,其中wxT这个宏的作用是让你的代码兼容Unicode模式,它与另一个_T宏的作用一样
MyFrame *frame = new MyFrame(wxT("wxProject App"));
//显示主窗口
frame->Show(true);
//开始事件处理循环
return true;
};

//类的事件表MyFrame
BEGIN_EVENT_TABLE(MyFrame,wxFrame)
EVT_MENU(wxID_ABOUT,MyFrame::OnAbout)
EVT_MENU(wxID_EXIT,MyFrame::OnQuit)
END_EVENT_TABLE()

void MyFrame::OnAbout(wxCommandEvent &event)
{
wxString msg;
msg.Printf(wxT("Hello and welcome to %s"),wxVERSION_STRING);
wxMessageBox(msg,wxT("About wxProject"),wxOK|wxICON_INFORMATION,this);
}

void MyFrame::OnQuit(wxCommandEvent &event)
{
//释放主窗口
Close();
}


//Frame窗口的构造函数,实现frame窗口的图标,菜单条和状态条
#include "mondrian.xpm" //xpm其实是一个ASCII编码的完全符合c++语法的文本文件,所以可以直接用c++的方式包含到代码中

MyFrame::MyFrame(const wxString &title)
     :wxFrame(NULL,wxID_ANY,title) //NULL表示没有父窗口,窗口标识wxID_ANY让wxWidgets自己选择一个
{
//设置窗口图标,使用mondrian_xpm变量在堆栈上创建了一个图标
SetIcon(wxIcon(mondrian_xpm));
//创建菜单条
wxMenu *fileMenu = new wxMenu;
//添加“关于”菜单项
wxMenu *helpMenu = new wxMenu;
      //由"&"符号前导的字符将成为菜单的快捷操作符,在实际的显示中用下划线表示
      //而"t"符号则前导一个全局的快捷键,这个快捷键可以在菜单项没有被打开时触发菜单功能
helpMenu->Append(wxID_ABOUT,wxT("&ABOUT...\tF1"),wxT("Show about dialog"));
fileMenu->Append(wxID_EXIT,wxT("&Exit\tAlt-X"),wxT("Quit this program"));
//将菜单项添加到菜单条中
wxMenuBar *menuBar = new wxMenuBar();
menuBar->Append(fileMenu,wxT("&File"));
       menuBar->Append(helpMenu,wxT("&Help"));
//然后将菜单条放置在主窗口上.
    SetMenuBar(menuBar);
//创建一个状态条来让一切更有趣些
    CreateStatusBar(2);
SetStatusText(wxT("Welcome to wxWidgets!"));
}

运行错误:Error    1    fatal error C1083: Cannot open include file: 'mondrian.xpm': No such file or directory   d:\学习\vc study\wxproject参考pdf教材例子\wxproject\wxproject.cpp 71

2008-9-15 解决:

搜索到mondrian.xpm的所在路径:D:\wxWidgets-2.8.8\demos\life

然后将其添加到C/C++|General|Additional Include Directories里面去,重新运行即可

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值