刚刚接触windows界面编程,用的是MFC,想用gdi+吧,大量的MFC框架都是gdi,
怎么办??比如:HBRUSH CSkinEdit::CtlColor(CDC* pDC, UINT /*nCtlColor*/)
{
if (IsWindowEnabled()) {
    pDC->SetTextColor(RGB(0, 0, 0));
pDC->SetBkColor(RGB(255, 255, 255)); return m_SkinAttrib.m_brNormal;
}
else {
return m_SkinAttrib.m_brDisabled;
}
}我这里定义一个属性结构;
CtlColor需要一个HBRUSH,m_SkinAttrib.m_brNormal我希望是个Brush*,怎么办?刚进门,知道的朋友告诉一下,谢谢。

解决方案 »

  1.   


    //引入GDI+库
    #include <gdiplus.h>
    using namespace Gdiplus;
    #pragma comment(lib,"gdiplus.lib")GDI  GDI+  不冲突
      

  2.   

    楼上的朋友,是这样的,我定义的地方都是用的gdi+,但是MFC很多框架都是要求GDI的对象;
    这样就需要一个GDI+对象向GDI对象转换的方式。谢谢你的回复。
      

  3.   

    需要手动转换, 在GDI和GDI+混合编程的时候,经常会遇到这样的问题。 打个比方  GDI中的CRect转换为GDI+中的Rect  需要写如下代码:CRect rt1;
    GetClientRect(&rt1);
    Rect rt2(rt1.left,rt1.top,rt1.with(),rt1.Hight());