自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OpenGL载入图片作为纹理

参考资料:《厦门大学计算机图像学教程》第4.1章#ifndef GL_TEXTURE_LOADER#define GL_TEXTURE_LOADERtypedef struct // 建立一个结构体{ GLubyte *imageData; // 图像数据 (最高32bit) GLuint bpp; //

2013-10-25 12:58:35 10123

原创 OpenGL光照设置,实现渲染效果

OpenGL实现具有凹凸感的渲染效果图一、设置光照1、设置光照成分环境光:环境光来自于四面八方。所有场景中的对象都处于环境光的照射中。漫射光:由特定的光源产生,并在您的场景中的对象表面上产生反射。处于漫射光直接照射下的任何对象表面都变得很亮,而几乎未被照射到的区域就显得要暗一些。这样在我们所创建的木板箱的棱边上就会产生的很不错的阴影效果。镜面光:2、指定光照位置

2013-10-25 10:52:13 2798

原创 Messagebox()的参数个数的问题.<归属类发生了变换>

在控制台和MFC中使用Messagebox()时,会出现参数要求个数不一样的问题。1、控制台工程messagebox 的3个参数和4个参数 { MessageBox("示例用法", "demo", MB_OK);}messagebox 的3个参数和4个参数 { MessageBox("示例用法", "demo", MB_OK);}为什么我不新建工程

2013-10-24 19:42:40 1142

原创 在MFC中,运用轨迹球算法实现鼠标旋转物体

参考资料:nehe教程第48课《轨迹球实现的鼠标旋转》1、在头文件中为Arcball添加变量 //为Arcball添加变量用来获取当前鼠标点 Point2fT MousePt;// NEW: Current Mouse Point 2、在源文件中对轨迹球参数初始化transform是我们获得的最终的变换矩阵lastRot是上一次鼠标拖动得到的旋转矩阵th

2013-10-23 20:27:27 2379

原创 单缓冲和双缓冲的概念、双缓冲的设置

单缓冲:实际上就是将所有的绘图指令在窗口上执行,就是直接在窗口上绘图,这样的绘图效率是比较慢的,如果使用单缓冲,而电脑比较慢,屏幕会闪烁。双缓冲:实际上的绘图指令是在一个缓冲区完成,这里的绘图非常的快,在绘图指令完成之后,再通过交换指令把完成的图形立即显示在屏幕上,这样所有的画在同一个瞬间改变,就不会造成闪烁的现象了。一般用OpenGL绘图都是用双缓冲,单缓冲一般只用于显示单独的一副非

2013-10-23 19:34:58 2868

原创 String转char *,以便于使用fun(char *)函数

假设我要使用一个别人写好的f(char *)函数,但是我只有一个string对象 string s="hello"因为f的参数类型是char*, 而s的类型是string,那该怎么办呢?一、尝试一:使用c_str()函数 (×)好在string类提供了一个c_str函数,能够返回底层的char*指针所以我们打算这样用:f(s.c_str())但是这是错误的,因为c_str返

2013-10-22 19:14:00 596

原创 #pragma once&&#ifndef解释:头文件只被编译一次

一、#pragma once&&#ifndef解释#pragma once这是一个比较常用的C/C++杂注,只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次。#ifndef,#define,#endif是C/C++语言中的宏定义,通过宏定义避免文件多次编译。所以在所有支持C++语言的编译器上都是有效的,如果写的程序要跨平台,最好使用这种方式。二、具体写法

2013-10-21 13:04:49 599

原创 MFC菜单栏check设置:使菜单项前带有勾选标志,再点击消失的实现

一、要实现的效果图:二、实现:1、右击菜单项属性,将checked设置为ture。2、右击菜单项属性,添加事件处理程序,消息类型设置为:update_command_ui.

2013-10-21 11:19:15 8720

转载 MFC窗口启动最大化

常用MFC进行编程的人都知道单文档的编程,在编程过程中发现欲使程序在启动时就能最大化显示,这里的处理方法有多种,但是结果却不一样。首先大家最常用的就是在View类的PreCreateWindow函数中,修改窗口类型cs的值,也就是或上一个“最大化”即:[cpp] view plaincopycs.style |= WS_MAXIMIZE;   

