自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (5)
  • 收藏
  • 关注

原创 opengl学习笔记3-3-绘制三角形

绘制三角形有三种方法:GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN。顶点的指定次序以及方向的组合称为环绕,opengl默认逆时针方向环绕的一面是多边形的正面。本节代码下载地址(visual studio 2012工程):http://download.csdn.net/detail/airbigboy/6346731在本节代码中,

2013-10-05 22:03:29 641 1

原创 opengl学习笔记3-2-在3D中画线

本节学习画线。绘制线的方式和绘制点的方式类似,本节主要看代码。#include "GL/freeglut.h"#include #define GL_PI 3.1416fvoid RenderScene(void){ //clear the window use the current color glClear(GL_COLOR_BUFFER_BIT); GLf

2013-10-01 19:23:24 1924

原创 opengl学习笔记3-1-在3D中绘制点

这一节开始学习opengl的几何图形绘制。借助opengl提供的图元绘制函数,可是实现GUI的功能。顶点是最基本的图元,是所有opengl图元的最小公约数。顶点的几何意义不仅仅是空间的一个点,而是两条直线或曲线相交的点。这是图元的本质。图元只是一组顶点的集合,他们构成了在屏幕上所绘制的形状。opengl共有10种图元。绘制图元其中的一种方式是使用glBegin()命令告诉opengl开始对

2013-09-30 18:10:04 1153

原创 opengl学习笔记2-4-动画效果

本节是对笔记2代码的扩展。利用glut生成简单的动画效果。最近学习中遇到的几点困惑:1.OpenGL到底是什么?以SGI的GL三维图形库为基础制定的一个通用共享的开放式三维图形标准。定义上来看,OpenGL只是一个标准。2.OpenGL如何工作?3.OpenGL和OpenGL扩展之间的关系?4.使用OpenGL中某些特定功能编写的效果,被我自己的机子的显卡支持可以运行,在别

2013-09-26 22:20:36 970

转载 opengl学习笔记2-3-如何在windows中使用最新的opengl

前面的例子,介绍了如何在Windows下仅使用VS或SDK自带库创建OpenGL环境的方法和例子。微软开发OpenGL的历史如此之短,之后就全力开发自己的亲儿子:DirectX。从此之后Windows平台对OpenGL的内置支持就停留在OpenGL 1.1版。当然,在Vista之后,微软甚至开发了一个OpenGL到DirectX的转换层,支持到OpenGL 1.4,这使得系统在没有安装支持Op

2013-09-26 18:24:26 1001

原创 opengl学习笔记2-2-矩形绘制

本次利用opengl来绘制基本的图形,来使第一节的窗口内容慢慢的丰富起来。opengl核心库提供了115个函数(也许现在更多),函数的前缀为gl。我个人的理解是,opengl没有像dx一样,提供过多的封装,而只是提供了最近的功能函数,作为程序员可以用这些接口函数来实现自己想要的功能和效果,所以opengl需要更为聪明的使用。最近在做ios上的东西,在做东西的过程中深感这些年来自己一直学习的

2013-09-24 23:07:34 800

原创 opengl学习笔记2-1-基本的运行框架

此学习笔记参考书籍为Opengl超级宝典,第四版。在此记录和交流自己的学习心得,希望高手多多指教。为何使用GLUT,首先出现的aux,即opengl辅助函数库。aux函数库的目标是帮助人们学习和编写opengl程序,而不必为任何平台特定的细节而分神,不必顾虑所使用的是UNIX,Windows还是其它平台。如果使用aux,将不是编写“最终"的代码,更像是一个预备阶段,对自己的想法进行测试。由于缺

2013-09-22 22:35:25 987

转载 利用CImage完成图片的显示、拷贝、绘制及转换图片格式

近日一个利用VC编写的程序需要在界面上显示图片,经过查阅资料利用CImage方得实现。将相关技术点整理如下,以供以后参考。一、             图片的载入如果需要在界面上显示的是已经存在的图片,那么需要将待显示的图片载入至CImage对象之中,CImage提供了四个载入函数: HRESULT Load(LPCTSTR pszFileName) throw( );HRES

2013-08-26 08:29:53 951

转载 C++回调函数用法

一回调函数我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理、用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函数)有何不同呢?使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。而 那个函数在需要的时候,利用传递

2013-06-04 11:22:20 582

转载 向Richedit插入动态Gif的实现(关于QQ表情功能的制作)

最近希望做一个类似QQ表情的,能够插入图片和播放动画的RichEdit。找到了一位仁兄总结的比较好的资料,分享。原文地址:http://www.cnblogs.com/tony-law/archive/2011/09/16/2178944.html要做一个类似QQ表情的东西,用BCB6.0来做,本来这个工具也不是熟悉,用得多还是VC吧,难!上网查了一下,因为要播放GIF文件,那

