wxWidget 程序链接, MyFirst

本文介绍了一个简单的wxWidgets应用程序示例,包括必要的头文件引入、类定义及初始化过程,并强调了链接时需包含的库文件,如comctl32.lib、uuid.lib和rpcrt4.lib等,对于解决找不到符号的问题尤为重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

链接的时候 comctl32.lib uuid.lib rpcrt4.lib 这三个库不要忘记, 要不然会出现找不到符号的情况。

今天准备学习一下 wxWidget了, 小小的写了个程序。

#ifndef FIRST_APP_H #define FIRST_APP_H #include <wx/string.h> #include <wx/bitmap.h> #include <wx/image.h> #include <wx/icon.h> #include <wx/menu.h> #include <wx/gdicmn.h> #include <wx/font.h> #include <wx/colour.h> #include <wx/settings.h> #include <wx/statusbr.h> #include <wx/treectrl.h> #include <wx/richtext/richtextctrl.h> #include <wx/sizer.h> #include <wx/frame.h> #include <wx/app.h> /////////////////////////////////////////////////////////////////////////// #define wxID_Exit 1000 class MyFirstApp : public wxApp { public: MyFirstApp(void); public: bool OnInit(void); }; /////////////////////////////////////////////////////////////////////////////// /// Class MyFirstFrame /////////////////////////////////////////////////////////////////////////////// class MyFirstFrame : public wxFrame { protected: wxMenuBar* m_menubar_main; wxMenu* m_menu1; wxStatusBar* m_statusBar1; wxTreeCtrl* m_treeCtrl2; wxRichTextCtrl* m_richText2; wxRichTextCtrl* m_richText3; // Virtual event handlers, overide them in your derived class virtual void OnMenuExit( wxCommandEvent& event ) { event.Skip(); } public: MyFirstFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Hello wxWidget"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 606,441 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL ); ~MyFirstFrame(); }; #endif #include "FirstApp.h" IMPLEMENT_APP(MyFirstApp); DECLARE_APP(MyFirstApp); MyFirstApp::MyFirstApp(void) { } bool MyFirstApp::OnInit(void) { MyFirstFrame *pFrame = new MyFirstFrame(0); pFrame->Show(true); return true; } MyFirstFrame::MyFirstFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style ) { this->SetSizeHints( wxDefaultSize, wxDefaultSize ); m_menubar_main = new wxMenuBar( 0 ); m_menu1 = new wxMenu(); wxMenuItem* m_menuItemExit; m_menuItemExit = new wxMenuItem( m_menu1, wxID_Exit, wxString( wxT("退出") ) , wxEmptyString, wxITEM_NORMAL ); m_menu1->Append( m_menuItemExit ); m_menubar_main->Append( m_menu1, wxT("系统(&S)") ); this->SetMenuBar( m_menubar_main ); m_statusBar1 = this->CreateStatusBar( 1, wxST_SIZEGRIP, wxID_ANY ); wxBoxSizer* bSizer1; bSizer1 = new wxBoxSizer( wxVERTICAL ); m_treeCtrl2 = new wxTreeCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTR_DEFAULT_STYLE|wxTR_FULL_ROW_HIGHLIGHT ); bSizer1->Add( m_treeCtrl2, 1, wxEXPAND, 5 ); m_richText2 = new wxRichTextCtrl( this, wxID_ANY, wxEmptyString, wxPoint( -1,-1 ), wxSize( -1,-1 ), 0|wxVSCROLL|wxHSCROLL|wxNO_BORDER|wxWANTS_CHARS ); bSizer1->Add( m_richText2, 1, wxALIGN_RIGHT|wxEXPAND, 5 ); m_richText3 = new wxRichTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0|wxVSCROLL|wxHSCROLL|wxNO_BORDER|wxWANTS_CHARS ); bSizer1->Add( m_richText3, 1, wxEXPAND | wxALL, 5 ); this->SetSizer( bSizer1 ); this->Layout(); this->Centre( wxBOTH ); // Connect Events this->Connect( m_menuItemExit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MyFirstFrame::OnMenuExit ) ); } MyFirstFrame::~MyFirstFrame() { // Disconnect Events this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MyFirstFrame::OnMenuExit ) ); }

界面是直接用 wxFormBuilder 做的,投一下懒,感觉和MFC一样, 所以学过MFC的朋友们,应该很容易接受的啦。

编译工具: VS.2008

依赖工具: wxFormBuilder

运行时库: MT/MTD

依赖输入: uuid.lib rpcrt4.lib comctl32.lib wxjpeg.lib wxpng.lib wxregex.lib wxtiff.lib wxzlib.lib wxexpat.lib wxbase28.lib
wxbase28_net.lib wxbase28_odbc.lib wxbase28_xml.lib wxmsw28_dbgrid.lib wxmsw28_core.lib wxmsw28_richtext.lib wxmsw28_media.lib wxmsw28_html.lib wxmsw28_gl.lib wxmsw28_aui.lib wxmsw28_adv.lib wxmsw28_qa.lib wxmsw28_xrc.lib

当然啦,这么多不是都用的,我是为了解决前面那个错误而加的。:)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值