在CodeBlocks中用wxWidgets创建不规则窗口

本文详细介绍了如何在CodeBlocks 10.05中利用wxWidgets 2.8.12创建不规则形状窗口。通过使用wxWidgets自带的wxrc.exe工具将图片转换为.h文件,然后在项目中引用该头文件,实现窗口的自定义形状。文中还提供了具体的代码示例和步骤说明。
摘要由CSDN通过智能技术生成

我在学习CodeBlocks10.05,中文)中用wxWidgetswxWidgets-2.8.12)来创建不规则窗口时,发现图片不能打包到exe文件里面,这样在发布exe程序是必须要带上相应的图片,甚是不方便,经过苦思和辛苦的查阅,终于找到解决办法,现记录下这个过程作为被查,也对与我一样痛苦挣扎的小虾们一点启示吧。

 

一、准备工作:

 

1、环境的搭建,不讲了,我的配置是:CodeBlocks10.05,中文)和wxWidgetswxWidgets-2.8.12

 

2、准备一张图片,本例中的图片为shape.png,见附件。

 

二、将图片转换成*.h文件:

 

这里就要使用wxWidgets自带的wxrc.exe(项目在wxWidgets的安装目录中的utils文件夹里面)了。不过wxrc.exe不是现成的,需要自己编译。本例中已包含编译好的wxrc.exe,具体怎么编译就不讲了。现讲讲图片的转换过程:

1、写一个shape.xml的文件,内容如下:

 

<?xml version="1.0"?> 
<resource version="2.3.0.1">    
   <object class="wxBitmap" name="shape">shape.png</object> 
</resource>

  

2、转换图片:

 

点击“开始”菜单-“运行”,输入“cmd”,将当前目录设定为wxrc.exe所在目录,并将shape.png图片拷贝到wxrc.exe所在目录内(这样是为了方便)。

dos窗口输入wxrc -c shape.xrc -v -o shape.h并回车,即可看到shap.h的文件了。

 

三、开始不规则窗口项目

 

1、新建一wxWidgets project项目,具体设置看图。

  

2、设置窗口属性

 

 

3、将shap.h拷贝到TT项目目录中,在TTApp.cpp中包含shap.h头文件,并将添加如下代码:

        =====文件名:TTApp.cpp=====
/***************************************************************
 * Name:      TTApp.cpp
 * Purpose:   Code for Application Class
 * Author:    代启发 ()
 * Created:   2012-08-04
 * Copyright: 代启发 ()
 * License:
 **************************************************************/

#include "TTApp.h"

//(*AppHeaders
#include "TTMain.h"
#include <wx/image.h>
#include "shape.h"
//*)

IMPLEMENT_APP(TTApp);

bool TTApp::OnInit()
{
    //(*AppInitialize
    bool wxsOK = true;
//    wxInitAllImageHandlers();
    wxImage::AddHandler(new wxPNGHandler);  // 必须的
    wxXmlResource::Get()->InitAllHandlers(); // 必须的
    InitXmlResource();
   if ( wxsOK )
    {
        TTFrame* Frame = new TTFrame(0);
        Frame->Show();
        SetTopWindow(Frame);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值