2013-06-03 16:48:53 1728

转载 MFC中richedit控件插入BMP图片

1在对话框中拉入一个RichEdit控件。为它关联一个控件值CRichEditCtrl m_rch;2加入2个头文件#include #include 3在对话框中,添加成员函数void CRichEditIllustratePngDlg::InsertBitmap( CString pBmpFile ){ HBITMAP hBmp; hBmp =

2013-05-28 17:31:25 2443 1

转载 用GetLastError()来定位出错信息

Microsoft的Visual Studio C++处理中,有个API叫做 GetLastError(),此API通常用来给程序员指明最后的出错代码是什么,然后通过此出错代码到MSDN上可以查到相关的信息,Microsoft把这些信息叫做"System Error Codes",2010版的MSDN中有10张表格,包含了0到15999的出错代码对应的信息,相当的方便。下面是摘录的一部

2013-05-22 16:51:15 2873

转载 GetLastError

GetLastError返回的值通过在api函数中调用SetLastError或SetLastErrorEx设置。函数  并无必要设置上一次错误信息,所以即使一次GetLastError调用返回的是零值,也不能  担保函数已成功执行。只有在函数调用返回一个错误结果时,这个函数指出的错误结果  才是有效的。通常,只有在函数返回一个错误结果,而且已知函数

2013-05-13 09:23:56 1414

转载 十大OpenGL教程

1.http://nehe.gamedev.net/这个是我觉得全世界最着名的OpenGL教程,并且有网友将其中48个教程翻译成了中文http://www.owlei.com/DancingWind/。Nehe教程最大的特 是提供了针对差别平台、差别编译器、差别言语的种种版本。你不消考虑本人用的是Linux/Windows、VC/BC、C++/Java/C#/VB,以致D言语,你都能找到对应的

2013-05-10 10:16:34 1152 1

转载 glew库

GLEW是一个跨平台的C++扩展库,基于OpenGL图形接口。使用OpenGL的朋友都知道,window目前只支持OpenGL1.1的涵数,但 OpenGL现在都发展到2.0以上了,要使用这些OpenGL的高级特性,就必须下载最新的扩展,另外,不同的显卡公司,也会发布一些只有自家显卡才支 持的扩展函数,你要想用这数涵数,不得不去寻找最新的glext.h,有了GLEW扩展库,你就再也不用为找不到函数

2013-05-09 10:05:16 1071

转载 OPENGL中GLU和GLUT工具箱

OpenGL函数库相关的API有核心库(gl)、实用库(glu)、辅助库(aux)、实用工具库(glut)、窗口库(glx、agl、wgl)和扩展函数库等。gl是核心,glu是对gl的部分封装。glx、agl、wgl 是针对不同窗口系统的函数。glut是为跨平台的OpenGL程序的工具包,比aux功能强大。扩展函数库是硬件厂商为实现硬件更新利用OpenGL的扩展机制开发的函数。下面逐一对这些库进行

2013-05-09 08:58:30 1012

原创 windows下OpenGL开发前准备

Windows为了发展其本身的DirectX,只支持OpenGL1.1,可是至2013年5月,OpenGL已更新到4.3版本。  如何能够让Windows支持更高版本的OpenGL?  显卡可能可以从硬件上直接实现更高版本的OpenGL的相关函数。  查看显卡支持的OpenGL版本的方法,glGetString(GL_VERSION);  查看支持的相关扩展:glGetStri

2013-05-08 15:28:30 795

转载 vs2010中CTreeView中准确响应鼠标左键单击的方法

