详细知识点: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