- 浏览: 196348 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
在世界的中心呼喚愛:
思路很好
连连看全局消除算法 -
tianaozhu:
请问,我修改了词库和源文件怎么就不好用了, 我源文件是: My ...
自己动手开发翻译软件(Java版) -
Arlrn:
博主你好,最近在学习排序算法,看了你的博客,你的直接插入排序, ...
各种排序算法的实现及其比较 -
sharong:
有一个明显错误,很显然冒泡排序的时间复杂度是O(n^2)
各种排序算法的实现及其比较 -
julydave:
希尔排序不太对吧。。
各种排序算法的实现及其比较
前面已经讲了够多的基础性的东西了,还有一些,但我想还是之后遇到时再写吧,先开始MFC程序的创建与操作。
图形。
1、先从一个简单的字符串输入程序开始吧。
在一个窗口中输出字符串。
创建一个MFC单文档应用程序,在视图类(以View结尾的)的OnDraw( ) 函数中添加几句话,用来输出字符串:
void CMFCTestView::OnDraw(CDC* pDC) { CMFCTestDoc* pDoc = GetDocument(); //获得当前文档对象 ASSERT_VALID(pDoc); //用来判断是否为空 // TODO: add draw code for native data here pDC->TextOut(50,50,"输出字符串"); //输出字符串的语句 }
2、用CPen类来绘制线条。
先看一个叫RGB的结构体:
COLORREF RGB(
BYTE bRed,
BYTE bGreen,
BYTE bBlue
);
我们用它来定义一种颜色。
要使用画笔CPen之前,得先用新画笔替换旧画笔,这时要用到SelectObject( ) 方法。
原型:CPen *SelectObject( CPen *pPen);
返回的是原来的画笔,这是为了让我们画完之后还能恢复原来的画笔。
void CMFTestView::OnDraw(CDC* pDC) { CMFCTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here int red=0,green=0,blue=0; int width=2; int row=20; for(int s=0;s<8;s++) { int color=RGB(red,green,blue); //黑色 CPen newPen(PS_SOLID,width,color); CPen*oldPen=pDC->SelectObject(&newPen);//保存旧的画笔 pDC->MoveTo(20,row);//移动到坐标(20,20) pDC->LineTo(300,row);//移动到坐标(300,20) pDC->SelectObject(oldPen); red+=32; green+=16; blue+=8; //变化颜色再画 width+=2; //变换宽度 row+=30; //变到下一行 } }
结果:
3、改变画笔样式
void CMFCTestView::OnDraw(CDC* pDC) { CMFCTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here int style[]={PS_SOLID,PS_DASH,PS_DOT,PS_DASHDOT,PS_DASHDOTDOT}; //最后 一个是指双点下划线画笔 int row=20; for(int s=0;s<5;s++) { CPen newPen(style[s],1,RGB(0,0,0)); //变换画笔的样式 CPen*oldPen=pDC->SelectObject(&newPen); pDC->MoveTo(20,row); pDC->LineTo(300,row); pDC->SelectObject(oldPen); row+=30; } }
结果:
4、CBrush类
画刷工具类。有两个构造函数:CBrush(COLORREF color); 和 CBrush(int style, COLORREF color);
void CMFCexp4_4View::OnDraw(CDC* pDC) { CMFCexp4_4Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here int red=0,green=0,blue=0; int row=20; for(int s=0;s<6;s++) { int clr=RGB(red,green,blue); CBrush newBrush(clr); //调用第一种构造函数 CBrush*oldBrush=pDC->SelectObject(&newBrush); //保存旧画刷,更换新画刷 pDC->Rectangle(20,row,200,row+20); //用新画刷画一个矩形长条 pDC->SelectObject(oldBrush); //改回旧画刷,就相当于你拿了一把锤子去用,用完后把它放回原位 red+=34;green+=16;blue+=4;//改变颜色 row+=30; } int styles[]={ HS_BDIAGONAL,HS_CROSS,HS_DIAGCROSS,HS_FDIAGONAL,HS_HORIZONTAL,HS_VERTICAL}; //画刷的样式 row=20; for( s=0;s<6;s++) { CBrush newBrush(styles[s],RGB(0,0,0));//调用第二种构造函数 CBrush*oldBrush=pDC->SelectObject(&newBrush); pDC->Rectangle(220,row,400,row+20); pDC->SelectObject(oldBrush); row+=30; } }
看一下结果:
发表评论
-
连连看全局消除算法
2012-03-08 01:48 4387好久没写技术博客了。I ... -
object-c笔记一
2011-07-22 11:03 888(本笔记只是简单的记录,只给自己看) 接口的定义: ... -
VC2010中C++的右值引用新特性
2011-05-27 13:37 1509// RightValue.cpp : Defines ... -
linux下用命令编译/调试C++程序
2011-04-01 14:17 3035先安装gcc : sudo apt-get insta ... -
对Windows程序中设备上下文DC(device context)的理解(转)
2010-11-08 00:58 1648对Windows程序中设备上 ... -
MFC学习笔记(八)
2010-10-30 00:55 1045MFC把早期的窗口类的功能分成三个部分:数据存储、管理部分,数 ... -
MFC学习笔记(七)
2010-10-28 01:29 969创建一个普通的Win32 Application,加上一个.c ... -
MFC学习笔记(六)
2010-10-28 01:16 1106先来了解几个类 1、CObject类 有相当一部分类的基 ... -
MFC学习笔记(五)
2010-10-27 01:55 1499早期的MFC应用程序框架结构由两个对象组成:应用程序类CWin ... -
MFC学习笔记(四)
2010-10-27 00:28 1204前面写了那么多代码,但很多东西都是固定的,我们需要写的主要是消 ... -
MFC学习笔记(三)
2010-10-26 14:54 1175这一次修改事件的处理函数,当鼠标左键按下时,可在窗口的用户区显 ... -
MFC学习笔记(二)
2010-10-26 14:31 1011上一篇写的是一个单窗口的程序,这一次写一个多窗口的程序,第一个 ... -
MFC学习笔记(一)
2010-10-26 14:21 1605之前也学过一点MFC的知识,但因很久没去碰就都忘 得差不多了。 ... -
高质量C++/C编程学习笔记(七)----- 其它
2010-10-24 10:29 8011、继承不要随便使用, ... -
高质量C++/C编程学习笔记(六)----- 构造 析构 赋值函数
2010-10-24 10:15 8361、当创建一个类时,C++ ... -
高质量C++/C编程学习笔记(五)----- 基础函数的高级特性
2010-10-24 02:13 11261、重载: 只能靠参数而不能靠返回值类型的不同来区分重载函 ... -
高质量C++/C编程学习笔记(四)----- 内存管理(2)
2010-10-22 00:46 11345、用指针参数传递内存 ... -
高质量C++/C编程学习笔记(三)----- 内存管理(1)
2010-10-22 00:17 11821、 三种内存分配方式 ... -
高质量C++/C编程学习笔记(二)----- 基础
2010-10-21 23:10 9431、在函数体的“入口处” ,用断言对参数的有效性进行检查。断言 ... -
高质量C++/C编程学习笔记(一)----- 入门
2010-10-21 01:05 1279学了这么久的C/C++,在 ...
相关推荐
MFC学习笔记(onenote格式),一个朋友参加MFC培训,其教师在讲课过程中做的学习日记。图文并茂,是初学者很好的学习资料。
**MFC 学习笔记** MFC(Microsoft Foundation Classes)是微软开发的一种C++类库,用于构建Windows应用程序。它提供了面向对象的编程接口,使得开发者可以更容易地使用Windows API。MFC的主要目标是简化Windows应用...
MFC本身也是基于Windows API构建的,因此理解Windows API对于深入学习MFC至关重要。 ### 内存管理 C++中的内存管理是一个关键且复杂的话题。`new`和`delete`是C++中用于动态分配和释放内存的关键字。`new`操作符...
MFC 菜单操作学习笔记 本文是关于 MFC 菜单操作学习笔记 的资源,旨在帮助开发者学习和掌握 MFC 菜单操作的技术。下面是对该资源的详细解释和知识点总结。 一、创建菜单 MFC 菜单操作学习笔记 中提供了两种创建...
《MFC学习笔记:腾讯游戏连连看外挂制作(一)》 在本文中,我们将深入探讨如何使用Microsoft Foundation Classes (MFC) 来开发腾讯游戏连连看的外挂程序。MFC是微软提供的一套C++库,用于简化Windows应用程序的开发...
在C++编程中,MFC(Microsoft ...以上是C++和MFC学习笔记中涉及的关键知识点,涵盖了窗口、绘图、异常处理、消息循环、对话框以及资源管理等多个方面。理解并熟练运用这些概念对于深入掌握C++和MFC编程至关重要。
本篇笔记主要涵盖了MFC中的一些基本功能和常用函数,适合初学者入门学习。 首先,我们来看看如何在MFC中使用消息框。`MessageBeep((WORD)-1)`函数可以发出PC的提示音,提醒用户有事件发生。而`MessageBox`函数则是...
### 深入浅出MFC学习笔记:关键知识点解析 #### 一、Windows消息机制与回调函数 在深入探讨MFC之前,我们先来理解Windows操作系统中的消息机制及其核心组成部分——回调函数。 ##### 1.1 Windows消息机制概述 ...
本人从零开始学C++/MFC的时候,积累和整理的学习笔记,其中有大部分常见问题和处理办法,看过很过帖子,也查过很多资料,最终把他们记录下来。 Demo内容: ★ ::OnTimer OnTimer()函数用于实现定时控制功能,定时...
在本篇MFC学习笔记中,我们将深入探讨如何使用MFC AppWizard创建不同类型的项目,以及这些项目中的关键类和文件。 首先,我们来看MFC AppWizard如何生成应用程序。AppWizard是MFC提供的一个向导工具,可以根据选择...
【MFC学习笔记1】 MFC(Microsoft Foundation Classes)是微软提供的一套C++库,用于简化Windows应用程序的开发。本笔记将重点介绍基于对话框的MFC应用程序开发。 7.16 基于对话框编程 对话框在Windows程序中扮演...
《Visual C++ MFC 学习笔记》 学习Visual C++ MFC,首先需要具备扎实的C/C++基础知识。这是入门VC开发的基石,因为MFC(Microsoft Foundation Classes)是基于C++的一个类库,对C++的掌握程度直接影响到理解和使用...
**MFC学习笔记——销售系统案例详解** MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,用于构建Windows应用程序。它基于面向对象的编程思想,为开发者提供了丰富的功能,简化了Win32 API的使用。在...
在学习MFC时,你需要了解以下几个核心概念和知识点: 1. **基本概念**:MFC是由一系列C++类组成的库,这些类封装了Windows API的功能。它提供了窗口、控件、文档/视图架构、消息映射、数据库访问等组件,帮助开发者...
《深入探索MFC与Windows32编程》 MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,用于简化Windows应用程序开发。...通过深入学习这两方面的知识,开发者可以构建出功能丰富、性能优异的应用程序。
《Visual C++/MFC学习笔记》是一份深入探讨C++和Microsoft Foundation Class (MFC)库的文档,旨在帮助读者掌握使用Visual C++开发Windows应用程序的技能。这份笔记主要分为六个章节,覆盖了从入门到高级的多个主题。...
深入浅出MFC读书笔记2是对MFC框架的进一步学习和理解,主要涵盖了MFC的基础概念、类库结构以及程序构建的关键要素。MFC(Microsoft Foundation Classes)是微软为Windows平台开发的应用程序提供的一种类库,它基于...
MFC相关学习笔记 MFC(Microsoft Foundation Classes)是一种基于C++的应用程序框架,广泛应用于Windows平台的应用程序开发。本文档总结了MFC相关的学习笔记,涵盖了构建MFC界面、Combox控件、数据更新、定时器、...