细述 wxWindows--精简版
1. 要运用的平台
- Windows 3.1,Windows 95/98,Windows NT
- 带有 Motif/Lesstif 的大多数 UNIX 版本
- 带有 GTK+ 的大多数 UNIX 版本
- Mac
2. 独立于体系结构的类型
- wxInt32(32 位有符号整数)
- wxInt16(16 位有符号整数)
- wxInt8(8 位有符号整数)
- wxUint32(32 位无符号整数)
- wxUint16 = wxWord(16 位无符号整数)
- wxUint8 = wxByte(8 位无符号整数)
- wxINTxx_SWAP_ON_BE()
- wxUINTxx_SWAP_ON_BE()
- wxINTxx_SWAP_ON_LE()
- wxUINTxx_SWAP_ON_LE()
- wxINTxx_SWAP_ALWAYS()
- wxUINTxx_SWAP_ALWAYS()
wxInt32 old_var = 0xF1F2F3F4;
wxInt32 new_var = wxINT32_SWAP_ALWAYS( old_var )
|
if ( wxBYTE_ORDER == wxLITTLE_ENDIAN ){
// Do stuff for little endian machine...
}else{
// Do stuff for big endian machine...
}
|
3. 文件处理
wxString old_report = "smithers_00.doc"
wxString new_report = "my_smithers.doc";
if ( wxCopyFile( old_report, "smithers_00.bak" ) == true ){
if ( wxRemoveFile( old_report ) == true ){
if ( wxRenameFile( new_report, old_report ) == false ){
// Doh!
}
}
}
|
wxPathList path_list;
// Add current working directory
path_list.Add( "." );
// Add one directory above current working directory
path_list.Add( ".." );
// Add directories from environment variable PATH to the list
path_list.AddEnvList( "PATH" );
wxString path = path_list.FindValidPath( "homer.bmp" );
|
4. HTML
wxHtmlWindow html_window = new wxHtmlWindow( this );
html_window->SetRelatedFrame( this, "HTML : %%s" );
html_window->SetRelatedStatusBar( 0 );
|
html_window->LoadPage( "burns.htm" );
|
html_window->SetPage( "<html><body>Hello, Monty!</body></html>" );
|
5. 图像
bool MyApp::OnInit()
{
wxImage::AddHandler( new wxPNGHandler );
// more ...
}
|
#if defined(__WXGTK__) || defined(__WXMOTIF__)
#include "maggie.xpm"
#endif
// more ...
void MyApp::UseBitmap()
{
wxBitmap bitmap( wxBITMAP( maggie ));
// more ...
}
|
wxImage* p_p_w_picpath = new wxImage( bitmap );
// Have some fun
if ( p_p_w_picpath->Ok() ){
if ( p_p_w_picpath->GetHeight() > 50 && p_p_w_picpath->GetWidth() > 50 ){
unsigned char red = p_p_w_picpath->GetRed( 50, 50 );
unsigned char green = p_p_w_picpath->GetGreen( 50, 50 );
unsigned char blue = p_p_w_picpath->GetBlue( 50, 50 );
// Secure but might be slow
p_p_w_picpath->SetRGB( 50, 50, red, green, blue );
// If you want fast action use a pointer...
unsigned char* data = p_p_w_picpath->GetData();
// Manipulate the data...
}
}
|
6. Unicode 和国际化 (i18n)
#ifdef USE__UNICODE
wchar_t wide_char = L'h';
wchar_t const* wide_string = L"Hello, World!";
int length = wcslen( wide_string );
#else
char ansi_char = 'h';
char const* ansi_string = "Hello, World!";
int length = strlen( ansi_string );
#endif
|
wxChar wx_char = wxT( '*' );
wxString wx_string = wxT( "Hello, World!" );
int length = wx_string.Len();
|
7. 调试
// Start logging for Dump() call
wxDebugContext::SetCheckpoint();
wxString *thing = new wxString;
wxDate* date = new wxDate;
// non-object allocation
char *ordinaryNonObject = new char[1000];
// more ...
// Print number of object and non-object allocations
wxDebugContext::Dump();
// Print allocation statistics
wxDebugContext::PrintStatistics();
|
13:32:45: ----- Memory dump of memcheck at Tue Dec 26 13:32:45 2000 -----
13:32:45: ..\..\..\samples\memcheck\memcheck.cpp(88):
non-object data at $DD3DC0, size 4
13:32:45: ..\..\..\samples\memcheck\memcheck.cpp(89):
wxDate at $DD40D0, size 24
13:32:45: ..\..\..\samples\memcheck\memcheck.cpp(92):
non-object data at $DD4118, size 1000
|
13:32:45: ----- Memory statistics of memcheck at Tue Dec 26 13:32:45 2000 -----
13:32:45: 1 objects of class wxDate, total size 24
13:32:45: 5 objects of class nonobject, total size 4256
13:32:45:
13:32:45: Number of object items: 1
13:32:45: Number of non-object items: 5
13:32:45: Total allocated size: 4280
|
8. 将 MFC 应用程序移植到 Linux
wxString
wxString s1 = "Hello, World!";
wxString s2 = "Hello";
if ( s1.IsEmpty() == false ){
s2.Empty();
s2 = s1.Left( 5 );
int pos = s1.Find( ',' );
s2 += s1.Mid( pos, 2 );
s2 += s1.Right( 6 );
}
|
class CButtonCtrl : public COleControl
{
// Implementation
protected:
LRESULT OnOcmCommand( WPARAM wParam, LPARAM lParam );
DECLARE_MESSAGE_MAP()
};
|
BEGIN_MESSAGE_MAP( CButtonCtrl, COleControl )
//{{AFX_MSG_MAP( CButtonCtrl )
ON_MESSAGE( OCM_COMMAND, OnOcmCommand )
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
|
class MyButton : public wxButton
{
void OnButton( wxMouseEvent& event )
private:
DECLARE_EVENT_TABLE()
};
|
BEGIN_EVENT_TABLE( MyButton, wxButton )
EVT_BUTTON( -1, MyButton::OnButton )
END_EVENT_TABLE()
|
9. 标准 C++
class A {
virtual void foo() {};
};
class B : public A {};
A* p_A = new B();
B* p_B = dynamic_cast( p_A );
|
B* p_B = wxDynamicCast( p_A, B );
|
wxString s1 = "Hello, World!";
wxString s2 = "Hello";
s2.erase();
for ( size_t i = 0; i < s1.length(); ++i )
s2 += s1[i];
if ( s1.compare( s2 ) == 0 ) {
// Strings are equal
}
|
10. 文档
11. 支持
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文.
- 仔细查看 wxWindows 主页
- 阅读有关 Sourceforge 上的 wxWindows信息
- wxStudio 是创建免费、跨平台集成开发环境的研究计划
- wxDesigner 有 Windows 和 UNIX 版可用
- wxPROs 是 wxWindows 和 wxPython 的专业人员资源组织
转载于:https://blog.51cto.com/kevdmx/89034
细述 wxWindows--精简版相关推荐
- 第八课——细述QQ与TIM的不同之处
细述QQ与TIM的不同之处 [软件实训之同行产品分析] 授课时间:星期五0607 知识来源: 网络资源汇总整理.张森鹏讲课视频汇总整理 课程: 软件项目实训 授课老师 ...
- 软件开发实训(720实训)——3细述QQ与TIM的不同之处
内容关键词:3细述QQ与TIM的不同之处 知识来源: 网络整理.张森鹏创业经历.张森鹏产品理念分享 课程: 软件项目实训 授课老师:张森鹏(新浪ID:sunlifestyle.中城投丝路.720科 ...
- TMF单片机开发框架精简版入门
前言 无论在面向过程,还是面向对象的开发过程中,都要借助自顶向下模块化思想,按照合适的粒度,把业务需求分解成若干功能单元,然后这些功能单元转化成函数以供调用.当业务比较简单,例如某个按键被按下,我们直 ...
- MediBang Paint Pro超级精简版/超精简/懂你版
原创:梦幻软件天堂 作者:心灵代码 MediBang Paint Pro 超级精简版/超精简/懂你版 由 梦幻软件天堂 发布.MediBang Paint Pro 超精简版 是一个是由日本 med ...
- webview页面和壳通信的库(精简版)
//PG精简版 (function() {var PG ={iosBridge:null,callbackId:0,callbacks: [],commandQueue: [],commandQueu ...
- [导入]金山词霸2005精简版下载地址
软件简介: 金山词霸 2005 精简版 欢迎使用金山公司著名产品金山词霸的最新版本<金山词霸 2005>. 金山词霸2005融合了英语培训的旗舰品牌洋话连篇视频词库,同时采用国内领先的Sm ...
- 微信小程序实战之百思不得姐精简版
为什么80%的码农都做不了架构师?>>> 微信小程序基本组件和API已撸完,总归要回到正题的,花了大半天时间做了个精简版的百思不得姐,包括段子,图片,音频,视频,四个模块.这篇 ...
- 打造精简版Linux-mini
Linux系统的核心就是它的内核,所有的Linux系统采用的内核都是相同的,唯一不同的就是除了内核以外的服务以及应用的软件不同而已.那麽可以根据Linux的这一特点,我们可以根据自己的需求打造属于自己 ...
- [异常解决] ubuntu上安装虚拟机遇到的问题(vmware坑了,virtual-box简单安装,在virtual-box中安装精简版win7)
[异常解决] ubuntu上安装虚拟机遇到的问题(vmware坑了,virtual-box简单安装,在virtual-box中安装精简版win7) 参考文章: (1)[异常解决] ubuntu上安装虚 ...
- Vue精简版风格指南
前面的话 Vue官网的风格指南按照优先级(依次为必要.强烈推荐.推荐.谨慎使用)分类,且代码间隔较大,不易查询.本文按照类型分类,并对部分示例或解释进行缩减,是Vue风格指南的精简版 组件名称 [组件 ...
最新文章
- JavaScript中的继承入门
- 13.3Runtime 类中的主要方法
- CentOS 初体验十:文件权限查看和修改
- return和break的区别
- java 检索编号输出信息_java,_java 如何解析txt文档,输入检索信息,然后输出,java - phpStudy...
- Spring Boot通过@RequestParam接收前端表单传来的数据
- python读取超大文件-强悍的Python读取大文件的解决方案
- mysql网络异常_网络连接配置出现异常_网络连接配置无法修复_Mysql网络连接的性能配置项...
- word图片居中, 实际没效果解决、行间距无效果
- Kryo工具类 序列化和反序列化操作工具类KryoUtils
- 用OpenCV实现简单的泊松融合
- 985、211外,你还应该清楚这些高校联盟!
- C语言学生成绩信息管理系统课程设计报告
- Python项目分析:预测双色球福利彩票中奖号码
- Android开发3年,4个月面试,终于拿到小米、京东、字节大厂offer
- 配置无线路由器为无线交换机
- 钉钉直播回放下载解决方案
- jmeter察看结果树之json使用
- 5 仓储管理系统 运输端功能
- bootstrap世界探索1——山川河流(文字排版)