GDI映射模式(mapping mode):
和映射模式紧密相关的还有4个其它的设备环境属性:
1.窗口原点(window origin)
2.视口原点(viewport origin)
3.窗口范围(window extents)
4.视口范围(viewport extents)
所有GDI函数中(如TextOut),参数坐标值都是“逻辑单位(logical unit)”, Windows必须将逻辑单位转换为“设备单位(device unit)”
Windows定义了8种映射模式。他们在WINGDI.H中定义的标识符如下表示.

映射模式被定义为从“窗口”(window)(逻辑坐标)到“视口”(viewport)(设备坐标)的映射。

测试代码:

//
// FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
//
// PURPOSE: Processes messages for the main window.
//
// WM_COMMAND - process the application menu
// WM_PAINT - Paint the main window
// WM_DESTROY - post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static int cxClient,cyClient;
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc; switch (message)
{
case WM_SIZE:
cxClient = LOWORD(lParam);
cyClient = HIWORD(lParam);
return 0;
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Parse the menu selections:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: Add any drawing code here... /*
//SetMapMode(hdc,MM_ISOTROPIC);
SetMapMode(hdc,MM_ANISOTROPIC); //会拉伸
SetWindowExtEx(hdc, 32767,32767,NULL);
SetViewportExtEx(hdc,cxClient,-cyClient,NULL);
SetViewportOrgEx(hdc,0,cyClient,NULL);
//MoveToEx(hdc,0,0,NULL);
LineTo(hdc,32767,32767);
*/ SetMapMode(hdc,MM_ISOTROPIC);
SetWindowExtEx(hdc,1000,1000,NULL);
SetViewportExtEx(hdc,cxClient/2,-cyClient/2,NULL);
//(xWinOrg,yWinOrg),(xViewOrg,yViewOrg) 均默认为(0,0)
//SetWindowOrgEx(hdc,cxClient/2,cyClient/2,NULL);
SetViewportOrgEx(hdc,cxClient/2,cyClient/2,NULL); Rectangle(hdc,-200,-200,200,200);
MoveToEx(hdc,-200,-200,NULL);
LineTo(hdc,200,200); //Window偏移
SetWindowOrgEx(hdc,-50,-50,NULL);
Rectangle(hdc,-200,-200,200,200); EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}

  

Windows GDI 映射模式(出自:Windows程序设计第5版-珍藏版)的更多相关文章

  1. Windows绘图中的GDI映射模式

    对Windows编程新手来说,GDI编程中最困难的部分就是映射模式(Mapping Mode). 什么是映射模式? 我们知道,GDI画图是在设备描述表这个逻辑意义上的显示平面上进行,其使用的是逻辑坐标 ...

  2. GDI 映射模式(11)

    概述 调用 SetMapMode 函数可以设置映射模式: int SetMapMode( HDC hdc, // 设备环境句柄 int fnMapMode // 要设置的映射模式 ); 同样,调用 G ...

  3. 《Windows程序设计(第5版 珍藏版)》配书光盘

    https://pan.baidu.com/s/1ro72qQja_xTbf-Ik8b06Ng

  4. Windows环境下32位汇编语言程序设计(典藏版)

    Windows环境下32位汇编语言程序设计(典藏版)(含CD光盘1张)(年,经典再现!) 罗云彬 著 ISBN 978-7-121-20759-4 2013年7月出版 定价:99.00元 756页 1 ...

  5. 《Windows程序设计第5版》学习进度备忘

    书签:另外跳过的内容有待跟进 __________________学习资源: <Windows程序设计第5版珍藏版> __________________知识基础支持: _________ ...

  6. C# windows GDI+仿画图 绘图程序设计

    C# windows GDI+仿画图 绘图程序设计 1.介绍 这里分享一个简单的画图程序 原作者:author: ping3108@163.com 2.程序主窗体设计 3.程序设计 本程序工程使用VS ...

  7. vmware player 在windows下nat模式中的端口映射

    1.设置虚拟机nat共享的网卡为固定ip vmware虚拟机使用nat网络时,是VMware Network Adapter VMnet8网卡提供的nat服务.查看VMware Network Ada ...

  8. 学习windows编程 day4 之 映射模式

    LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRU ...

  9. Windows环境下32位汇编语言程序设计(典藏版)

    <Windows环境下32位汇编语言程序设计(典藏版) > 基本信息 作者: 罗云彬 出版社:电子工业出版社 ISBN:9787121207594 上架时间:2013-7-8 出版日期:2 ...

随机推荐

  1. intellij idea android错误: Missing styles. Is the correct theme chosen for this layout?

    Missing styles. Is the correct theme chosen for this layout? Use the Theme combo box above the layou ...

  2. [BZOJ 1499] 瑰丽华尔兹

    Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1499 Solution : 能立即发现这是和动态规划相关的题目 令f[t][i][j]表 ...

  3. 【floyd】CODEVS 1077 多源最短路

    floyd模板 #include<cstdio> #include<algorithm> using namespace std; ][],m,x,y,n; int main( ...

  4. Spinner控件:Spinner绑定的监听是SetOnItemSelectedListener

    (一) 1.效果图:ArrayAdapter可以不用设置 arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_it ...

  5. WebGL的颜色渲染-渲染一张DEM(数字高程模型)

    目录 1. 具体实例 2. 解决方案 1) DEM数据.XYZ文件 2) showDEM.html 3) showDEM.js 4) 运行结果 3. 详细讲解 1) 读取文件 2) 绘制函数 3) 使 ...

  6. MythXinWCF通用宿主绿色版V1.2发布,及服务启动相关说明

      最新下载地址 更新日志: 1.宿主配置增加了最大连接及队列数.允许数据传输量 2.程序大量优化 3.bug修正 4.增加已服务方式启动 点击服务方式启动后,会将软件注册为服务. 然后软件就会变成一 ...

  7. windows server 2012将计算机图标添加到桌面(图文教程)(转)

    windows server 2012系统安装完以后桌面默认只有回收站一个图标,如何将window常用的图标(计算机.控制面板.网络.用户文件)的图标添加到桌面呢,下面为作者本人亲测.操作简单至极. ...

  8. ubuntu16.04给普通用戸提成root权限,会出现造成重启系统,没有登录用户

    一.导致问题的原因 直接修改配置文件提权,会造成重启系统后没有原来的登录用户 vim /etc/passwd nulige:x:0:0:nulige,,,:/home/gree:/bin/bash 解 ...

  9. shell脚本之检查局域网中在线的ip地址

    [root@docker-node1 ]# cat ping.sh #!/bin/bash . /etc/init.d/functions for var in {1..254}; do ip=192 ...

  10. solr6.6 配置拼音分词

    参考:solr6.6 配置同义词 1.下载拼音分析包 下载地址:pinyin.zip 解压后放在core下面的lib文件夹下面: 2.修改managed-schema配置文件 <fieldTyp ...