打印中,设备坐标与逻辑坐标转换
来源:互联网 发布:百会软件 编辑:程序博客网 时间:2024/05/01 03:29
1、在屏幕的CDC中绘图时的坐标转换
系统逻辑坐标——————屏幕坐标————————pDC逻辑坐标
我们调用GetWindowRect获得的是窗口的屏幕坐标Size。由于pDC默认的MapMode是MM_TEXT,所以我们可以直接使用Size作为逻辑大小填充窗口。
当然我们可以改变pDc的MapMode,这样我们逻辑坐标是Size,但是屏幕上出现的就不是Size了
2、在打印机中打印时的坐标转换
打印机坐标————————打印机的pDc逻辑坐标
屏幕坐标—————————屏幕的pDc逻辑坐标
纸张的尺寸已知,根据屏幕的DPI,纸张在屏幕上的屏幕坐标应该可以求得,所以在打印函数中,框架提供的打印信息中含有纸张的屏幕坐标Size。
如果我们直接使用打印机的默认pDC(MapMode是MM_TEXT)进行打印,会出现以下情况
纸张长度————>屏幕坐标Size——————> 打印机坐标Size
屏幕坐标Size是根据纸张长度和屏幕DPI确定的,在屏幕上Size个坐标的长度应该是纸张的长度,
但是在打印机中,Size个坐标的长度可能不是纸张的长度,因为屏幕和打印机的DPI不同。
所以要想打印正确,找到屏幕上SIze对应打印机中的多少个单位,我们可以设置打印机pDC的MapMode
根据屏幕的pDC->GetDeviceCaps(),获得屏幕上一英寸对应的屏幕坐标长度x1;
根据打印机的pDC->GetDeviceCaps(),获得打印机上一英寸对应的打印机坐标长度x2;
打印机pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetWindowExt(x1,y1);//逻辑窗口中坐标大小
pDC->SetViewportExt(x2,y2);//打印窗口中坐标大小
- 打印中,设备坐标与逻辑坐标转换
- 设备坐标、逻辑坐标、物理坐标的区别与转换
- 逻辑坐标与设备坐标
- 逻辑坐标与设备坐标
- 逻辑坐标与设备坐标相互转换的两个公式
- 设备坐标与逻辑坐标相互转换的两个函数
- windows程序设计中MM_TEXT模式下的逻辑坐标与设备坐标的转换
- GDI逻辑坐标与设备坐标
- windows 逻辑坐标与设备坐标
- 设备坐标、逻辑坐标、物理坐标的区别与转换(更改原文一处错误)
- windows GDI编程中关于窗口和视口,逻辑坐标和设备坐标的转换
- 设备坐标和逻辑坐标
- 设备坐标和逻辑坐标
- 设备坐标和逻辑坐标
- 设备坐标和逻辑坐标
- 设备坐标和逻辑坐标
- 设备坐标和逻辑坐标
- 设备坐标和逻辑坐标
- 第1次上机实验-2
- 《明朝那些事儿》心得体会
- PAT-Pop Sequence (25)
- C++函数指针用法
- Redis 实践
- 打印中,设备坐标与逻辑坐标转换
- http 请求 详解 1
- PCA (主成分分析)详解 (写给初学者) 结合matlab
- C++第二次实验
- PHP-Zend引擎剖析之CV变量
- ES6中Set和WeakSet的使用
- 数字分割
- 149.View the Exhibits and examine the structures of the COSTS and PROMOTIONS tables.
- xcode实用功能