二.MFC中GDI绘图
GDI绘图包括以下步骤:获取设备环境,设置坐标映射,创建绘图工具,调用DC绘图函数绘图。
1、获取设备环境
(1)在SDK编程中,获取设备环境的方法有两种:
通过API函数BeginPaint。应用程序响应WM_PAINT消息进行图形刷新时主要通过BeginPaint函数获取设备环境,在消息处理函数返回前调用API函数EndPaint释放设备环境。
函数原...
分类:
编程语言 时间:
2014-11-27 18:35:47
阅读次数:
263
2、设置坐标映射
(1)Windows坐标系统
Windows坐标系分为逻辑坐标系和设备坐标系两种,GDI支持这两种坐标系。一般而言,
GDI的文本和图形输出函数使用逻辑坐标,而在客户区移动或按下鼠标的鼠标位置是采用设备坐标。
逻辑坐标系是面向DC的坐标系,这种坐标不考虑具体的设备类型,在绘图时,Windows会根据当前设置的映射模式将逻辑坐标转换为设备坐标。
设备坐标系是面向物理...
分类:
编程语言 时间:
2014-11-27 18:38:27
阅读次数:
180
3、创建绘图工具并选入DC
有了画布,要绘图我们必须有画笔画刷。在Windows中有HPEN、HBRUSH等GDI对象,MFC对GDI对象进行了很好的封装,提供了封装GDI对象的类,如CPen、CBrush、CFont、CBitmap和CPalette等,这些类都是GDI对象类CGdiObject的派生类。
一般先创建画笔(刷),然后调用CDC::SelectObject函数将画笔...
分类:
编程语言 时间:
2014-11-27 18:38:05
阅读次数:
170
关于 C++ 函数返回局部变量的警告
当函数返回时,局部变量和临时对象被销毁,所以返回的地址是无效的。需要修改代码,使其不返回局部对象的地址。
那么如何解决?该怎么修改代码?...
分类:
编程语言 时间:
2014-11-27 18:35:15
阅读次数:
180
坐标映射实例
(1)建立单文档MFC项目Draw:New—>Projects—>MFC AppWizard(EXE)—>Single Document。
(2)找到CMainFrame::PreCreateWindow函数,在其中设置默认窗口大小为400 pixel*300 pixel。
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)...
分类:
编程语言 时间:
2014-11-27 18:35:33
阅读次数:
190
C++中的vector是一个非常灵活的数组,它可以自动扩充大小来容纳新的元素,也可以快速地索引存储的元素,然而,这种使用上的便捷也是有代价的,因为vector的底层数据结构确实是一个数组,只是封装了一些便利的操作,像push_back()、reserve()等,下面我们就通过例子来看一下这些简便操作背后的行为...
分类:
编程语言 时间:
2014-11-27 18:33:51
阅读次数:
207
java printf的一些常用的打印格式总结...
分类:
编程语言 时间:
2014-11-27 18:34:44
阅读次数:
201
这几天郁闷了好几天,好不容易把算法实现了,加入到项目中的时候,总是出现一些错误,各种调试,各种反汇编debug,还是不见错误的踪影;最后发现错误的时候,快cry了,原来小写写成大写了,这2B的错误,说出来太丢人啦!丢人吧,让自己更有动力;
心得:写程序的时候,要一起呵成...
分类:
编程语言 时间:
2014-11-27 18:34:08
阅读次数:
167
今天项目中遇到了创建文件的需求,发现C++创建文件并不像java那样简单,所以在网上找了找相关的内容。记录下来,方便以后用到。
c++中创建文件需要调用系统接口,所以不同的系统会有不同的实现方式。在windows下可以调用文件中的_mkdir(char* a);而linux下则是下的int mkdir(const char *path,
mode_t mode)方法。
#include "...
分类:
编程语言 时间:
2014-11-27 18:35:17
阅读次数:
155
直接上代码吧,解释说得很清楚了。
// C++Primer.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include
using namespace std;
int (*function(int i))[10];//返回数组指针的函数
int main()
{
cout<<"数组、指针数组、数组指针、返回数组指针的函数:"<<endl<<endl...
分类:
编程语言 时间:
2014-11-27 18:33:19
阅读次数:
240
题目大意:一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R]中的重复次数。
思路:莫队走起。
CODE:
#include
#include
#include
#include
#include
#define MAX 50010
using namespace std;
...
分类:
编程语言 时间:
2014-11-27 18:28:39
阅读次数:
205
题目大意:给定一个序列,多次询问某个区间中所有数字出现次数的平方和
莫队算法 不解释
#include
#include
#include
#include
#include
#define M 50500
using namespace std;
struct query{
int l,r,pos;
bool operator < (const query &Y) ...
分类:
编程语言 时间:
2014-11-27 18:30:36
阅读次数:
197
构造过程和析构过程阶段构造Swift 的构造过程分为两个阶段:第一个阶段,每个存储型属性通过引入自己的构造器来设置初始值。第二个阶段,在新实例准备使用之前进一步定制存储型属性。安全检查在构造的过程中, Swift 会进行四种安全检查。安全检查 1指定构造器必须保证它所在类引入的所有属性都必须先初始化完成,之后才能将其它构造任务向上代理给父类中的构造器。比如下面这段代码就是错误的:class Foo...
分类:
编程语言 时间:
2014-11-27 18:28:53
阅读次数:
190
第一步 首先得下载LaTeXStudio这个集成环境。
第二步 写Tex文件
代码如下:
\documentclass[journal,onecolumn]{IEEEtran}
\usepackage{amsmath,graphicx}
\usepackage{CJK}
\usepackage{algorithm} %//format of the algorithm
\u...
分类:
编程语言 时间:
2014-11-27 18:26:42
阅读次数:
383
(1)打包jar方法:右键工程名--export--jar File--勾选需要打包的文件(默认即可)
(2)做批处理:编写start.bat ,内容如:
set classpath=download.jar;commons-io-1.1.jar //这里所需第三方jar,和(1)打的jar都要指定,以分号间隔
java FileSave //这里是含有ma...
分类:
编程语言 时间:
2014-11-27 18:26:42
阅读次数:
223
有一天,我突然发现有一个员工,他的代码质量又好,功能完成又快,只要把他的模块跟别人联调,不仅代码不出问题,还帮别人找出很多问题。我对这个现象比较好奇,连续观察几周之后,在一次技术交谈会上,我让他说说倒底有什么神奇武功绝招可以分享出来的。他说没有什么别的可以藏起来的绝招,只是使用了Python这个工具,这个工具绝对比《葵花宝典》实用多了,因为它不用自宫,即可成功。我仔细地整理一下他分享的技术观点,写...
分类:
编程语言 时间:
2014-11-27 18:22:27
阅读次数:
135
完成同样的功能,用不同的代码来实现,性能上可能会有比较大的差别,所以对于一些性能敏感的模块来说,对代码进行一定的优化还是很有必要的。今天就来说一下java代码优化的事情,今天主要聊一下对于for(while等同理)循环的优化。作为三大结构之一的循环,在我们编写代码的时候会经常用到。循环结构让我们操作数组、集合和其他一些有规律的事物变得更加的方便,但是如果我们在实际开发当中运用不合理,可能会给程序的...
分类:
编程语言 时间:
2014-11-27 18:23:17
阅读次数:
164