MFC Aero[二]

2014年05月30日 4084点热度 0人点赞 0条评论

预览

MFC Aero窗口[二]

上一篇地址

MFC Aero窗口[一]

说明

上次一样,不过这次使用的是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);  
}

Sollyu

保持饥渴的专注,追求最佳的品质