wxWidgets学习2--框架解释[转载]
来源:互联网 发布:浏览器端口号是多少 编辑:程序博客网 时间:2024/06/06 05:20
1. 引入 #include<wx/wx.h>
或<wx/wxprec.h>
当你的编译器支持预处理器时,你可以使用wxprec头文件。当它不支持时,你应该包含wx.h,它包含了所有必须的wxWindows头文件。你同样也可以为每一个控件分别包含相对应的头文件。
#include "wx/wxprec.h"
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
2. 新建两个类:
class xxxApp : public wxApp
class xxxFrame : public wxFrame
3. 添加宏
class xxxApp定义后添加
DECLARE_APP(xxxApp)
class xxxApp实现后添加
IMPLEMENT_APP(xxxApp)
宏 DECLARE_APP 和 IMPLEMENT_APP 为我们作下列操作:
当平台需要时,它创建一个 main() 或者 WinMain() 方法。
它建立一个全局方法 wxGetApp(). 你能够使用这个函数去得到一个程序对象的引用:
wxGetApp() 使用方法
HelloWorldApp &app = (HelloWorldApp&) wxGetApp();
也可说创建全局变量:wxTheApp
//
通过在class xxxApp定义后添加DECLARE_APP(xxxApp),你就可以调用wxGetApp()返回
类xxxApp的对象。不使用DECLARE_APP也可以调用全局变量wxTheApp。
4. 重载 wxApp 的 virtual bool OnInit()函数,实例化Frame、显示、设置位置
{
//建立
xxFrame *frame=new xxFrame(NULL,-1,_T("hello"));
frame->Centre();
//显示
frame->Show();
SetTopWindow(frame);
return true; //TRUE表示初始化成功
}
//下一步系统就调用 wxApp 的wxApp::OnRun()开始消息循环
顶级窗口不同于子窗口,他在创建后必须显式调用显示函数。如:frames 和 dialogs
也可以使用调用wxFrame的default constructor,然后调用create()来解决
5. 在Frame的构造函数中,添加属于Frame的Menu、status bar;
每一个菜单都需要一个独立的ID。这是通过一个枚举类型来完成的。而不能使用#define定义的常量(比如:#define MENU_FILE_MENU 1)因为这不能保证你有独一无二的ID。它十分容易漏掉一些值并且当你想插入新的ID时这会变的十分难以维护。
wxMenubar
wxMenu
wxMenu::Append(ID,"显示字符");
wxMenuBar::Append(&wxMenu);
wxFrame::SetMenuBar(&wxMenuBar);
6. Command消息响应,
1>处理消息的类定义添加:
DECLARE_EVENT_TABLE()
2>定义消息处理函数,不得是virtual、带消息相关参数、返回值是 void:
void func(wxCommandEvent& event);
3>定义 Menu Command ID,可采用const 或 enum
enum
{
ID_CLOSE=1,ID_FILE_OPEN=2
};
如果ID的值为 -1,指定的任何事件都将激活与之相连的处理函数,因而你可以为所有菜单命令或所有命令按钮仅加一条处理函数。
4>实现COMMAND消息影射:
BEGIN_EVENT_TABLE(xxFrame,基类)
EVT_MENU(ID_CLOSE,HWFrame::OnClose)
END_EVENT_TABLE()
7.wxFrame的Close(bool force = false)
wxWindow::Closebool Close(bool force = false)
This function simply generates a wxCloseEvent whose handler usually tries to close the window. It doesn't close the window itself, however.
Parameters
force:false if the window's close handler should be able to veto the destruction of this window, true if it cannot.
附录:
1._T()、wxT()同 MFC 。
2.大部分程序会重载wxApp中与OnInit()对应的OnExit()来释放资源:
int WxDBApp::OnExit()
{
return wxApp::OnExit();
}
此函数只在OnInit()返回true时调用。
3.SetIcon(GetIconResource(wxT("../MyWx/wfx.ico")));
xpm
- wxWidgets学习2--框架解释[转载]
- wxWidgets学习2--框架解释[转载]
- wxWidgets学习2--框架解释[转载]
- wxWidgets学习-2--框架解释
- wxWidgets 框架解释
- wxWidgets学习笔记(2)wxWidgets体系结构
- wxWidgets学习
- wxWidgets学习
- wxWidgets学习
- wxWidgets学习
- wxWidgets学习
- .NET三层框架解释(转载)
- .NET三层框架解释(转载)
- wxWidgets的使用方法[转载]
- wxWidgets框架例子
- ssh框架学习资料转载
- wXWidgets学习笔记之一:wXWidgets的配置
- wxWidgets学习笔记(1)wxWidgets简介
- 【转】嵌入式数据库 SQLite
- Tyvj 1591 冗余电网
- 详解top命令
- JAVA随机打乱数组的顺序
- TinyOS for CC2530中startup.a51解读
- wxWidgets学习2--框架解释[转载]
- 获取本地文件列表后按照文件修改时间降序排列
- 未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配。
- Java Media Framework basics
- ASP.NET后台获取网页内容
- Linux调用栈获取分析及实现
- wxWidgets 事件驱动
- ASP.NET-C# listview控件显示文件夹内的文件名及路径
- C#简单Scokets通信代码