2013-10-21 11:08:55 643

原创 <MFC>CString和<C++>标准库string的区别,及判断字符串是否为空

一、CString 和string 的区别1、string和CString均是字符串模板类,2、string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中;CString(typedef CStringT> CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用于ANS

2013-10-21 11:05:31 2316

原创 MessageBox()的错误解决、_T()和L的解释和区别

一、MessageBox(); 使用时出现的错误解决办法在MFC中用MessageBox("内容","标题",MB_OKCANCEL);有时候会出现 “CWnd::MessageBoxW”: 不能将参数 1 从“const char [19]”转换为“LPCTSTR”解决办法一:未设置unicode数据集就可以解决    MessageBox("内容","标题",M

2013-10-21 10:16:54 4710

原创 fstram.open()的实参形参问题

一、fstream  file;file.open(str.c_str());open函数的实参应该为C风格字符串,还不是标准库string对象。调用c_str()转换成c风格字符串。二、//做形参可以用指针、引用。//这里用指向char字符串的指针做形参void CLoadObj::readobj(const char* str)fstream objfile

2013-10-20 22:30:22 557

原创 解决fstream.open()不能正确读取中文路径的问题

解决fstream.open()不能正确读取中文路径的问题std::locale loc = std::locale::global(std::locale(""));//必须添加下面这句恢复,否则std::cout将无法正确输出中文名std::locale::global(loc);

2013-10-20 22:27:33 1554

原创 OpenGL创建MFC单文档框架

参考资料:《OpenGL高级编程与可视化系统开发》 第2.3节2.3  基于单文档的OpenGL图形程序的基本框架 我按照教程一步步操作,屏幕始终不能正确显示背景和图像。我犯的错误在于:解决办法:必须在类的属性窗口,在消息中添加消息响应函数,不能仅仅是复制代码。

2013-10-16 16:22:51 627

原创 <MFC>消息对话框的创建弹出

一、MFC消息对话框MessageBox()函数和AfxMessageBox()函数1.CWnd::MessageBox()函数       CWnd::MessageBox()的函数原型如下:      int MessageBox(           LPCTSTR lpszText,           LPCTSTR lpszCaption = NULL,    

2013-10-16 16:16:48 683

原创 <MFC>打开文件和保存文件对话框

文件对话框分为打开文件对话框和保存文件对话框。  文件对话框类CFileDialog      MFC使用文件对话框类CFileDialog封装了对文件对话框的操作。CFileDialog类的构造函数原型如下:explicit CFileDialog(   BOOL bOpenFileDialog,   LPCTSTR lpszDefExt = NULL,   LPCTST

2013-10-16 16:14:49 1151

原创 <MFC>消息对话框的创建弹出

一、MFC消息对话框MessageBox()函数和AfxMessageBox()函数1.CWnd::MessageBox()函数       CWnd::MessageBox()的函数原型如下:      int MessageBox(           LPCTSTR lpszText,           LPCTSTR lpszCaption = NULL,    

2013-10-16 16:12:52 880

原创 <MFC>模态对话框和非模态对话框的创建弹出

一、模态对话框的创建及显示1、Windows对话框分为两类:模态对话框和非模态对话框。    模态对话框:当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,在对它进行相应操作退出后,其他窗口才能继续与用户交互。非模态对话框:它弹出后,本程序其他窗口仍能响应用户输入。非模态对话框一般用来显示提示信息等。 2、模态对话框的弹出

2013-10-16 16:10:16 3411

原创 <MFC>创建对话框和新建对话框类

参考资料:《鸡啄米的IT博客》VS2010/MFC编程入门教程之目录和总结http://www.jizhuomi.com/software/257.html创建对话框主要分两大步,第一,创建对话框资源,主要包括创建新的对话框模板、设置对话框属性和为对话框添加各种控件;第二,生成对话框类,主要包括新建对话框类、添加控件变量和控件的消息处理函数等。 

2013-10-16 16:07:30 7656

空空如也

空空如也

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

TA关注的人

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