Windows GDI 坐标空间和变换

void CWindowsPracticeView::OnDraw(CDC* pDC)
{
	CWindowsPracticeDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if (!pDoc)
		return;
	HDC hdc = pDC->m_hDC;

	// TODO: 在此处为本机数据添加绘制代码

	// 第6章 坐标空间和变换
	{
	// 获得物理设别坐标空间的大小
	CWnd *win = pDC->GetWindow();
	RECT rect;
	GetWindowRect(&rect);
	int deW = rect.right - rect.left;
	int deH = rect.bottom - rect.top;

	// 1. MM_LOMETRIC    每个逻辑单元映射到0.1毫米。正x是向右; 正y向上
	/*SetMapMode(hdc, MM_LOMETRIC);
	SetWindowOrgEx(hdc, 0, deH, NULL);*/

	// 2. MM_TEXT    每个逻辑单元映射到一个设备像素。正x是向右; 正y向下
	/*SetMapMode(hdc, MM_TEXT);
	SetWindowOrgEx(hdc, 0, 0, NULL);*/

	// 3. MM_ANISOTROPIC   逻辑单元映射到具有任意缩放轴的任意单位
	/*SetMapMode(hdc, MM_ANISOTROPIC);
	SetWindowExtEx(hdc, 1, 1, NULL);
	SetWindowOrgEx(hdc, 0, 0, NULL);

	SetViewportExtEx(hdc, 1, -1, NULL);
	SetViewportOrgEx(hdc, 0, deH, NULL);*/

	// 画线
	CString str(_T(""));
	str.Format(_T("设备坐标空间长度:%d,设备坐标空间宽度:%d"), deW, deH);	

	TextOut(hdc, 0, 20,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值