为什么gdiplus DrawImage可以看到效果,而DrawRectangle看不到效果

ranjio_z 2016-01-08 02:14:32
如题,我自定义了一个CRgnButton,在DrawItem方法中调用gdiplus画上了按钮的一张图片,现在想给按钮加个选中的边框。但是,Graphics的DrawImage方法起作用了,能看到图片的效果,但是Graphicse的Rectangle方法为什么画不出矩形框?
代码如下:

if (pImg != NULL){
Graphics g(lpDrawItemStruct->hDC);
g.SetClip(trgn, CombineModeReplace);
g.DrawImage(pImg, RectF((REAL)0, (REAL)0, (REAL)pImg->GetWidth(), (REAL)pImg->GetHeight()));
if (m_noDownAnimation == false){
g.DrawImage(pImg, RectF((REAL)m_imgOffset.X, (REAL)m_imgOffset.Y, (REAL)pImg->GetWidth(), (REAL)pImg->GetHeight()));
}
g.Flush();
SolidBrush brush(RGB(255, 255, 255));
Pen p(RGB(255, 255, 255));
p.SetWidth(2);
p.SetDashStyle(DashStyleDot);
g.DrawRectangle(&p, RectF((REAL)10, (REAL)10, (REAL)(pImg->GetWidth()-10), (REAL)(pImg->GetHeight()-10)));
g.Flush();
g.ReleaseHDC(lpDrawItemStruct->hDC);
...全文
386 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
worldy 2016-01-09
  • 打赏
  • 举报
回复
if (pImg != NULL)
{
    Graphics g(lpDrawItemStruct->hDC);
    g.SetClip(trgn, CombineModeReplace); 
    g.DrawImage(pImg, RectF((REAL)0, (REAL)0, (REAL)pImg->GetWidth(), (REAL)pImg->GetHeight()));
    if (m_noDownAnimation == false){
        g.DrawImage(pImg, RectF((REAL)m_imgOffset.X, (REAL)m_imgOffset.Y, (REAL)pImg->GetWidth(), (REAL)pImg->GetHeight()));
    }
//    g.Flush();
    SolidBrush brush(RGB(255, 255, 255));
    Pen p(RGB(255, 255, 255));
    p.SetWidth(2);
    p.SetDashStyle(DashStyleDot);
    g.DrawRectangle(&p, RectF((REAL)10, (REAL)10, (REAL)(pImg->GetWidth()-10), (REAL)(pImg->GetHeight()-10)));
//  g.Flush();
//    g.ReleaseHDC(lpDrawItemStruct->hDC);
赵4老师 2016-01-08
  • 打赏
  • 举报
回复
第8行注释掉再试试。

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