﻿<?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++博客-多一分钟学习，早一秒钟提高-随笔分类-wxWidgets</title><link>http://www.cppblog.com/xkjy3000/category/20113.html</link><description>VC++、C++、Socket、DirectUI、wxWidgets</description><language>zh-cn</language><lastBuildDate>Tue, 05 Feb 2013 03:31:36 GMT</lastBuildDate><pubDate>Tue, 05 Feb 2013 03:31:36 GMT</pubDate><ttl>60</ttl><item><title>wxWidgets实现拖放操作</title><link>http://www.cppblog.com/xkjy3000/archive/2013/02/04/197722.html</link><dc:creator>虚空骄阳</dc:creator><author>虚空骄阳</author><pubDate>Mon, 04 Feb 2013 13:31:00 GMT</pubDate><guid>http://www.cppblog.com/xkjy3000/archive/2013/02/04/197722.html</guid><wfw:comment>http://www.cppblog.com/xkjy3000/comments/197722.html</wfw:comment><comments>http://www.cppblog.com/xkjy3000/archive/2013/02/04/197722.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xkjy3000/comments/commentRss/197722.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xkjy3000/services/trackbacks/197722.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 实现拖放操作你可以在你的应用程序中实现拖放源,拖放目标或者两者同时实现.实现拖放源要实现一个拖放源,也就是说要提供用户用于拖放操作的数据,你需要使用一个wxDropSource类的实例.要注意下面描述的事情都是在你的应用程序已 经认定一个拖放操作已经开始以后发生的.决定拖放是否开始的逻辑,是完全需要由应用程序自己决定的,一些控件会通过产生一个拖放开始事件来通知应用程序, 在这种...&nbsp;&nbsp;<a href='http://www.cppblog.com/xkjy3000/archive/2013/02/04/197722.html'>阅读全文</a><img src ="http://www.cppblog.com/xkjy3000/aggbug/197722.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xkjy3000/" target="_blank">虚空骄阳</a> 2013-02-04 21:31 <a href="http://www.cppblog.com/xkjy3000/archive/2013/02/04/197722.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CString and wxString</title><link>http://www.cppblog.com/xkjy3000/archive/2012/11/22/195530.html</link><dc:creator>虚空骄阳</dc:creator><author>虚空骄阳</author><pubDate>Thu, 22 Nov 2012 02:47:00 GMT</pubDate><guid>http://www.cppblog.com/xkjy3000/archive/2012/11/22/195530.html</guid><wfw:comment>http://www.cppblog.com/xkjy3000/comments/195530.html</wfw:comment><comments>http://www.cppblog.com/xkjy3000/archive/2012/11/22/195530.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xkjy3000/comments/commentRss/195530.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xkjy3000/services/trackbacks/195530.html</trackback:ping><description><![CDATA[<p><strong style="color: #ff0000">CString to wxString </strong></p>
<p>CString cstr = "Hello world"; <br />wxString mystring( (LPCTSTR)cstr, ,wxConvUTF8&nbsp;); </p>
<p><br /><span style="color: #ff0000"><strong>wxString to CString </strong></span></p>
<p>wxString wxstr = wxT("Hello world"); <br />CString mystring ( wxstr.c_str() );</p><img src ="http://www.cppblog.com/xkjy3000/aggbug/195530.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xkjy3000/" target="_blank">虚空骄阳</a> 2012-11-22 10:47 <a href="http://www.cppblog.com/xkjy3000/archive/2012/11/22/195530.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用wxFormBuilder</title><link>http://www.cppblog.com/xkjy3000/archive/2012/10/31/194120.html</link><dc:creator>虚空骄阳</dc:creator><author>虚空骄阳</author><pubDate>Wed, 31 Oct 2012 06:05:00 GMT</pubDate><guid>http://www.cppblog.com/xkjy3000/archive/2012/10/31/194120.html</guid><wfw:comment>http://www.cppblog.com/xkjy3000/comments/194120.html</wfw:comment><comments>http://www.cppblog.com/xkjy3000/archive/2012/10/31/194120.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xkjy3000/comments/commentRss/194120.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xkjy3000/services/trackbacks/194120.html</trackback:ping><description><![CDATA[<div>1、打开wxFormBuilder，按开始一个空项目。您也可以执行File|New来创建新项目<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xkjy3000/1.jpeg" width="490" height="415" /><br />2、从Object Properties(对象属性)面板配置项目的设置<br />A、选择产生什么类型的代码。 现在你可以生成C++和/或XRC代码。<br />B、设置生成文件的文件名（只有名称，没有扩展名）。<br />C、为您的项目输入一个名称。<br />D、设置代码生成的路径。相对路径&#8220;.&#8221; 将导致代码生成和项目文件相同的目录中。<br />E、如果你想所有的文件引用您的项目（例如图像）产生一个相对路径，请选中relative_path 选项 。<br />F、保存项目。 <br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xkjy3000/2.png" width="226" longdesc="" height="126" /><br />3、转到组件面板，然后按一下Forms标签。 然后，创建一个对话框，按一下第三个图标<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xkjy3000/3.png" width="482" longdesc="" height="82" /><br />现在在对话框中显示的对象树。<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xkjy3000/4.png" width="239" longdesc="" height="75" /><br />4、现在您可以在对话框中的Object Properties（对象属性）面板配置属性。 例如，改变对话框名称为TutorialDialogGui 。 这个名字也将要产生的C++类的名称<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xkjy3000/5.png" width="224" longdesc="" height="421" /><br />5、在此之后，您准备填入您的对话框的控制和sizers 。 wxFormBuilder只支持基础布局的Sizer，所以你将不得不增加一个Sizer能够插入控制。 转到组件面板，并点击Layout（布局）标签。 然后，点击第一个图标创建一个方块Sizer<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xkjy3000/6.png" width="298" longdesc="" height="72" /><br />6、添加一些控制到Sizer，例如，两个按钮。去Common（通用）标签，并按下第一个图标（<img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xkjy3000/Button.png" width="22" longdesc="" height="10" />）两次。<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xkjy3000/7.png" width="209" longdesc="" height="193" /><br />7、在Object Properties（对象属性）面板的label property 中更改图标的标签。 例如，将第一个按钮的标签的属性设为&amp;Show a message，第二个为&amp;Close。同样，分别设置第一个和第二个按钮的id 属性为ID_SHOWMESSAGE和wxID_OK<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xkjy3000/8.png" width="225" longdesc="" height="530" /><br />第一个按钮的属性设置。<br />8、现在，现在是时候增加事件处理程序的按钮。在Object Properties（对象属性）面板中切换到Events标签。 设定第一个按钮的OnButtonClick的值为OnShowMessage，第二个按钮的值设置为OnClose<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xkjy3000/9.png" width="223" longdesc="" height="114" /><br />第一个按钮的Events<br />9、现在，你可以生成代码了！按F8 或 <img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xkjy3000/Setting.png" width="22" longdesc="" height="22" />。 如果一切正确的话，在状态栏中你会看到一条消息表示代码已成功产生。 您可以在C++标签中查看输出的代码<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xkjy3000/10.jpeg" width="490" longdesc="" height="406" /><br />10、现在是把生成的代码集成到您的IDE(Visual C++, Dev-C++, Code::Blocks...)中的时候了。加所产生的文件(tutorial_gui.h/CPP)到你的Project（项目）中<br />11、每次从wxFormBuilder生成的代码时，你的文件将被最后一次产生的代码所覆盖，所以你不能直接增加你的事件处理程序到该文件中。因此，从Tools | Generate Inherited Class（或F6）启动Generate Inherited Class（生成继承类向导）的办法在 wxFormBuilder中生成子类<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xkjy3000/11.png" width="386" longdesc="" height="450" /><br />继承类生成对话框<br />12、选择Form的名称TutorialDialogGui ，你可以修改所产生的类的名称<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xkjy3000/12.png" width="386" longdesc="" height="450" /><br />选定Form的名称<br />13、修改类的名称为TutorialDialog，文件名为tutorial，请确保选中该框，然后单击&#8220;OK&#8221;（确定）<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/xkjy3000/13.png" width="386" longdesc="" height="450" /><br />名称变了，Form也选中了。<br />14、点击&#8220;确定&#8221;的对话框中，如果一切顺利的话您会看到一个&#8220;类生成的&#8221;消息在状态栏中。你可以在的保存项目文件目录下找到生成的代码文件tutorial.cpp和tutorial.h<br />头文件如下： <br />#ifndef __tutorial__<br />#define __tutorial__
<p>#include "tutorial_gui.h"</p>
<p>class TutorialDialog : public TutorialDialogGui<br />{<br />public:<br />TutorialDialog( wxWindow* parent );<br />};</p>
<p>#endif // __tutorial__<br />这是例程的源文件：<br />#include "tutorial.h"<br />TutorialDialog::TutorialDialog( wxWindow* parent ) : TutorialDialogGui( parent ) {<br />}<br />15、现在，您需要添加的执行你的事件处理程序的到生成类TutorialDialog。 事件表是产生tutorial_gui文件中，因此您只需要添加函数到TutorialDialog类。 这里有两个文件的事件处理程序需要添加</p>
<p>在头文件看起来就像这样：<br />#ifndef __tutorial__<br />#define __tutorial__</p>
<p>#include "tutorial_gui.h"</p>
<p>class TutorialDialog : public TutorialDialogGui<br />{<br />public:<br />&nbsp;&nbsp; TutorialDialog( wxWindow* parent );</p>
<p>protected:<br />&nbsp;&nbsp;&nbsp; // Event handlers<br />&nbsp;&nbsp;&nbsp; void OnShowMessage( wxCommandEvent&amp; event );<br />&nbsp;&nbsp;&nbsp; void OnClose( wxCommandEvent&amp; event );<br />};</p>
<p>#endif // __tutorial__</p>
<p>这是例子的源文件：<br />#include "tutorial.h"<br />#include &lt;wx/msgdlg.h&gt;<br />#include &lt;wx/app.h&gt;</p>
<p>TutorialDialog::TutorialDialog( wxWindow* parent )<br />:<br />TutorialDialogGui( parent )<br />{</p>
<p>}</p>
<p>void TutorialDialog::OnShowMessage( wxCommandEvent&amp; event ) {<br />wxMessageBox( wxT("wxFormBuilder Tutorial") );<br />}</p>
<p>void TutorialDialog::OnClose( wxCommandEvent&amp; event )<br />{<br />wxTheApp-&gt;Exit();<br />}</p>
<p>16、你现在缺少主应用的源文件。 新增两个新的文件到您的项目，并在OnInit()&nbsp; 函数中创建对象的类TutorialDialog 的wxApp派生类</p>
<p>在头文件看起来可能会像这样：</p>
<p>#ifndef __WXWIDGETSAPP_H<br />#define __WXWIDGETSAPP_H</p>
<p>#include &lt;wx/wx.h&gt;</p>
<p>class wxWidgetsApp : public wxApp<br />{<br />public:<br />wxWidgetsApp();<br />virtual ~wxWidgetsApp();<br />virtual bool OnInit();<br />};</p>
<p>DECLARE_APP(wxWidgetsApp)</p>
<p>#endif<br />源文件看起来可能会像这样：<br />#include "wxWidgetsApp.h"<br />#include "tutorial.h"</p>
<p>IMPLEMENT_APP(wxWidgetsApp)</p>
<p>wxWidgetsApp::wxWidgetsApp()<br />{<br />}</p>
<p>wxWidgetsApp::~wxWidgetsApp()<br />{<br />}</p>
<p>bool wxWidgetsApp::OnInit()<br />{<br />TutorialDialog* dialog = new TutorialDialog( (wxWindow*)NULL );<br />dialog -&gt;Show();<br />SetTopWindow( dialog );<br />return true;<br />}</p></div><img src ="http://www.cppblog.com/xkjy3000/aggbug/194120.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xkjy3000/" target="_blank">虚空骄阳</a> 2012-10-31 14:05 <a href="http://www.cppblog.com/xkjy3000/archive/2012/10/31/194120.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WxWidgets wxBoxSizer的学习体会</title><link>http://www.cppblog.com/xkjy3000/archive/2012/10/21/193627.html</link><dc:creator>虚空骄阳</dc:creator><author>虚空骄阳</author><pubDate>Sun, 21 Oct 2012 12:03:00 GMT</pubDate><guid>http://www.cppblog.com/xkjy3000/archive/2012/10/21/193627.html</guid><wfw:comment>http://www.cppblog.com/xkjy3000/comments/193627.html</wfw:comment><comments>http://www.cppblog.com/xkjy3000/archive/2012/10/21/193627.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xkjy3000/comments/commentRss/193627.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xkjy3000/services/trackbacks/193627.html</trackback:ping><description><![CDATA[例：<br />1、m_BoxSizer = new wxBoxSizer(wxVERTICAL);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 垂直布局<br />2、m_BoxSizer = new wxBoxSizer(wxHORIZONTAL);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 水平布局<br /><br /><span style="color: #ff0000">A</span><span style="color: #ff0000">d</span><span style="color: #ff0000">d</span><span style="color: #000000"> </span><span style="color: #000000">(</span><span style="color: #0000ff">wxWindow </span>*window, <span style="color: #0000ff">int </span>proportion=0, <span style="color: #0000ff">int </span>flag=0, <span style="color: #0000ff">int </span>border=0, <span style="color: #0000ff">wxObject </span>*userData=NULL)<br /><br />参数2，proportion表示缩放因子，意义如下：<br />1、如果m_BoxSizer为wxVERTICAL（垂直布局），当proportion = 0时，表示<font face="宋体"><strong style="color: #ff00ff">垂直方向不可缩放</strong>，当proportion = 1时，表示<font face="宋体"><strong style="color: #ff00ff">垂直方向可缩放</strong>，参数3的wxEXPAND表示<strong style="color: #ff00ff">水平方向可缩放</strong>；</font><br />2、如果m_BoxSizer为wxHORIZONTAL（水平布局），当proportion = 0时，表示<font face="宋体"><strong style="color: #ff00ff">水平方向不可缩放</strong>，当proportion = 1时，表示<font face="宋体"><strong style="color: #ff00ff">水平方向可缩放</strong>，</font>参数3的wxEXPAND表示<strong style="color: #ff00ff">垂直方向可缩放</strong>；</font></font><img src ="http://www.cppblog.com/xkjy3000/aggbug/193627.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xkjy3000/" target="_blank">虚空骄阳</a> 2012-10-21 20:03 <a href="http://www.cppblog.com/xkjy3000/archive/2012/10/21/193627.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>