您的位置:首页 > 产品设计 > UI/UE

wxWidgets->使用wxFormBuild+CodeBlocks编写wxWidgets工程

2011-09-22 19:52 609 查看
wxFormBuild主要用于界面和事件接口程序生成,还需要在CodeBlocks中添加事件反应程序和App用户应用程序.
1. 使用CodeBlocks新建wxWidgets工程

可以使用CodeBlocks自带的wxWidgets工程向导或者是我们自定义的wxempty工程向导,新建工程,保存在D:\test\Cpp\wxtst\wxtst.cbp

从工程中移除所有的文件,使工程为一个不含任何文件的空工程.

2. 使用wxFormBuild新建wxFormBuild工程

在wxFormBuild中,在右侧Object Properties中设置工程参数,这里设置如下

path>.

(这里设置wxFormBuild生成文件的目录与wxFormBuild工程的相对路径,

若保存wxFormBuild工程目录为D:\test\Cpp\wxtst\,则生成程序文件所在目录也为D:\test\Cpp\wxtst\

若这里设置为.\wxFormBuildFiles,则生成程序文件所在目录也为D:\test\Cpp\wxtst\wxFormBuildFiles\)

file>HelloWorldGui

relative_path>checked

code_generaltion C++>checked

然后保存工程在D:\test\Cpp\wxtst\wxtst.fbp

3. 使用wxFormBuild添加控件,设置控件属性,添加控件事件

在wxFormBuild中,按之前编写的HelloWorld工程及后边的事件方法,依次添加控件,

-点击添加Forms分类中的第1个Frame,添加MyFrame1

-在MyFrame1中,点击添加Layout分类中的第1个wxBoxSizer,添加bSizer1

-在bSizer1中点击添加Containers分类中的第1个wxPanel,添加m_panel1

-在m_panel1中点击添加Layout分类中的第1个wxBoxSizer,添加bSizer2

-在bSizer2中点击添加Common分类中的wxButton,添加m_button1

并分别修改MyFrame1的属性title为HelloWorld,修改m_button1的label属性为Quit,

为m_button1的Events属性分类里的OnButtonClick添加OnQuit

然后保存工程,点击Generate Code,生成代码HelloWorldGui.cpp,HelloWorldGui.h

4. 使用wxFormBuild 生成事件响应类

在wxFormBuild中,点击菜单Tools>Generate Inherited Class,选中刚才生成的MyFrame1类,修改Class和File Name为,MyProject1MyFrame1,点击ok,生成MyProject1MyFrame1.cpp,MyProject1MyFrame1.h

5. 在CodeBlocks中添加wxFormBuild生成的文件,添加事件反应代码

在CodeBlocks中添加HelloWorldGui.cpp,HelloWorldGui.h,MyProject1MyFrame1.cpp,MyProject1MyFrame1.h到工程中,修改MyProject1MyFrame1.cpp中的事件反应代码,(还需要添加你新增代码用到的头文件)

#include "MyProject1MyFrame1.h"

#include <wx/app.h>

MyProject1MyFrame1::MyProject1MyFrame1( wxWindow* parent )

:

MyFrame1( parent )

{

}

void MyProject1MyFrame1::OnQuit( wxCommandEvent& event )

{

// TODO: Implement OnQuit

wxTheApp->Exit();

}

6. 在CodeBlocks中添加App应用程序代码及文件

为CodeBlocks工程添加,MyApp.h和MyApp.cpp,编译运行即可.

MyApp.h如下,需要添加#include<wx/wx.h>

#ifndef MYAPP_H_INCLUDED

#define MYAPP_H_INCLUDED


#include<wx/wx.h>

class MyApp : public wxApp

{

public:

MyApp();

virtual ~MyApp();

virtual bool OnInit();

};


DECLARE_APP(MyApp)

#endif // MYAPP_H_INCLUDED

MyApp.cpp如下,需要添加App头文件和事件类的头文件,#include "MyApp.h",#include "MyProject1MyFrame1.h"

#include "MyApp.h"

#include "MyProject1MyFrame1.h"


IMPLEMENT_APP(MyApp)

MyApp::MyApp()

{

}


MyApp::~MyApp()

{

}


bool MyApp::OnInit()

{

MyProject1MyFrame1* myframe = new MyProject1MyFrame1((wxWindow*)NULL);

myframe->Show();


return true;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