vs2010中CTreeView中准确响应鼠标左键单击的方法: /*********************************************************************************************函数: OnNMClick*作用: 通过类向导添加的 NM_CLICK 消息的响应函数,响应鼠标单击消息*参数: p

2013-05-07 16:37:40 1879

原创 (MFC)CTreeCtrl得到当前选择项的方法

在CTreeCtrl的OnNMClick函数中,调用GetSelectItem()方法得到的总是前一个被选择的项。调用如下方法,可以得到当前选择项。HTREEITEM CLobbyTreeWnd::GetCurrentTreeItem(){TVHITTESTINFO HitTestInfo;ZeroMemory(&HitTestInfo, sizeof(HitTestInfo)

2013-05-07 16:34:16 3492

转载 win32下进程间通信——共享内存

一、引言    在Windows程序中,各个进程之间常常需要交换数据,进行数据通讯。WIN32 API提供了许多函数使我们能够方便高效的进行进程间的通讯,通过这些函数我们可以控制不同进程间的数据交换.    进程间通讯(即:同机通讯)和数据交换有多种方式:消息、共享内存、匿名(命名)管道、邮槽、Windows套接字等多种技术。“共享内存”(shared memory)可以定义为对一个以上的

2013-05-06 13:31:21 1033

转载 CSingleLock

CSingleLockCSingleLockCSingleLock没有基类。一个CSingleLock类对象代表一种访问控制机制,这种机制用于控制在一个多线程程序中对一个资源的访问。为了使用同步类CSemaphore,CMutex,CCriticalSection,和CEvent。你必须创建一个CSingleLock或CMultiLock对象来等待和释放这个同步对象。当

2013-05-03 14:53:33 845

转载 理解EnterCriticalSection 临界区

通俗解释就像上厕所: 门锁了,就等着,等到别人出来了,进去锁上,然后该干什么干什么,干完了,把门打开门没锁,就进去,锁上,然后该干什么干什么,干完了,把门打开-------------------------------------------------- 多线程中用来确保同一时刻只有一个线程操作被保护的数据InitializeCriticalSection(&c

2013-05-03 14:52:51 644

转载 WM_COPYDATA实现进程间数据共享

进程通信——使用WM_COPYDATA消息通信3.4  使用WM_COPYDATA消息通信对于少量数据可以用WM_COPYDATA方便地实现通信。由于SendMessage()是阻塞的,只有接收方响应了消息,SendMessage()才能返回,否则一直阻塞。所以,对于大量数据来说,用SendMessage()就容易造成窗口假死。3.4.1  通过WM_COPYDATA消息实现进程间通信

2013-04-28 14:52:01 679

转载 WaitForSingleObject函数的使用

等待函数可使线程自愿进入等待状态,直到一个特定的内核对象变为已通知状态为止。这些等待函数中最常用的是WaitForSingleObject:  DWORD WaitForSingleObject(HANDLE hObject, DWORD dwMilliseconds);当线程调用该函数时,第一个参数hObject标识一个能够支持被通知/未通知的内核对象。第二个参数dwMillis

2013-04-27 10:23:14 841

转载 线程中CreateEvent和SetEvent及WaitForSingleObject的用法

线程中CreateEvent和SetEvent及WaitForSingleObject的用法首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面.CreateEvent函功能描述:创建或打开一个命名的或无名的事件对象.EVENT有两种状态:发信号,不发信号。 SetEvent/ResetEvent分别将EVENT

2013-04-27 09:54:35 803

转载 CreateMutex

HANDLE hMutex; hMutex = ::CreateMutex(NULL, FALSE, NULL); ::WaitForSingleObject(hMutex, INFINITE); // 1 ::WaitForSingleObject(hMutex, INFINITE); // 2好多初学者都认为,设置为FALSE就是没有获得获得信号。。 其实这是错误的

2013-04-27 09:52:01 704

转载 Windows 下的进程间通讯及数据共享

Windows 下有很多方法实现进程间通讯,比如用 socket,管道(Pipe),信箱(Mailslot),等等。但最基本最直接的还是使用内存共享。其他方法最终还是会绕道这里。可想而知,如果物理内存只有一份,让这份内存在不同的进程中,映射到各自的虚拟地址空间上,每个进程都可以读取同一份数据,是一种最高效的数据交换方法。下面我们就讨论如何实现它。共享内存在 Windows 中是用

2013-04-19 13:28:50 475

转载 C/C++程序内存类型

一直都把堆栈放一起,所以很多人会误以为他们的组合是一个词语,就像“衣服”一样简单,其实不然,今天在下就将最近学习总结的一些与大家分享。      一个由C/C++编译的程序占用的内存分为以下几个部分:      1、栈区(stack):又编译器自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构的栈。      2、堆区(heap):一般是由程序员分配释放,若程序员

2013-04-18 18:23:20 655

转载 vc中CString::Format出现的Buffer too small错误(转)

原文如下(转自http://yiyunscu.blog.163.com/blog/static/36263320201091010349294/):这段时间一直在忙项目,也没有时间来博客把这段时间的东西整理下粘贴上来,只是今天晚上把手上的工作调试完成了,上了博客才决定把今天遇到的问题发上来供大家参考。     今天一天都在编代码,作调试,到晚上才发现以前的项目中的代码存在问题,但是

2013-04-17 10:51:45 764

转载 CListCtrl控件功能扩展总结

所有者绘制(owner-draw)和自定义绘制(custom-draw)这两种方法应该是控件自绘中最常用到的普遍方法。(当然如果只是改变控件颜色只需要处理WM_CTLCOLOR消息就可以了。)但是对于这两者的区别,可能很多开发人员并不是很清楚。如果你做过控件自绘,可能对owner-draw已经很熟悉了。一般只要设置控件的自绘风格属性,并实现owner-draw的消息(WM_DRAWITEM)响

2013-03-27 11:18:54 1547 2

转载 窗体的扩展样式和其值

WS_EX_ACCEPTFILES = 0x00000010指明了一个已创建视窗具有拖拽文件功能WS_EX_APPWINDOW = 0x00040000强制一个可见的顶级视窗到工具栏上WS_EX_CLIENTEDGE = 0x00000200使一个视窗具有凹陷边框WS_EX_COMPOSITED = 0x02000000Windows XP:将一

2013-03-14 15:16:21 643

转载 电脑快捷键大全

键盘上相当于鼠标右键的快捷键和电脑快捷键大全鼠标右键的快捷键1、右边win键的右边的键;2、Shift+F10。电脑快捷键大全 快捷键 单独按Windows:显示或隐藏 “开始”功能表 Windows+BREAK:显示“系统属性” 对话框 Windows+D:显示桌面 Windows+M:最小化所有窗口 Windows+Shift+M:还原最小化的窗口

2013-03-06 10:12:27 786

转载 C++中Txt文件读取和写入

C++中Txt文件读取和写入一、ASCII 输出为了使用下面的方法, 你必须包含头文件(译者注:在标准C++中,已经使用取代,所有的C++标准头文件都是无后缀的。)。这是 的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, 已经被包含了, 所以你不必包含所有这两个文件, 如果你想显式包含他们,那随便你。我们从文件操作类的设计开始, 我会讲解如何进行ASCII I/O操作。如果你猜是

2013-03-04 17:40:17 700

转载 char和TCHAR之间转换

VC char和TCHAR之间转换char:计算机编程语言(c、c++、java、VFP等)中可容纳单个字符的一种基本数据类型。TCHAR:为了满足Unicode编码,对char的扩展,即_T(“str”)表示TCHAR类型C++支持两种字符串,即常规的ANSI编码(使用""包裹)和Unicode编码(使用L""包裹),这样对应的就有了两套字符串字符串处理函数,比如:strlen和

2013-03-01 14:43:36 942

转载 静态成员函数调用非静态成员变量

程序最终都将在内存中执行,变量只有在内存中占有一席之地时才能被访问。类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。在一个类的静态成员中去访问其非静态成员之所以会出错是因为在类的非静态成员不存在的时候类的静态成员就已经存在了,

2013-02-27 11:17:02 559

转载 (孙鑫)菜单的原理及编写

孙鑫VC视频笔记 新建一个工程->MFCAppWizard[exe]->工程名Menu->单文档应用程序 弹出菜单不能用来命令响应 在资源里面,增加一个菜单项,为它改了一个新id:IDM_MYMENU,并做消息响应。 在左边object ids选择IDM_MYMENU,在消息上面选COMMAND,在CMainFrame这个类增加消息响应函数。 === 消息的分类

2013-02-23 13:47:36 702

转载 Visual Studio遇到异常。这可能是由某个扩展导致的。

装了个VS2010,安装了2008的MSDN,一开始还没出现问题,不过过了几天,问题就出现了:     只要在VS2010源码编辑器中输入一个字符,它就报道错误了 "visual studio 2010 遇到了异常,可能是由某个扩展导致的......"。刚开始一看,以为是扩展引起的,那我就把vs中所有的扩展暂时禁用一下,结果bug还是依旧。求助google, 以下是具体的解决方法:

2013-02-22 10:15:47 1708

转载 MFC控件之TreeCtrl

当无法可视化设置控件属性的时候,需要手动对控件属性进行设置。此时需要对控件属性十分了解。在此看一下TreeCtrl控件的属性设置。一、TreeCtrl不管是作用TreeCtrl控件还是ListCtrl控件,都得用到几个结构体,如果对这些结构体不了解,那在使用控件时就糊理糊涂的,胡乱修改结构体的值,设置不出想要的结果,也不知改哪里,结果出来了也不知怎么出来的。所以必须对我们所要认知的东西

2013-02-21 17:24:15 1078

转载 extern "C"的用法解析

extern "C"的用法解析1.引言  C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函

2012-07-11 23:08:16 411

code_opengl学习笔记3-opengl绘制图元

opengl suberbible第四版 几何图元和缓冲区的代码整理。为visual studio 2012可运行工程,如需学习,可下载查看。

2013-10-01

code_opengl学习笔记3-1-在3D中绘制点

这一节开始学习opengl的几何图形绘制。借助opengl提供的图元绘制函数,首先从最基本的绘制点图元开始

2013-09-30

opengl学习笔记4-动画效果

使用opengl生成简单的动画效果。这是本章的最后一个实例,接下来学习opengl的基本绘图。

2013-09-26

code__opengl学习笔记2-绘制矩形

opengl,freeglut 基本绘制矩形矩形实例代码。

2013-09-24

code__opengl学习笔记1-基本的运行框架

visual studio 2012的代码。包含freeglut库。

2013-09-22

空空如也

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

TA关注的人

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