﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-kenlistian-随笔分类-wxwidgets</title><link>http://www.cppblog.com/kenlistian/category/7292.html</link><description>厚积薄发.
勤为桨,思为帆



</description><language>zh-cn</language><lastBuildDate>Mon, 29 Dec 2008 21:04:25 GMT</lastBuildDate><pubDate>Mon, 29 Dec 2008 21:04:25 GMT</pubDate><ttl>60</ttl><item><title>wxWidgets框架例子</title><link>http://www.cppblog.com/kenlistian/archive/2008/06/03/52087.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Tue, 03 Jun 2008 14:54:00 GMT</pubDate><guid>http://www.cppblog.com/kenlistian/archive/2008/06/03/52087.html</guid><wfw:comment>http://www.cppblog.com/kenlistian/comments/52087.html</wfw:comment><comments>http://www.cppblog.com/kenlistian/archive/2008/06/03/52087.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/kenlistian/comments/commentRss/52087.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/kenlistian/services/trackbacks/52087.html</trackback:ping><description><![CDATA[wxWidgets框架例子。<br />直接粘贴到vc中，运行即可。当然需要安装好wxwidgets及其配置好lib和include设置。<br /><br />其解释部分非常详细，基本上wxwidgets和mfc差不了多少，但是扩充性和跨平台性是大于mfc，同时<br />也对熟悉ruby下的wxruby和wxpython是非常快速的。<br /><br />#include "wx/wx.h"<br /><br />// 定义应用程序类<br />class MyApp : public wxApp<br />{<br />public:<br />&#160;&#160;&#160; virtual bool OnInit();<br />};<br /><br />// 定义主窗口类<br />class MyFrame : public wxFrame<br />{<br />public:<br />&#160;&#160;&#160; // 主窗口类的构造函数<br />&#160;&#160;&#160; MyFrame(const wxString& title);<br /><br />&#160;&#160;&#160; // 事件处理函数<br />&#160;&#160;&#160; void OnQuit(wxCommandEvent& event);<br />&#160;&#160;&#160; void OnAbout(wxCommandEvent& event);<br /><br />private:<br />&#160;&#160;&#160; // 声明事件表<br />&#160;&#160;&#160; DECLARE_EVENT_TABLE()<br />};<br /><br />// 有了这一行就可以使用 MyApp& wxGetApp()了<br />DECLARE_APP(MyApp)<br /><br />// 告诉wxWidgets主应用程序是哪个类<br />IMPLEMENT_APP(MyApp)<br /><br />// 初始化程序<br />bool MyApp::OnInit()<br />{<br />&#160;&#160;&#160; // 创建主窗口<br />&#160;&#160;&#160; MyFrame *frame = new MyFrame(wxT("Minimal wxWidgets App"));<br /><br />&#160;&#160;&#160; // 显示主窗口<br />&#160;&#160;&#160; frame->Show(true);<br /><br />&#160;&#160;&#160; // 开始事件处理循环<br />&#160;&#160;&#160; return true;<br />}<br /><br />// MyFrame类的事件表<br />BEGIN_EVENT_TABLE(MyFrame, wxFrame)<br />&#160;&#160;&#160; EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)<br />&#160;&#160;&#160; EVT_MENU(wxID_EXIT,&#160; MyFrame::OnQuit)<br />END_EVENT_TABLE()<br /><br />void MyFrame::OnAbout(wxCommandEvent& event)<br />{<br />&#160;&#160;&#160; wxString msg;<br />&#160;&#160;&#160; msg.Printf(wxT("Hello and welcome to %s"),<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; wxVERSION_STRING);<br /><br />&#160;&#160;&#160; wxMessageBox(msg, wxT("About Minimal"),<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; wxOK | wxICON_INFORMATION, this);<br />}<br /><br />void MyFrame::OnQuit(wxCommandEvent& event)<br />{<br />&#160;&#160;&#160; // 释放主窗口<br />&#160;&#160;&#160; Close();<br />}<br /><br />//#include "mondrian.xpm"<br />//<br />#include "sample.xpm"<br /><br />MyFrame::MyFrame(const wxString& title)<br />&#160;&#160;&#160;&#160;&#160;&#160; : wxFrame(NULL, wxID_ANY, title)<br />{<br />&#160;&#160;&#160; // 设置窗口图标<br />&#160;&#160;&#160; //SetIcon(wxIcon(mondrian_xpm));<br /><br />&#160;&#160;&#160; // 创建菜单条<br />&#160;&#160;&#160; wxMenu *fileMenu = new wxMenu;<br /><br />&#160;&#160;&#160; // 添加&#8220;关于&#8221;菜单项<br />&#160;&#160;&#160; wxMenu *helpMenu = new wxMenu;<br />&#160;&#160;&#160; helpMenu->Append(wxID_ABOUT, wxT("&About...\tF1"),<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; wxT("Show about dialog"));<br /><br />&#160;&#160;&#160; fileMenu->Append(wxID_EXIT, wxT("E&xit\tAlt-X"),<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; wxT("Quit this program"));<br /><br />&#160;&#160;&#160; // 将菜单项添加到菜单条中<br />&#160;&#160;&#160; wxMenuBar *menuBar = new wxMenuBar();<br />&#160;&#160;&#160; menuBar->Append(fileMenu, wxT("&File"));<br />&#160;&#160;&#160; menuBar->Append(helpMenu, wxT("&Help"));<br /><br />&#160;&#160;&#160; // ...然后将菜单条放置在主窗口上<br />&#160;&#160;&#160; SetMenuBar(menuBar);<br /><br />&#160;&#160;&#160; // 创建一个状态条来让一切更有趣些。<br />&#160;&#160;&#160; CreateStatusBar(2);<br />&#160;&#160;&#160; SetStatusText(wxT("欢迎使用wxWidgets!"));<br />}<br /><br /><br /><br />注意的是：<br />1.必须是windows框架而不是control程序框架<br />2.通过向导生成的stdafx.h 可以通过project/set/ "c/c++"中选择无编译头来去掉<br />stdafx.h<br />3.以上都是在vc6环境测试下通过。<br /><br /><br /> <img src ="http://www.cppblog.com/kenlistian/aggbug/52087.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/kenlistian/" target="_blank">kenlistian</a> 2008-06-03 22:54 <a href="http://www.cppblog.com/kenlistian/archive/2008/06/03/52087.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>