问个简单的gdi绘图的有关问题
问个简单的gdi绘图的问题
想实现对话框MFC 用gdi+给按钮加载个png的图,旁边是一个矩形框,在onpaint中的else语句下这么写的:
Graphics graphics(m_button1.GetWindowDC()->m_hDC); //给按钮添加png
Image image(L"GreenLed.png", TRUE);
graphics.DrawImage(&image,10,10,60,60);
CPaintDC dc(this); // 用于绘制的设备上下文
using namespace Gdiplus;
Graphics graphics2( dc.m_hDC );
Pen newPen( Color( 255, 0, 0 ), 3 );
HatchBrush newBrush( HatchStyleCross,
Color(255, 0, 255, 0),
Color(255, 0, 0, 255));
graphics2.DrawRectangle( &newPen, 50, 50, 100, 60);
graphics2.FillRectangle( &newBrush, 50, 50, 100, 60); //画一个矩形框
CDialog::OnPaint();
运行后矩形框绘制出来了,但是按钮添加不了png图,如果拖动、切换改变下窗口,png图就添加上了。是不是因为窗口重绘调用ondraw函数给覆盖掉了?怎么画图能够使png图一直显示在按钮上呢?
------解决方案--------------------
你可以先试着 用CButtonST(在codeproject下载),或者直接看源代码
想实现对话框MFC 用gdi+给按钮加载个png的图,旁边是一个矩形框,在onpaint中的else语句下这么写的:
Graphics graphics(m_button1.GetWindowDC()->m_hDC); //给按钮添加png
Image image(L"GreenLed.png", TRUE);
graphics.DrawImage(&image,10,10,60,60);
CPaintDC dc(this); // 用于绘制的设备上下文
using namespace Gdiplus;
Graphics graphics2( dc.m_hDC );
Pen newPen( Color( 255, 0, 0 ), 3 );
HatchBrush newBrush( HatchStyleCross,
Color(255, 0, 255, 0),
Color(255, 0, 0, 255));
graphics2.DrawRectangle( &newPen, 50, 50, 100, 60);
graphics2.FillRectangle( &newBrush, 50, 50, 100, 60); //画一个矩形框
CDialog::OnPaint();
运行后矩形框绘制出来了,但是按钮添加不了png图,如果拖动、切换改变下窗口,png图就添加上了。是不是因为窗口重绘调用ondraw函数给覆盖掉了?怎么画图能够使png图一直显示在按钮上呢?
------解决方案--------------------
你可以先试着 用CButtonST(在codeproject下载),或者直接看源代码