Windows使用WxWidgets开发界面(c++)环境搭建
来源:互联网 发布:如何成功应聘淘宝客服 编辑:程序博客网 时间:2024/06/06 09:54
一直想学习wxWidgets,之前使用的都是wxPython,现在终于鼓起勇气学习这个了,发现原来是基于vc6.0开发的。所以最好的学习办法就是安装vistual studio 2010,方便学习看代码。wxWidgets里面也有demo。
基本上wxWidgets是和MFC类似的。
参考:http://www.codeproject.com/Articles/11515/Introduction-to-wxWidgets
Similarity to MFC
MFC and wxWidgets macros
BEGIN_MESSAGE_MAP
BEGIN_EVENT_TABLE
END_MESSAGE_MAP
END_EVENT_TABLE
DECLARE_DYNAMIC
DECLARE_CLASS
DECLARE_DYNCREATE
DECLARE_DYMAMIC_CLASS
IMPLEMENT_DYNAMIC
IMPLEMENT_CLASS
IMPLEMENT_DYNCREATE
IMPLEMENT_DYNAMIC_CLASS
IsKindOf
(RUNTIME_CLASS
(CWindow))IsKindOf
(CLASSINFO(wxWindow))MFC and wxWidgets classes
Miscellaneous ClassesCWinApp
wxAppCObject
wxObjectCCmdTarget
wxEvtHandlerCCommandLineInfo
wxCmdLineParserCMenu
wxMenu, wMenuBar, wxMenuItemCWaitCursor
wxBusyCursorCDataExchange
wxValidatorWindow ClassesCFrameWnd
wxFrameCMDIFrameWnd
wxMDIParentFrameCMDIChildWnd
wxMDIChildFrameCSplitterWnd
wxSplitterWindowCToolBar
wxToolBarCStatusBar
wxStatusBarCReBar
wxCoolBar, but see contrib/src/fl and wxAUI, wxDockItCPropertyPage
wxPanelCPropertySheet
wxNotebook, wxPropertySheetDialogDialog ClassesCDialog
wxDialogCColorDialog
wxColourDialogCFileDialog
wxFileDialogCFindReplaceDialog
wxFindReplaceDialogCFontDialog
wxFontDialogCPageSetupDialog
wxPageSetupDialogCPrintDialog
wxPrintDialogControl ClassesCAnimateCtrl
wxMediaCtrl, wxAnimationCtrlCButton
wxButtonCBitmapButton
wxBitmapButtonCComboBox
wxComboBox, wxChoiceCDateTimeCtrl
wxDatePickerCtrlCEdit
wxTextCtrlCHotKeyCtrl
None, but see KeybinderCListBox
, CDragListBox
wxListBoxCCheckListBox
wxCheckListBoxCListCtrl
wxListCtrl, wxListViewCMonthCalCtrl
wxCalendarCtrlCProgressCtrl
wxGaugeCReBarCtrl
None, but see contrib/src/fl and wxAUI, wxDockItCRichEditCtrl
wxTextCtrlCScrollBar
wxScrollBarCSliderCtrl
wxSliderCSpinButtonCtrl
wxSpinButton, wxSpinCtrlCStatic
wxStaticText, wxStaticLine, wxStaticBox, wxStaticBitmapCStatusBarCtrl
wxStatusBarCTabCtrl
wxTabCtrlCToolBarCtrl
wxToolBarCToolTipCtrl
wxToolTipCTreeCtrl
wxTreeCtrlGraphics ClassesCBitmap
wxBitmap, wxImage, wxIcon, wxCursorCBrush
wxBrushCPen
wxPenCFont
wxFontCImageList
wxImageList, wxIconBundleCPalette
wxPaletteCRgn
wxRegionCClientDC
wxClientDCCMetaFileDC
wxMetaFileDCCPaintDC
wxPaintDCCWindowDC
wxWindowDCCDC
wxDC, wxMemoryDCData Structure ClassesCArray
, CObArray
, CPtrArray
wxArrayCStringArray
wxArrayStringCDWordArray
, CByteArray
, CUIntArray
wxArrayIntCList
, CPtrList
, CObList
wxListCStringList
wxArrayString, wxStringListCMap
wxHashMapCString
wxStringCPoint
wxPointCRect
wxRectCSize
wxSizeCTime
wxDateTimeCTimeSpan
wxTimeSpan, wxDateSpanCOleVariant
wxVariantInternet ClassesCSocket
wxSocketCFtpConnection
wxFTPCHttpConnection
wxHTTPDocument/View ClassesCDocument
wxDocumentCView
wxViewCDocTemplate
, CSingleDocTemplate
, CMultiDocTemplate
wxDocTemplateDrag and Drop ClassesCOleDataSource
wxDataObjectCOleDropSource
wxDropSourceCOleDropTarget
wxDropTargetFile ClassesCFile
wxFile, wxFFile, wxTextFileCMemFile
wxMemoryInputStream, wxMemoryOutputStreamCSocketFile
wxSocketInputStream, wxSocketOutputStreamCRecentFileList
wxFileHistoryMultithreading ClassesCWinThread
wxThreadCCriticalSection
wxCriticalSectionCMutex
wxMutexCSemaphore
wxSemaphore非常经典的WxWidgets架构图。
1,下载
下载安装文件http://sourceforge.net/projects/wxwindows/files/
安装文件:
wxWidgets-2.8.12(特别注意下不要使用开发版本,要使用稳定版本)
2,开发环境使用 visual studio 2010
安装IDE参考:
http://blog.csdn.net/freewebsys/article/details/12028265
3,安装wxwdiget(基于源码编译安装)
下载zip文件
打开工程D:/wxWidgets-2.8.12/build/msw/wx.dsw
可以使用exe安装,(相当于解压缩源代码,不是安装)也可以使用zip解压缩,两个都是将源代码放到一个目录,没有啥区别。
然后编译,否则不能使用!!!!!!
wxWidgets使用的是vc6.0开发的,需要转换成vistual studio 2010。(IDE会自动转换的,耐心等待)
转换完成之后直接build就行了。
编译完成没有任何错误信息。说明安装成功。
4,编译demo
在安装后的wxWidgets-2.9.5/samples目录下面有samples.dsw
双击就可以启动visual studio了,同样需要转换成工程。
继续等待。转换完成之后就可以编译了。
里面的demo都可以编译成功,运行如下:
转换完成之后就可以进行编译了。发现编译有4个失败的。不过没有关系大多数成功了。
运行一个demo:
丰富的demo找了几个运行下效果如下:
一个简单的播放器
一个所有组件的demo。比较全。
5,WxWidgets的一个helloworld
- /*
- * hworld.cpp
- * Hello world sample by Robert Roebling
- */
- #include "wx/wx.h"
- class MyApp: public wxApp
- {
- virtual bool OnInit();
- };
- class MyFrame: public wxFrame
- {
- public:
- MyFrame(const wxString& title,
- const wxPoint& pos, const wxSize& size);
- void OnQuit(wxCommandEvent& event);
- void OnAbout(wxCommandEvent& event);
- DECLARE_EVENT_TABLE()
- };
- enum
- {
- ID_Quit = 1,
- ID_About,
- };
- BEGIN_EVENT_TABLE(MyFrame, wxFrame)
- EVT_MENU(ID_Quit, MyFrame::OnQuit)
- EVT_MENU(ID_About, MyFrame::OnAbout)
- END_EVENT_TABLE()
- IMPLEMENT_APP(MyApp)
- bool MyApp::OnInit()
- {
- MyFrame *frame = new MyFrame( "Hello World",
- wxPoint(50,50), wxSize(450,340) );
- frame->Show(TRUE);
- SetTopWindow(frame);
- return TRUE;
- }
- MyFrame::MyFrame(const wxString& title,
- const wxPoint& pos, const wxSize& size)
- : wxFrame((wxFrame *)NULL, -1, title, pos, size)
- {
- wxMenu *menuFile = new wxMenu;
- menuFile->Append( ID_About, "&About..." );
- menuFile->AppendSeparator();
- menuFile->Append( ID_Quit, "E&xit" );
- wxMenuBar *menuBar = new wxMenuBar;
- menuBar->Append( menuFile, "&File" );
- SetMenuBar( menuBar );
- CreateStatusBar();
- SetStatusText( "Welcome to wxWindows!" );
- }
- void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
- {
- Close(TRUE);
- }
- void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
- {
- wxMessageBox("This is a wxWindows Hello world sample",
- "About Hello World", wxOK | wxICON_INFORMATION, this);
- }
其他参考:
http://www.cnzui.com/archives/962
http://blog.csdn.net/chinabinlang/article/details/6904143
http://www.codeproject.com/Articles/11515/Introduction-to-wxWidgets
- Windows使用WxWidgets开发界面(c++)环境搭建
- Windows使用WxWidgets开发界面(c++)环境搭建
- Windows平台使用CodeBlocks和Wxwidgets搭建C++开发环境
- windows下 搭建 wxWidgets 开发环境
- windows下 搭建 wxWidgets 开发环境
- windows下的Code::Blocks + minGW + wxWidgets 开发环境搭建
- windows下的Code::Blocks + minGW + wxWidgets 开发环境搭建
- Windows平台下CodeBlocks+Wxwidgets开发环境搭建
- Windows平台下CodeBlocks+Wxwidgets开发环境搭建
- VS2013搭建wxWidgets开发环境
- VS2013搭建wxWidgets开发环境
- 跨平台wxWidgets在windows及linux上的开发环境搭建(转载)
- 在Mac下使用xcode搭建wxWidgets开发环境
- 在Mac下使用xcode搭建wxWidgets开发环境
- Windows使用MinGW搭建C/C++开发环境
- Windows使用MinGW搭建C/C++开发环境
- 使用MinGW搭建windows下C/C++开发环境
- VC++6.0 下搭建 wxWidgets 开发环境
- RMQ算法
- LA 3516 - Exploring Pyramids (记忆化搜索dp)
- is not in the sudoers file
- OnPaint OnDraw OnPrint 的区别以及invalidate的调用过程
- 利特尔法则
- Windows使用WxWidgets开发界面(c++)环境搭建
- html中checkbox选中则value为yes,没选中为no
- C语言结构体占用空间内存大小解析
- java 应用下载文件名乱码
- sql
- PostgreSQL学习手册(数据库管理)
- Win32通用控件
- Spring定时器的两种实现方式
- SQL数值四舍五入小数点后保留2位