GDI+ 画线抗锯齿

 GDI+初始化
https://blog.csdn.net/jiangqin115/article/details/47020583

VS2012的版本,不需要再去包含gdiplus的头文件和引用lib,本身就有了

 

 

 

#include "stdafx.h"
#include "TestPercent.h"
#include "TestPercentDlg.h"
#include "afxdialogex.h"

using namespace Gdiplus;



void CTestPercentDlg::OnPaint()
{
	if (IsIconic())
	{
		CPaintDC dc(this); // 用于绘制的设备上下文

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		// 使图标在工作区矩形中居中
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// 绘制图标
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{

        CPaintDC dc(this); // device context for painting
        Graphics graphics(dc);  
        /* CRect rt; 
        GetClientRect(&rt);  
        SolidBrush brush(Color(188,188,188));  
        Rect rc2(100, 100, 200, 200);
        gdi.FillRectangle(&brush, rc2);
        rc2.Inflate(2, 2);
        Pen pen(Color(30,30,30));
        gdi.DrawRectangle(&pen, rc2);


        Pen pen2(Color(188,88,88), 2);  
        gdi.DrawLine(&pen2, Point(100, 50), Point(200, 400));*/

        Pen pen(Color(188,88,88), 1);  
        graphics.SetSmoothingMode(SmoothingMode::SmoothingModeHighSpeed);  
        graphics.DrawLine(&pen, 100, 100, 400, 120);  

        graphics.SetSmoothingMode(SmoothingMode::SmoothingModeAntiAlias8x8);  
        graphics.DrawLine(&pen, 100, 150, 400, 170);  

        graphics.SetSmoothingMode(SmoothingMode::SmoothingModeHighSpeed);  
        graphics.DrawLine(&pen, 500, 100, 700, 300);  

        graphics.SetSmoothingMode(SmoothingMode::SmoothingModeAntiAlias8x8);  
        graphics.DrawLine(&pen, 500, 300, 700, 500);  

        graphics.SetSmoothingMode(SmoothingMode::SmoothingModeHighSpeed);  
        graphics.DrawLine(&pen, 800, 50, 820, 300);  

        graphics.SetSmoothingMode(SmoothingMode::SmoothingModeAntiAlias8x8);  
        graphics.DrawLine(&pen, 800, 250, 820, 500);  



		CDialogEx::OnPaint();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值