文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络程序开发其他语言在VC6中创建wxWidgets项目[附图]
精品推荐
特别推荐
·控制面板知多少
·给你十条学习Ruby语言的理由
·分页管理机制
·Perl 语言的重要价值体现
·经验技巧:分享两条Delphi开发经验
·Java编程思想:面向对象的逻辑思维方法
·Samba系统简介
热点TOP10
·EZ-USB 68013A开发指南
·图象处理中的边缘检测------canny算子
·MyEclipse JSF 快速入门中文版(上)
·简单架设Jabber 局域网即时通讯服务器
·visual studio 2005 简体中文团队开发版 SQL server 2005简体中文版下载
·ARM MPlayer移植过程
·Visual FoxPro 9.0 SP2正式版下载
·视频与图像RGB/YUV格式详解
·Visual C++ ADO数据库编程入门
·Microsoft Windows CE系统介绍

在VC6中创建wxWidgets项目[附图]

日期:2008年3月9日 作者: 查看:[大字体 中字体 小字体]


{
    wxTextCtrl* text = new wxTextCtrl(this, wxID_ANY, _("some text"));
}

没错,只要“new”一下就搞定了,控件会自动出现在wxFrame中。这是运行结果:

在VC6中创建wxWidgets项目[附图](图二)

如果界面再复杂一些,上面这种方法就行不通了,我们需要引入“Sizer”(详见http://www.wxwidgets.org/manuals/2.6.3/wx_sizeroverview.html(Sizer一览),此处不作深入解释):

MainFrame::MainFrame(wxWindow* parent, const wxString& title) : wxFrame(parent, wxID_ANY, title)
{
    wxTextCtrl* textCtrl = new wxTextCtrl(this, ID_TEXTCTRL, _T("some text"), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
    wxButton* button = new wxButton(this, ID_BUTTON, _("测试按钮"), wxDefaultPosition, wxDefaultSize, 0 );

    wxBoxSizer* vBoxSizer = new wxBoxSizer(wxVERTICAL);
    this->SetSizer(vBoxSizer);

    vBoxSizer->Add(textCtrl, 1, wxALLwxEXPAND, 5);
    vBoxSizer->Add(button, 0, wxALIGN_CENTER_HORIZONTALwxALLwxALIGN_BOTTOM, 5);
}

上面是多行编辑框控件,下面是按钮控件,当窗口大小变化时,编辑框控件将在水平和垂直方向上自动扩展,而按钮始终位于窗口底部居中。这是运行结果:

在VC6中创建wxWidgets项目[附图](图三)

上述代码中涉及的控件ID(ID_TEXTCTRL,ID_BUTTON)是我们在 mainframe.cpp 中自行定义的(定义控件ID的目的是为了下一步了事件处理):

enum CtrlID
{
    ID_TEXTCTRL, ID_BUTTON
};

 

采用 Sizer 机制进行界面布局有相当大的优势。要想设计好自己的程序界面,必须对 Sizer 有比较深入的了解。

参考文档:http://www.wxwidgets.org/manuals/2.6.3/wx_sizeroverview.html(Sizer一览)

采用XML格式文件(XRC文件)定义程序界面也是不错的方式,详见:http://www.wxwidgets.org/manuals/2.6.3/wx_xrcoverview.html(基于XML的资源系统一览)。

无论如何,手工进行界面布局总是很繁杂,我们需要(可视化)工具的帮助:http://www.wxwidgets.org/apps2.htm

 

处理事件

在wxWidgets中处理事件,主要有两个步骤:编写“事件处理函数(方法)”,填写“事件表(EVENT_TABLE)”。

事件处理函数(方法)视事件的不同而有所不同,但也有规律:没有返回值,只有一个引用型参数(且一定是wxEvent的子类),不是虚方法(virtual method)。事件处理函数(方法)的名称没有特殊规定,可以自行命名。

作为示例,我们来处理上图中“测试按钮”被按下的事件。

根据wxWidgets文档,要处理按钮事件,需在自己的类中添加如下事件处理函数(方法):void MainFrame::OnButtonClick(wxCommandEvent &event)

具体说来就是,在 mainframe.h 文件中的 MainFrame 类中增加新的 OnButtonClick() 方法声明:

private:
    void OnButtonClick(wxCommandEvent& event);

并在 mainframe.cpp 文件中增加 OnButtonClick() 方法的定义:

void MainFrame::OnButtonClick(wxCommandEvent &event)
{
    //取编辑框中的文本并用信息框显示出来
    wxString text = ((wxTextCtrl*)this->FindWindow(ID_TEXTCTRL))->GetValue();

上一页 [1] [2] [3] [4] [5] 下一页 




上一篇:外企面试官最爱提的问题TOP10

下一篇:windows与unix体系结构图
相关文章:
·Google关键词广告创建的十二高招
·使用 JavaScript 创建 FrontPage 下拉菜单
·QQ空间里的音乐是怎么创建的
·SQL存储过程的概念,创建,调用,管理,删除,优点
·Windows无法访问指定设备,路径或文件.您可能没有合适的权限访问这个项目
·导出创建非唯一索引脚本的方法
·使用JDBC创建数据库访问程序
·Maya实用教程系列:轻松创建可动画履带
·从优秀IT项目经理到千万富翁的距离只有1m——如何当好项目经理
·填充图案的定义和创建
相关软件:

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot