ddx_cbstring_ddr和ddx_东方财富ddx抓涨停(13)

电脑杂谈  发布时间:2017-03-01 20:06:45  来源:网络整理

HICON hIcon2=AfxGetApp()->LoadIcon(IDI_I2);

pDC->DrawIcon(0,0,hIcon1);

pDC->DrawIcon(0,40,hIcon2);

DestroyIcon(hIcon1);

DestroyIcon(hIcon2);

}

同样在MFC也没有提供一个DIB的类,所以在使用DIB位图时我们需要自己读取位图文件中的头信息,并读入数据,并利用API函数StretchDIBits绘制。位图文件以BITMAPFILEHEADER结构开始,然后是BITMAPINFOHEADER结构和调色版信息和数据,其实位图格式是图形格式

中最简单的一种,而且也是Windows可以理解的一种。我不详细讲解DIB位图的结构,提供一个CDib类供大家使用,这个类包含了基本的功能如:Load,Save,Draw。DownLoad CDib 4K

2.5 使用各种映射方式

所谓的映射方式简单点讲就是坐标的安排方式,系统默认的映射方式为MM_TEXT即X坐标向右增加,Y坐标向下增加,(0,0)在屏幕左上方,DC中的每一点就是屏幕上的一个象素。也许你会认为这种方式下是最好理解的,但是一个点和象素对应的关系在屏幕上看来是正常的,但到了打印机上就会很不正常。因为我们作图是以点为单位并且打印机的分辨率远远比显示器高(800DPI 800点每英寸)所以在打印机上图形看起来就会很小。这样就需要为打印另做一套代码而加大了工作量。如果每个点对应0.1毫米那么在屏幕上的图形就会和打印出来的图形一样大小。

通过int CDC::SetMapMode( int nMapMode )可以指定映射方式,可用的有以下几种:

? MM_HIENGLISH 每点对应0.001英寸 Each logical unit is converted to 0.001

inch. Positive x is to the right; positive y is up.

? MM_HIMETRIC 每点对应0.001毫米 Each logical unit is converted to 0.01

millimeter. Positive x is to the right; positive y is up.

? MM_LOENGLISH 每点对应0.01英寸 Each logical unit is converted to 0.01 inch.

Positive x is to the right; positive y is up.

? MM_LOMETRIC 每点对应0.001毫米 Each logical unit is converted to 0.1

millimeter. Positive x is to the right; positive y is up.

? MM_TEXT 象素对应 Each logical unit is converted to 1 device pixel.

Positive x is to the right; positive y is down.

以上几种映射默认的原点在屏幕左上方。除MM_TEXT外都为X坐标向右增加,Y坐标向上增加,和自然坐标是一致的。所以在作图是要注意什么时候应该使用负坐标。而且以上的映射

都是X-Y等比例的,即相同的长度在X,Y轴上显示的长度都是相同的。

DownLoad Sample

另外的一种映射方式为MM_ANISOTROPIC,这种方式可以规定不同的长宽比例。在设置这中映射方式后必须调用CSize CDC::SetWindowExt( SIZE size )和CSize


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-35251-13.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...