自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 vector和list

vector:在末端附加或删除元素 (push_back, pop_back),vector性能相当的好。如果在前端或中部安插或删除元素,性能就不怎么样了;因为操作点之后的每一个元素都必须移到另一个位置,而每一次移动都得调用assignment(赋值)操作符。list:存取是按顺序来,但是删除的时候是常数时间。vector 可用用iterator的++的方式

2012-07-24 22:18:10 645

原创 wxWidgets避免闪烁, 绘制卡的原因

MFC里面是CMemDC,能让每一步画的结果都绘制在一个memory dc中。实际上也就是在RAM中跟windows的DC尺寸一样的一块内存,数据绘画的结果如果启用该DC,就会绘到该memory中。对于闪烁,深层次的原因是在没有启用memory的时候,绘制的每一步的结果(画线的过程中,可能会逐步影响到绘制表面的一个一个像素;绘制图像更是;)都直接作用到了显示器会来抓取画面的内存中,所以

2012-07-24 14:43:12 1730

原创 wxWidgets为什么没有立即显示?

OnPaint()是每个窗口画自己的内容的地方,如果在这个画面中调用dc.DrawBitmap()之类的draw方法,是不会马上显示到窗口的区域的。原因在于OnPaint()对应的消息EVT_PAINT在窗口没有改变大小或者被覆盖或者失去焦点或者类似的情况的时候根本就不会产生,因此OnPaint()就没有被调用到。如果程序的情况是在把窗口缩小,然后放大后就能画出想画的东西,那么肯定属于

2012-07-23 09:42:00 1134

原创 VC的工作目录以及*.vcproj.*.*.user

VC工程中可以设置debug起来的时候的工作目录,这样我们的资源就可以放在这个工作目录内,模拟最后用户的环境中exe和资源的目录结构,非常方便。设置工作目录的路径在:属性页 | 配置属性 | 调试,在右侧的叶表中有工作目录一栏,把自己的.vcproj文件所在的目录为基础,填入相关的路径就可以了。很有意思的是,VC可能当时没有考虑到这个目录的协同工作化的时候的问题

2012-07-21 14:57:44 2879

原创 预编译头的问题

1, Visual Studio支持预编译头,因为随着现在工程量的级别越来越大,引用到的头文件越来越多,编译器在收到编译指令的时候,可能对某个文件编译出中间文件都耗费不少时间。因此产生了预编译头,也即是我们在工程中可以看到的.pch文件。可以在工程的 属性页 | 配置属性 | C/C++ | 预编译头 这个地方看到预编译头的设置,如果第一项是”使用预编译头“,那么第二项就是VS会找的一

2012-07-21 13:26:02 2060

原创 wxWidgets的上下文菜单

window有方法PopupMenu(),用来弹出菜单。在用这个PopupMenu()之前,我们需要在内存中创建一个菜单wxMenu aMenu;然后,用aMenu.Append(itemID, function)方法来在此菜单中加入各个项。在CPP文件中,我们得用EVT_MENU(itemID, function)来告知内核遇到某个ID消息,调用哪

2012-07-19 19:21:51 1264

原创 Shared类的解析

3D应用的程序实现中,为了一个简单的目标:单一的资源通过实例化来复用,以节省内存的开销。实现这个目的,往往会用上一个类,Shared(可以是任何通得过编译器的名字,这里只是用常见的名字)。class Shared{private: int referenceCount;protected: Shared() { referenceCount = 1;

2012-07-18 22:26:59 929

原创 wxWidgets的drag和drop

在两个不同窗口之间的drag和drop,或者是从应用程序外面传进来的drop(如从某个文件夹拖入文件到应用程序的窗口中),需要下面的知识:接收drop的窗口:1、接受drop的窗口在初始化的时候用SetDropTarget()方法来说明自己接受某类物体的drop;2、SetDropTarget()的参数是一个wxDropTarget的子类,常用的有wxTextDropT

2012-07-18 19:26:48 1605

原创 wxWidget treecontrol响应drag的步骤

前提是窗口继承wxTreeCtrl, 1, 在类的声明的结束部分的前面,加入DECLARE_EVENT_TABLE()来指示代码这个类需要消息路由。2, 给自己的窗口一个ID,头文件中加入enum{ TreeControlId = 3265;};3,类的实现文件中,加入消息映射的具体表格BEGIN_EVEN

2012-07-17 22:29:47 1307

原创 wxWidget的fileDialog, dirDialog

使用窗口惯了,一旦需要用上打开文件和文件夹,就会看是否有相关的类。wxWidget用wxFileDialog和wxDirDialog来实现打开文件、打开文件夹的对话框,非常方便。如wxFileDialog fileDialog(parentWnd, "Open file");fileDialog.ShowModel();就能弹出一个标准的本地对话框,用户可以在对话框中选择文件

2012-07-16 22:55:56 2217

原创 wxWidget的tree control和加入图标(icon)

wxWidget的tree由wxTreeCtrl来实现,如果想要在自己的窗口中加入树形控件,就让自己的相关窗口继承这个类吧。下面是从相关的头文件出来的继承列表:class WXDLLEXPORT wxTreeCtrl : public wxTreeCtrlBaseclass WXDLLEXPORT wxTreeCtrlBase : public wxControlclass W

2012-07-16 20:39:50 2495

原创 STL的使用

我对STL还是用的少,STL基本上都是架在模板上的,因此写起来需要用上用STL,必须用上using namespace std; 当然,也可以用std::xxx的形式,如std::list。

2012-07-14 23:42:00 998

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除