预览
上一篇地址
说明
如上次一样,不过这次使用的是GDI+
绘图
在工程中添加必要的头文件
#include <dwmapi.h>
#pragma comment (lib, "dwmapi.lib" )
#pragma comment (lib, "UxTheme.lib")
#include <gdiplus.h> // 导入gdiplus头文件
#pragma comment(lib,"gdiplus.lib")
using namespace Gdiplus; // 使用Gdiplus命名空间,避免命名歧议
在初始化函数中添加GDI+的初始化
ULONG_PTR m_pGdiToken;
BOOL CMy2AeroIIDlg::OnInitDialog()
{
CDialog::OnInitDialog();
BOOL bDwm ;
DwmIsCompositionEnabled (&bDwm);
if (bDwm )
{
MARGINS mrg = {-1};
DwmExtendFrameIntoClientArea (m_hWnd , &mrg);
}
GdiplusStartupInput m_gdiplusStartupInput;
GdiplusStartup(&m_pGdiToken,&m_gdiplusStartupInput,NULL);
}
同样在窗口关闭时添加GDI+卸载代码
void CMy2AeroIIDlg::OnClose()
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
GdiplusShutdown(m_pGdiToken);
CDialog::OnClose();
}
然后在任意事件中添加
void CMy2AeroIIDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
CDC* pDC =GetDC();
Graphics graphics( pDC->m_hDC);
Image image(L"walkman.png", FALSE);
graphics.DrawImage(&image, 20,50);
}