- 浏览: 115837 次
文章分类
最新评论
-
myisland:
可以运行!一开始还以为要用本身就是透明背景的png呢,原来不是 ...
在CodeBlocks中用wxWidgets创建不规则窗口 -
lonerzf:
可以的。感谢。但是还有个问题,工程建立的时候有Configur ...
在CodeBlocks中用wxWidgets创建不规则窗口 -
鸵鸟大仙:
麻烦请问一下怎么在wxwidgets中加载msword.olb ...
利用wxwidgets操纵word -
dqifa:
Rat_boy 写道我现在也在做wxWidgets操作Word ...
利用wxwidgets操纵word -
Rat_boy:
我现在也在做wxWidgets操作Word的功能 但是搞了好久 ...
利用wxwidgets操纵word
最近要用codeblocks+wxWidgets做一个实验的结果图,采用的版本是codeblocksSVN完美配置绿色版,SVN6852,下载地址http://bt.neu6.edu.cn/viewthread.php?tid=692508&highlight=codeblocks
之所以采用这个版本是因为不需配置,方便快速做完现在手头上的东西。
新建工程,选择wxWidgets Project:
第一步之后是一个欢迎界面,无需理会,next;
弹出窗口提示选择wxWidgets的版本,我下的版本集成了2.8.x,选好后点击next;
设置路径和工程名:
输入作者信息,不理会,next;
选择使用的GUI类型,我做的功能比较简单,直接选None,next
输入wxWidgets的路径,由于利用了绿色版,也无需设置,保留$(#wx)这个全局符号,继续一路next;
最后工程建好,工程列表如下:
替换wxDrawApp.cpp中的内容:
#include "wxDrawApp.h" //(*AppHeaders #include "wxDrawMain.h" #include <wx/image.h> IMPLEMENT_APP(MyApp) bool MyApp::OnInit() { Line *line = new Line(wxT("Line")); line->Show(true); return true; }
更改wxDrawMain.cpp中的内容:
#include "wxDrawMain.h" Line::Line(const wxString& title) : wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(280, 180)) { this->Connect(wxEVT_PAINT, wxPaintEventHandler(Line::OnPaint)); this->Centre(); } void Line::OnPaint(wxPaintEvent& event) { wxPaintDC dc(this); // 绘制线段 wxCoord x1 = 50, y1 = 60; wxCoord x2 = 190, y2 = 60; dc.DrawLine(x1, y1, x2, y2); }
更改wxDrawApp.h中的内容:
#include <wx/wx.h> class MyApp : public wxApp { public: virtual bool OnInit(); };
更改wxDrawMain.h中的内容:
#include <wx/wx.h> class Line : public wxFrame { public: Line(const wxString& title); void OnPaint(wxPaintEvent& event); };
这些代码任何有过一点MFC、C++经验的人都可以看懂,新建了一个Line类,重载了库中的OnPaint函数,完成绘制一条线段的功能;
效果如下:
OnPaint响应函数中的内容可以进行修改,完成各种复杂的绘制,下面粘贴一点有用的代码实例:
void Line::OnPaint(wxPaintEvent& event) { wxPaintDC dc(this); // 绘制线段 wxCoord x1 = 50, y1 = 60; wxCoord x2 = 190, y2 = 60; dc.DrawLine(x1, y1, x2, y2); // 添加文字 dc.DrawText(wxT("fjsadk"), 40, 60); dc.DrawText(wxT("fwefdecd"), 70, 80); // 点 dc.DrawPoint(10,10); dc.DrawPoint(10,20); dc.DrawPoint(20,10); dc.DrawPoint(20,20); // 画笔 wxColour col1, col2; col1.Set(wxT("#0c0c0c")); col2.Set(wxT("#000000")); wxBrush brush(wxColour(255, 255, 255), wxTRANSPARENT); dc.SetBrush(brush); dc.SetPen(wxPen(col1, 1, wxSOLID)); dc.DrawRectangle(10, 15, 90, 60); dc.SetPen(wxPen(col1, 1, wxDOT)); dc.DrawRectangle(130, 15, 90, 60); dc.SetPen(wxPen(col1, 1, wxLONG_DASH)); dc.DrawRectangle(250, 15, 90, 60); dc.SetPen(wxPen(col1, 1, wxSHORT_DASH)); dc.DrawRectangle(10, 105, 90, 60); dc.SetPen(wxPen(col1, 1, wxDOT_DASH)); dc.DrawRectangle(130, 105, 90, 60); dc.SetPen(wxPen(col1, 1, wxTRANSPARENT)); dc.DrawRectangle(250, 105, 90, 60); // 绘制图形 wxColour gray, white, red, blue; wxColour orange, green, brown; gray.Set(wxT("#d4d4d4")); white.Set(wxT("#ffffff")); red.Set(wxT("#ff0000")); orange.Set(wxT("#fa8e00")); green.Set(wxT("#619e1b")); brown.Set(wxT("#715b33")); blue.Set(wxT("#0d0060")); dc.SetPen(wxPen(gray)); dc.DrawRectangle(20, 20, 50, 50); dc.DrawRectangle(30, 40, 50, 50); dc.SetBrush(wxBrush(white)); dc.DrawRectangle(100, 20, 50, 50); dc.DrawRectangle(110, 40, 50, 50); wxRegion region1(100, 20, 50, 50); wxRegion region2(110, 40, 50, 50); region1.Intersect(region2); wxRect rect1 = region1.GetBox(); dc.SetClippingRegion(region1); dc.SetBrush(wxBrush(red)); dc.DrawRectangle(rect1); dc.DestroyClippingRegion(); dc.SetBrush(wxBrush(white)); dc.DrawRectangle(180, 20, 50, 50); dc.DrawRectangle(190, 40, 50, 50); wxRegion region3(180, 20, 50, 50); wxRegion region4(190, 40, 50, 50); region3.Union(region4); dc.SetClippingRegion(region3); wxRect rect2 = region3.GetBox(); dc.SetBrush(wxBrush(orange)); dc.DrawRectangle(rect2); dc.DestroyClippingRegion(); dc.SetBrush(wxBrush(white)); dc.DrawRectangle(20, 120, 50, 50); dc.DrawRectangle(30, 140, 50, 50); wxRegion region5(20, 120, 50, 50); wxRegion region6(30, 140, 50, 50); region5.Xor(region6); wxRect rect3 = region5.GetBox(); dc.SetClippingRegion(region5); dc.SetBrush(wxBrush(green)); dc.DrawRectangle(rect3); dc.DestroyClippingRegion(); dc.SetBrush(wxBrush(white)); dc.DrawRectangle(100, 120, 50, 50); dc.DrawRectangle(110, 140, 50, 50); wxRegion region7(100, 120, 50, 50); wxRegion region8(110, 140, 50, 50); region7.Subtract(region8); wxRect rect4 = region7.GetBox(); dc.SetClippingRegion(region7); dc.SetBrush(wxBrush(brown)); dc.DrawRectangle(rect4); dc.DestroyClippingRegion(); dc.SetBrush(white); dc.DrawRectangle(180, 120, 50, 50); dc.DrawRectangle(190, 140, 50, 50); wxRegion region9(180, 120, 50, 50); wxRegion region10(190, 140, 50, 50); region10.Subtract(region9); wxRect rect5 = region10.GetBox(); dc.SetClippingRegion(region10); dc.SetBrush(wxBrush(blue)); dc.DrawRectangle(rect5); dc.DestroyClippingRegion(); }
from:http://www.cnblogs.com/ziqiao/archive/2011/11/14/2248268.html
发表评论
-
WX_DEFINE_ARRAY的使用
2018-03-20 12:07 660/**************************** ... -
wxBase64Encode和wxBase64Decode
2016-04-09 15:23 878#include <wx/base64.h> ... -
wxWidgets中 wxButton实现自动点击
2015-06-30 12:59 1102之前在用wxSocket通讯的时候,EVT_SOCKET事件 ... -
按键转换
2015-03-15 12:27 9641 void PopTextCtrl::OnChar(wxK ... -
获取当前路径
2014-03-09 16:51 690#include <wx/stdpaths.h> ... -
程序只运行一个实例,并将前一个实例提到前台
2014-02-28 18:28 918wxWidgets提供了一个用来检测是否只有一个实例(ins ... -
通过重载实现修改wxWidgets文本处理框wxTextCtrl和wxRichTextCtrl的右键弹出菜单
2014-02-27 13:44 2423wxWidget中这块是写死的,这让我感到非常 ... -
过滤wxTextCtrl控件输入的两种方法
2014-02-27 13:40 2005以下两种方法实现wxTextCtrl只接收0-9的数字. ... -
wxBoxSizer,wxFlexGridSizer,wxGridBagSizer,wxGridSizer使用示例
2014-02-26 10:44 1864wxBoxSizer,wxFlexGridSizer,wx ... -
wxWidgets类库结构图
2014-02-26 09:08 1220自从2.5.0开始,wxWidgets既可以编译成单一的代 ... -
wxWidgets框架下基于wxDialog程序的标准退出方法
2014-02-25 16:56 1545退出程序的标准方法 ... -
在exe程序中嵌入图片
2012-10-20 23:44 16051、利用Bin2C将图片转换成“*.c”文件; 2、包含“* ... -
怎样解决静态编译对mingwm10.dll的依赖?
2012-10-15 14:14 1166使用CodeBlocks+wxWidgets2.9.4编写的静 ... -
wxRegEx的使用
2012-10-09 20:35 1635#include <wx/regex.h>#inc ... -
wxWidgets中的wxTimer使用
2012-09-26 15:51 22671、包含头文件: #include <wx/ti ... -
使用wxStringTokenizer分割字符串
2012-08-30 21:51 2395//wxStringTokenizer::wxStringTo ... -
给图片添加图片水印
2012-08-20 10:21 835写在开始 不能用代码同时实现半透明和不规则形状的水印,只能选 ... -
绘制图形并填充
2012-08-17 13:32 980=====文件名:DrawShape.h=== ... -
wxMathPlot
2012-08-17 09:39 1239wxMathPlot wxMathPlot ... -
使用wxWidgets实现所见即所得打印(CodeBlocks)
2012-08-14 18:10 25731、从wxPrintout派生一个类Printout,类源码如 ...
相关推荐
Codeblocks+wxWidgets安装及编译
Windows 上配置 Code::Blocks + wxWidgets 在本篇文章中,我们将详细介绍如何在 Windows 上配置 Code::Blocks + wxWidgets。首先,我们需要安装 MinGW/GCC 编译器或 Microsoft 的编译器,然后下载并安装最新的 Code...
配置CodeBlocks与wxWidgets的集成,可以让你在CodeBlocks中创建和管理使用wxWidgets库的项目。以下是一个详细步骤的概述: 1. **安装CodeBlocks**:首先,你需要在D盘解压缩`codeblocks-20.03`文件,确保不改变其...
综上所述,开发“学生信息管理系统,Ubuntu下Codeblocks+wxWidgets编程”项目涉及到多方面的知识,包括操作系统、编程语言、GUI库、数据库管理、数据结构、文件操作和团队协作等。通过这样的项目实践,开发者不仅...
C++开发工具codeblocks+gcc+gdb,可以支持C++11标准,适合于初学者
这是一款在codeblocks环境下,使用wxWidegts3.1.0类库实现的小型推箱子游戏,使用语言为c++,这家伙这么老了,现在我们老师竟然还要让我们用这个编游戏做课程设计,网上啥资源的没有,编的我想吐,上传这个是为了帮...
CodeBlocks + Keil_C51编译器 C51单片机学习; CodeBlocks + SDCC开源编译器 C51单片机编译。普中51单片机开发版 stc89c52芯片实验板DIY套件 HC6800-ES V2.0光盘资料.zip
新推出的wxWidgets3.0.0可以运行CodeBlocks12.11的向导文件补丁,欢迎试用。直接覆盖CB安装目录下的CodeBlocks\share\CodeBlocks\templates\wizard\wxwidgets文件夹中即可
标题中提到的知识点是“Codeblocks+Qemu在IDE里面实现U-boot指令级调试”,这意味着文章将介绍如何利用Codeblocks这个集成开发环境(IDE)与Qemu这个开源的机器模拟器和虚拟化工具来实现U-boot的指令级别调试。...
在Windows平台上搭建Code::Blocks+wxWidgets环境,首先需要访问Code::Blocks官网下载最新版本的安装包,如1.0rc2,并按照默认设置安装。接着,需要设置系统环境变量Path,添加Code::Blocks的bin目录路径,确保系统...
这个压缩包包含了CodeBlocks 17.12版本的源代码以及wxWidgets 3.0.4库的源码。让我们深入探讨这两个组件及其在Linux环境中的应用。 首先,CodeBlocks是一个跨平台的IDE,它支持Windows、Linux和macOS操作系统。...
CodeBlocks + Keil_C51编译器 C51单片机学习; CodeBlocks + SDCC开源编译器 C51单片机编译。CodeBlocks + Keil_C51编译器 C51单片机学习; CodeBlocks + SDCC开源编译器 C51单片机编译。CodeBlocks + Keil_C51编译器 ...
C开发环境Codeblocks+GCC+GDB。
在本项目“codeBlocks + wxWidget做的扫雷程序”中,开发者利用了codeBlocks的IDE功能和wxWidgets库来实现经典的扫雷游戏。扫雷游戏有三种难度级别:初级、中级和高级,每种级别对应不同的雷区大小和雷的数量,这些...
CodeBlocks + Keil_C51编译器 C51单片机学习; CodeBlocks + SDCC开源编译器 C51单片机编译。普中51单片机开发版 stc89c52芯片实验板DIY套件 HC6800-ES V2.0光盘资料.zip -------- 不懂运行,下载完可以私聊问,可...
在Windows环境下配置CodeBlocks+GTK+3.0的开发环境是一项必要的任务,特别是对于那些希望在Windows上利用GTK+跨平台特性的开发者来说。GTK+是一个用于创建图形用户界面的开源工具包,最初设计用于Linux,但现在已经...
这个是一个外国人写的在CodeBlocks中建立的wxWidgets3.1工程的向导脚本,一放进去直接覆盖掉。
《基于CB+wXWidgets的俄罗斯方块游戏:KanagiTetris的开发与解析》 在编程领域,实现一款经典的游戏如俄罗斯方块,不仅可以锻炼编程技能,还能深入理解软件开发流程。本项目名为“KanagiTetris”,是由开发者使用...
### 搭建MinGW+CodeBlocks+wxPack开发环境 #### 第1章 MinGW ##### 1.1 简介 MinGW (Minimalist GNU for Windows) 是一套为Windows平台提供的GNU工具集合,其核心目标是允许开发者在Windows环境下创建原生的...