- 博客(21)
- 资源 (9)
- 收藏
- 关注
原创 c++11
变量的大括号赋值(初始化器)、类型转换(不允许缩窄)char c1{221};char c2 = {221};char c4 = {c1};auto 声明 自动判断变量类型 用于STL 效果强大auto n = 100; //intauto x = 1.4; //doubleauto y = 1.2e12L; //long double
2014-02-12 23:02:53 776
原创 绘图模式
windows使用画笔绘制直线时,实际上是将画笔的像素颜色和目标显示表面的像素颜色按位进行布尔运算。对像素颜色执行一个按位布尔运算称为“光栅操作”(rasteroperation,ROP)绘制一条直线只涉及两种像素颜色(画笔和目标),这里的布尔运算就称作“二元光栅操作”,即“ROP2” windows定义了 16 种 ROP2运算码,每一个都是windows组合画笔像素色和目标像素
2014-02-07 12:46:09 978
原创 坐标系统、映射模式
三种坐标系统:屏幕坐标全窗口坐标客户区坐标ClientToScreen 把客户区坐标转换到屏幕坐标ScreenToClient 把屏幕坐标转换到客户区坐标GetWindowRect 以屏幕坐标形式获取整个窗口的位置和大小GetClientRect (hwnd, &rect);DPtoLP (HDC hdc, POINT * pPoints, int iNumbe
2014-02-07 12:44:44 995
原创 窗口状态
#includevoid hide(void){ HWND hwnd; hwnd=FindWindow(TEXT("ConsoleWindowClass"),NULL); if(hwnd) { ShowOwnedPopups(hwnd,SW_HIDE); ShowWindow(hwnd,SW_HIDE); }}B
2014-02-07 12:40:49 1412
原创 矩形、区域和裁剪
矩形FillRect (hdc, &rect, hBrush); 填充矩形,到达但不包括右下坐标FrameRect (hdc, &rect, hBrush); 绘制矩形框,不填充,画刷用来绘制边框,此函数允许绘制不是纯色的矩形框,矩形边框是1个逻辑单位宽,如果逻辑单位大于设备单位,边框的宽度将是2个或更多像素。InvertRect (hdc, &rect); 翻转矩形内所有
2014-02-07 12:38:28 1275
原创 画刷
Windows的6中备用画刷WHTIE_BRUSH 默认LIGRAY_BRUSHGRAY_BRUSHDKGRAY_BRUSHBLACK_BRUSHNULL_BRUSH (又称HOLLOW_BRUSH)HBRUSH hBrush; //定义画刷句柄hBrush = GetStockObject (GRAY_BRUSH); //获取画刷SelectObj
2014-02-07 12:37:00 875
原创 GDI 函数
SetPixel 画像素COLORREF crColor;SetPixel (hdc, x, y, crColor) ; crColor = GetPixel (hdc, x, y) ;GetCurrentPositionEx (hdc, &pt) ;LineTo 画直线。 MoveToEx (hdc, xBeg, yBeg, NULL) ; Li
2014-02-07 12:36:10 760
原创 滚动条
创建窗口的第三个参数WS_VSCROLLWS_HSCROLL在内定情况下,滚动条的范围是从0(顶部或左部)至100(底部或右部),但将范围改变为更方便于程序的数值也是很容易的:SetScrollRange (hwnd, iBar, iMin, iMax, bRedraw) ;参数iBar为SB_VERT或者SB_HORZ,iMin和iMax分别是范围的最小值和最大值。如
2014-02-07 12:34:10 657
原创 画笔
windows备用画笔(stock pen) BLACK_PEN WHITE_PEN NULL_PENstatic HPEN hPen; //画笔句柄 WM_CREATEhPen = GetStockObject (WHITE_PEN); //获取备用画笔hPen = CreatePen (iPenStyle, iWidth, crColor); //
2014-02-07 12:32:41 681
原创 RTTI 运行阶段类型识别
RTTI是运行阶段类型识别C++有3个支持RTTI的元素dynamic_cast 如可能,使用一个指向基类的指针生成派生类指针,否则返回空指针typeid 返回一个指出对象类型的值type_info 结构存储了有关特定类型的信息* 只能将RTTI用于包含虚函数的类层次结构dynamic_cast(pg); //pg是否能够安全的转换为Su
2014-02-07 12:30:12 591
原创 STL容器简介
STL 标准模板库 容器类型以前的11个容器类型deque、list、queue、priority_queue、stack、vector、map、multimap、set、multiset、bitsetC++11 新增了 forward_list、unordered_map、unordered_multimap、unordered_set、unordered_multise
2014-02-07 12:28:35 676
原创 函数对象(函数符)
函数对象(函数符)很多STL算法都使用函数对象,也叫函数符(functor)。函数符是以函数方式与( )结合使用的任意对象,如函数名、指向函数的指针、重载了( )运算符的类对象函数符概念1.生成器(generator)是不用参数就可以调用的函数符2.一元函数(unary function)是用一个参数可以调用的函数符3.二元函数(binary function)是用两个参数可以
2014-02-07 12:26:48 1150
原创 迭代器
迭代器类型输入迭代器(相对容器来说,即来自容器的信息)、输出迭代器(传输给容器的信息)、正向迭代器、双向迭代器、随机访问迭代器迭代器 头文件iteratorostream_iterator out_iter(cout, " ")输出流迭代器,第一个模板参数为发送给输出流的数据类型,第二个模板参数指出输出流使用的字符类型(另一个可能值是wchar_t),构造函数第一个参数指出
2014-02-07 12:22:37 609
原创 string类
string::npos 指定了string 对象最大允许长度,通常是最大的unsigned int值构造函数string(const char * s)初始化为s指向的NBTS (以空字符结束的传统的C 字符串)string(size_type n, char c)创建包含n个元素的string对象,每个元素都初始化为cstring(const string & str)
2014-02-07 12:20:13 509
原创 类
类中默认访问类型是 private 结构默认访问类型是public定义位于类声明中的函数都将自动成为内联函数,在类声明之外定义时若使其成为内联函数,需加 inline限定符在类中创建常量用作数组长度等用途直接声明行不通,因为类只描述对象的形式,并没有创建对象,因此创建对象前,没有用于存储的空间。解决方法是1.声明一个枚举,作用域为整个类class Bakery
2014-02-07 12:18:06 663
原创 类型转换运算符
4种类型转换运算符dynamic_castconst_caststatic_castreinterpret_castdynamic_cast (expression) 类层次结构中进行向上(基类)转换,否则返回空指针const_cast (expression) 只用于改变值为const 或volatile 不改变类型(可用于值大多数时候为con
2014-02-07 12:16:06 622
原创 内存模型
内存模型1.自动变量 在代码块中声明2.寄存器变量 在代码块中,使用关键字register3.静态持续性、外部连接性 函数外4.静态持续性、内部连接性 函数外,加static5.静态存储持续性、无连接性代码块内部6.动态分配 由new、和delete 结合使用通常编译器使用三块独立内存,分别用于: 静态变量(可能再细分)、自动变量、动态存储
2014-02-07 12:12:00 551
原创 异常
exception 类头文件:exception | exception.h | except.hwhat() 成员返回字符串stdexcept 异常类(头文件stdexcept)该文件定义了 logic_error 和runtime_error 都以公有方式从exception 派生而来logic_error 类系列 描述逻辑错误 含有domain_err
2014-02-07 12:07:26 728
原创 智能指针
智能指针 头文件 memory 必须使用new 分配内存,才可使用。(unique_ptr 支持new[])auto_ptr unique_ptr (C++11)shared_ptr (C++11)weak_ptr为避免两个指针指向同一个对象,auto_ptr 和 unique_ptr 建立所有权(ownership)概念,赋值时所有权转让,unique_
2014-02-07 12:04:51 638
原创 运算符重载
运算符重载operatorX () //X为重载的运算符operator++() //前自增operator++(int) //后自增运算符重载限制1.必须至少有一个操作数是用户定义的类型,这将防止用户为标准类型重载运算符2.不能违反运算符原来的句法规则,即不能改变操作数数量,不能改变优先级3.不能创建新运算符4.不能重载下面的运算符sizeof 运算符
2014-02-07 12:03:22 553
原创 C语言 文件的输入输出
文件的输入输出函数分为两大类1.有缓冲区的输入输出(Buffered I/O) 数据先写到缓冲区,满了再写入文件2.无缓冲区的输入输出(Unbuffered file I/O) 直接操作文件有缓冲区的输入输出函数,含于stdio.hfopen() 打开一个文件fclose() 关闭一个文件putc() 输出一个字符到文件,宏定义getc() 从文件读取一个字
2014-02-07 12:00:04 4024
C++语言参考.chm
2011-07-07
VC++之MFC类库中文手册
2011-07-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人