MFC:c++的窗口程序
数组对象复制:A a=b、直接赋值,memcpy(只能复制一个值)等并不能独立复制出来:用for循环赋值可以
<*.h>表示优先中系统目录中查找 该头文件 比如#include <stdio.h> 这是系统中的
"*.h"表示优先从当前目录中查找 该头文件 比如#include "head.h" 这是你自己写的
带 .h 的头文件是旧标准的
新的标准的头文件不带 .h
如果要用C++标准化了的C语言头文件,就得作如下的转换:#include <stdio.h> --> #include <cstdio>
int dirs[8][4]={1,7,2,6, 2,0,3,7 ,3,1,4,0 ,2,4,5,1 ,5,3,6,2 ,4,6,7,3 ,5,7,0,4 ,0,5,1,6};
typeof 指定别名
C++ typedef typename 作用
typedef typename std::vector<T>::size_type size_type
typedef创建了存在类型的别名,而typename告诉编译器std::vector<T>::size_type是一个类型而不是一个成员。
_T是一个宏,作用是让你的程序支持Unicode编码。
C++的模板: template <class 形参名,class 形参名,......>
它们拥有同一个函数名,相同的函数体,参数类型和返回值类型不一样
从这些函数中提炼出一个通用函数,而它又适用于多种不同类型的数据,这样会使代码的重用率大大提高。
CString拼接字符串和数字: c.Format( "%s%d %s%d %s%d %s%d \n","HEI为:",HEI, ", WID为: ",WID , "a为:",a, ", b为: ",b ) ;
如果是对象就用 .
如果是指针就用 ->
Vector 容器:vector类称作向量类,它实现了动态的数组,用于元素数量变化的对象数组。
构造函数:
vector():创建一个空的vector。
vector(itn nSize):创建一个vector,元素个数为nSize。
vector(int nSize, const T& t):创建一个vector,元素个数为nSize,且值均为t。
vector(const vector&):拷贝构造函数。
vector<int>a,b(n,0)的意思就是 创建了一个 int 类型的空的vector容器a,和一个 int 类型n个元素,且值均为0的vecotr容器b。
for(vector<string>::iterator myiter=s.begin(); myiter!=s.end(); ++myiter) //iterator迭代器中的项是随机的,到end为止!而不是小于end
{
cout << *myiter << endl; //iterator遍历
vector.erase(myiter); //删除当前项
*myiter = "hi";
}
--------------------------------------------------------------------------------
CString输出为txt文件
void CPosImageView::printTXT(CString str)
{
if (str.IsEmpty())
{
return;
}
CString Temp;
CStdioFile File;
File.Open(_T("H://桌面//pos日志.txt"), CFile::modeReadWrite|CFile::modeNoTruncate|CFile::modeCreate);
File.SeekToEnd();
Temp = _T("\r\n-----------------------BEGIN------------------------\r\n");
Temp += str;
Temp += _T("\r\n-----------------------END------------------------\r\n");
File.WriteString(Temp );
File.Close();
}
--------------------------------------------------------------------------------
应用程序的模板
SDI:单文档表示单窗口,从CFrameWnd类中派生。
MDI:允许打开多个文档,支持.doc,.html等,可切换不同文档的视图,有顶层框架,文档窗口,从CMDIFrameWnd类中派生
VC6中SDI程序的执行流程CSdiApp为APP的名字
CSdiApp theApp //全局对象theApp
CSdiApp::CSdiApp()构造函数//创建窗体,cppSdiApp 处理消息,将收到的消息分发给相应的对象
5)CMainFrame::CMainFrame()------------------------------------------- //MainFrm.cpp//CMainFrame是视图CSdiView的父窗口
6)BOOL CMainFrame::PreCreateWind-REATESTRUCT& cs)---------- //MainFrm.cpp
7)int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)--- //MainFrm.cpp
8)CSdiView::CSdiView()---------------------------------------------------//sdiView.cpp//视图类CSdiView用来显示文档类CSdiDoc的数据
9)BOOL CSdiView::PreCreateWindow(CREATESTRUCT& cs)--------- //sdiView.cpp
10)BOOL CSdiDoc::OnNewDocument()----------------------------------//sdiDoc.cpp
11) void CSdiView::OnDraw(CDC* pDC)----------------------------------//sdiView.cpp
// ---------------- 关闭窗口后-------------------------------------
12) CSdiView::~CSdiView()
13) CMainFrame::~CMainFrame()
14) CSdiDoc::~CSdiDoc()
AFX:Application Framework应用框架
afxwin.h定义MFC的核心和标准组件
assert宏:作用.如果assert()括号中的表达式/函数返回的是错误的,就终止运行;eg:assert(fileOpen!=NULL);
--------------------------------------------------------------------------------
CFrameWnd : 用途创建应用程序的主窗口, 属于主窗口管理视图和文档对象, 支持单文档界面(SDI)
OpenGL函数库前缀:
gl核心函数
glu使用函数,对核心函数进行了简单的封装,主要为了减少编程负担
aux辅助函数,主要是在windows平台上管理输入输出
wgl专用函数,w代表window,主要在windows平台使用
二值图像化思路:按照彩色的算就可以了,算完变成非二值图像,需要重新二值化
--------------------------------------------------------------------------------
图片左边跑到右边去了:fp读取的位置不对
24位
不需要调色板,直接使用RGB
位图数据的数据结构(eg:像素4*3的图片):
rgb rgb rgb rgb
rgb rgb rgb rgb
rgb rgb rgb rgb
8位256位
位图数据的数据结构(eg:像素4*3的图片):
值 值 值 值 //值在0-255之间,一个值对应着色板的一个颜色
值 值 值 值
值 值 值 值
调色板:
(3RGB*256的数组),对应256个彩色
--------------------------------------------------------------------------------
C++ 图形学
最新推荐文章于 2023-03-21 20:15:17 发布