- 博客(18)
- 收藏
- 关注
原创 GDI绘制填充图
1、矩形填充图(1)、填充矩形图函数FillRect():用指定的画刷填充一个无边线的矩形区域(上边界和左边界)Void FillRect( LPCRECT lpRect, //将要填充的矩形 CBrush* pBrush //填充矩形所需的画刷)(2)、单色矩形填充函数void FillSolidRect( LPCRECT lpRect, //填充的矩形 COLORREF clr //填充矩形的颜色)(3)、实例...
2022-04-12 21:34:02
1568
原创 GDI基础知识
一、GDI的基础类1、CDC类:CObject的直接派生类(1)、用于获取DC句柄的函数GetDC():全新的临时默认DC,不能长期保存CDC* GetDC();(2)、用于获取DC安全句柄的函数GetSafeHdc():获取的DC句柄长期有效HDC GetSafeHdc();(3)、用于释放DC的函数Release DC():释放获取的DCint ReleaseDC(CDC* pDc);2、画笔类(1)、使用构造函数创建初始画笔CPen( int
2022-04-09 21:05:09
2031
原创 MFC个人信息显示
1、界面:2、控件的ID设置3、功能实现(1)、日期和时间的显示类向导中找到WM_TIMER添加OnTimer函数,设置两个计时器,分别显示日期和时间;void CButtonandlistDlg::OnTimer(UINT_PTR nIDEvent){ // TODO: 在此添加消息处理程序代码和/或调用默认值 CString m_strTime,m_strDate ; CTime theTime,theDate; int y,m,d,h,min,s; s..
2022-03-30 20:38:21
433
1
原创 MFC菜单类
给计算器加上菜单1、在Calculate.rc中添加资源类型Menu2、添加菜单名和功能键3、添加功能"+":添加函数void CCalculateDlg::OnCalAdd(){ // TODO: 在此添加命令处理程序代码 OnBnClickedAddButton();}“-”:添加代码void CCalculateDlg::OnAddDifit(){ // TODO: 在此添加命令处理程序代码 char Item4[10],Item5[10]; m_I
2022-03-26 21:07:02
196
原创 MFC 计算器应用程序
使用MFC AppWizard创建基于对话框的应用程序,实现算术加、减、乘和除的运算。1、添加控件(1)、4个Static Text:数据1、数据2、结果、“=”(2)、3个Edit Control:显示数字(3)、6个Button:+、-、*、/、clear、exit2、给Edit Control添加变量(double)3、给Button添加事件处理函数“+”:void CCalculateDlg::OnBnClickedAddButton(){ // TODO: 在此
2022-03-25 21:47:57
471
原创 window绘图
编写个程序,在屏幕上出现一个圆心沿正弦曲线轨迹移动的实心圆。要求每隔1/4周期,圆的填充色和圆的周边颜色都发生变化(颜色自己选取),同时,圆的半径在1/4周期之内由正弦曲线幅值的0.2 ~ 0.6倍线性增长。#include<Windows.h>#include<stdio.h>#include<string>#define Pi 3.1415926double dfRange=100.0; //正弦曲线的角度变量long i=0,j=0;long
2022-03-22 21:05:16
533
原创 Win32程序结构
#include<Windows.h>#include<stdio.h>#undef UNICODELRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM IParam) { HDC hdc; //设备描述表的句柄 switch(message) { case WM_PAINT: PAINTSTRUCT ps; hdc=BeginPaint(hWnd,&am.
2022-03-22 18:42:38
132
原创 构造函数与析构函数
#include<iostream>#include<stdio.h>using namespace std;using std::cout; class CPoint{ int x,y;public: CPoint(int xx,int yy){x=xx;y=yy;cout<<"构造函数被调用"<<endl;} //构造函数 CPoint(CPoint &p); .
2022-03-03 20:01:43
123
原创 nth_element()
1、头文件#include<algorithm>2、函数模板default (1) template <class RandomAccessIterator> void nth_element (RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last); custom (2) te
2021-11-23 20:52:39
602
原创 双端队列类模板和链表类模板
一、双端队列类模板双端队列(deque)是一种随机访问的数据类型,提供了在序列两端快速插入和删除操作的功能,它可以在需要的时候修改其自身的大小,主要完成标准c++数据结构中队列的功能。1、使用双端队列类模板需要创建deque对象,创建deque对象有以下几种方法:(1)、std::deque<type>name;(2)、std::deque<type>name(size);(3)、std::deque<type>name(size,value);(
2021-11-09 20:03:58
1091
原创 向量类模板
向量(vector)是一种随机访问的数组类型,提供了对数组元素的快速、随机访问,以及在序列尾部快速、随机的插入和删除操作。它是大小可变的向量,在需要时可以改变其大小。1、使用向量类模板需要创建vector对象,创建vector对象有以下几种方法。(1)、std::vector<type>name;该方法创建了一个名为name的空vector对象,该对象可容纳类型为type的数据。(2)、std::vector<type>name(size)该方法用来初始化具有si
2021-11-09 18:40:10
1201
原创 链表和链表类模板
1、链表设计一个简单的单项链表。链表的功能包括向尾节点添加数据、遍历链表中的节点和在链表结束时释放所有节点。定义一个链表类class cnode //定义一个节点类{public: cnode *m_pnext; //定义一个节点指针,指向下一个节点 int m_data; //定义节点的数据 cnode() { m_pnext=NULL;
2021-11-08 21:28:20
1912
1
原创 类型推导——关键字的使用
int a=3;auto b=a;变量b的类型被推导为int类型。同样的,使用auto关键字声明的数据可以被任何非空类型的数据、表达式和函数初始化。auto i=func(函数列表); //func的返回值为非空decltype也是实现这个特性的关键字,它的作用是可以获得某一表达式、函数或者数据的数据类型Type a=somevalue; //a的数据类型为Type,somevalue表示的是这一类型合法的值decltype(a) p=somevalue;.
2021-10-27 21:07:36
133
原创 右值引用传递函数
左值可被反复使用,例如变量a;右值使用后消亡,如值3。float func(float &f) //左值引用float func(float &&f) //右值引用#include<iostream>using namespace std;static float global=1.111f;void func(float &&f) //右值引用{ global +=f;}float getFloat(){ f...
2021-10-26 20:59:57
278
原创 数组指针与指针数组
int (*a)[3]数组指针,指向一个含有3个整型变量的数组int *a[3]指针数组,存储指针的数组,最多只能存储3个指针实例#include<iostream>using namespace std;void main(){ int a[3][4]; int (*b)[4]; //定义一个数组指针,可以指向一个含有4个整型变量的数组 int *c[4]; //定义一个指针数组,存储指针的数组,最多只能存储4个指.
2021-10-23 19:59:46
87
原创 汉诺塔问题
有3个立柱垂直矗立在地面,给这3个立柱分别命名为A、B、C。开始的时候立柱A上有n个圆盘,这n个圆盘大小不一,并且按从小到大的顺序依次摆放在立柱A上,如图所示。现在的问题是要将立柱A上的n个圆盘移到立柱C上,并且每次只允许移动一个圆盘,在移动过程中始终保持大盘在下,小盘在上。可以使用递归的思路来移动n个圆盘(1)、把1上的n-1个圆盘移到2上(2)、把1上的一个圆盘移到3上(3)、把2上的n-1个圆盘移到3上代码如下:#include<iostream>u..
2021-10-23 18:36:44
116
原创 巴斯卡三角
巴斯卡三角是两个边全输出1,三角形的内部用上行相邻两个数之和,各相加后的和数等分地放在三角形的各行内#include<iostream>#include<iomanip>using namespace std;long combi(int n,int r){ int i; long p=1; for(i=1;i<=r;i++) p=p*(n-i+1)/i; return p;}void main(){.
2021-10-23 18:12:09
253
原创 指向常量的指针、指针常量、指向常量的指针常量
指向常量的指针、指针常量、指向常量的指针常量1、指向常量的指针int a=52;const int *p=&a;可以直接通过变量a来修改内存内容,但通过该指针修改内存内容的操作是不被允许的。2、指针常量int a=13;int *const p=&i;*p=6;将const放在指针运算符*后,构成指针常量,无法改变它的内存指向,但是可以改变它指向内存的内容。3、指向常量的指针常量int a=14;int const* const p=&a
2021-10-20 21:15:17
215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人