界面——C++_MFC从入门到放弃(三)——显示图片

 详细知识点:DC,CDC和HDC的介绍 https://blog.csdn.net/yam_killer/article/details/7661449

设备描述表(DC):是Windows中的一种数据结构,它包含GDI(图形设备接口)需要的所有关于显示界面情况的描述字段,包括相连的物理设备和各种各样的状态信息。

通过设备描述表的句柄(HDC)访问DC数据结构:设备描述表是一种数据结构,它包括了一个设备(如显示器和打印机)的绘制属性相关的信息。所有的绘制操作通过设备描述表进行。设备描述表与大多WIN32结构不同,应用程序不能直接访问设备描述表,只能由各种相关API函数通过设备描述表的句柄(HDC)间接访问该结构。 

CDC是MFC的DC的一个类。CDC等设备上下分类,都含有一个类的成员变量:m_nHdc;即HDC类型的句柄。     

如何编程:获取PIC的ID,通过该ID指向用户CRect,再通过该ID指向DC,通过CDC进行具体操作。

需要知道的类:
CWnd类是MFC的一个窗口类, 这个类里几乎封装了所有关于窗口操作的API函数
CRect类
CDC类

CImage image;
image.Load(_T("result.bmp"));//获取图资源

CWnd* pWnd;
pWnd = GetDlgItem(IDC_Image_2);    // 获取PIC的ID,即获取picture控件ID句柄

CRect rect_frame;
pWnd->GetClientRect(&rect_frame);    // 通过该ID指向用户CRect,即获取picture控件的区域CRect

CDC* pDC = pWnd->GetDC();    // 通过CDC进行具体操作
HDC hDC = pDC->m_hDC;

::SetStretchBltMode(hDC, HALFTONE);
::SetBrushOrgEx(hDC, 0, 0, NULL);

image.Draw(hDC, rect_frame);
ReleaseDC(pDC);//释放picture控件的DC
// 显示
/*
输入 
    CString strFilePath
    pic_ID IDC_Image_1
*/
CImage image;
image.Load(strFilePath);					// 获取图资源

CWnd* pWnd;
pWnd = GetDlgItem(IDC_Image_1);				// 获取picture控件ID句柄

CRect rect_frame;
pWnd->GetClientRect(&rect_frame);			// 获取picture控件的区域CRect

CDC* pDC = pWnd->GetDC();					// 获取picture控件的DC设备描述表——CDC是DC的一个类,CDC中包含HDC类型的句柄,HDC hDC = pDC->m_hDC;

pDC->SetStretchBltMode(STRETCH_HALFTONE);	//HALFTONE 保持不失真

image.Draw(pDC->m_hDC, rect_frame);

ReleaseDC(pDC);								//释放picture控件的DC

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能之心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值