奇怪!GDI+初始化正常,函数调用正常,但就是不显示,求解..

奥雷连诺 2011-11-08 09:59:58


code=C/C++]
Graphics gs(pDC->m_hDC);
Pen curvePen(RGB(0, 255, 1), 1.0);
gs.DrawRectangle(&curvePen, Rect(0, 0, 100, 200));
int a = gs.ReleaseHDC(pDC->m_hDC);
[/code]
之前已经在初始化了,gs的值里有OK,Pen里也有OK,返回值a是ok,可是界面就是不显示画不出来。为什么?我用gdi试都可以画出来的。。

之前在几个项目中使用GDI+都没遇到过这种问题。
...全文
90 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
奥雷连诺 2011-11-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yuucyf 的回复:]
C/C++ code

Graphics gs(dc.m_hDC);
SolidBrush sBrush(Color(255, 0, 1));
Pen curvePen(&sBrush, 3.0);
gs.DrawRectangle(&curvePen, Rect(0, 0, 100, 200));
gs.ReleaseHDC(dc.m_hDC);
[/Quote]
哈哈,我刚也发现我范了一个很S B的问题。。
Pen curvePen(RGB(255, 0, 1), 1.0);
Pen curvePen(Color(255, 0, 1), 1.0);
我用的竟然是RGB,靠,gdi+用是Color,尼玛啊。。。。谢谢二位费心,结贴。
yuucyf 2011-11-08
  • 打赏
  • 举报
回复

Graphics gs(dc.m_hDC);
SolidBrush sBrush(Color(255, 0, 1));
Pen curvePen(&sBrush, 3.0);
gs.DrawRectangle(&curvePen, Rect(0, 0, 100, 200));
gs.ReleaseHDC(dc.m_hDC);
奥雷连诺 2011-11-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 happyparrot 的回复:]
这种情况,未必是你这几行代码的问题。和这段代码之外的环境有关。比如你这个pDC传入的并非你想看的那个窗口的绘图上下文对象等等
[/Quote]

void CUPPCGraph::OnPaint()
{

CPaintDC dc(this);
//CRect rect;
//CDC memDC;
//CBitmap memBmp;
//CBitmap* pOldBmp;
//this->GetClientRect(&rect);
//memBmp.CreateCompatibleBitmap(&dc, rect.Width(), rect.Height());
//memDC.CreateCompatibleDC(&dc);
//pOldBmp = memDC.SelectObject(&memBmp);
//memDC.FillSolidRect(rect, m_bkColor);
// DrawGrid(&memDC);

// DrawDataCurve(&memDC);
// dc.BitBlt(0, 0, rect.Width(), rect.Height(), &memDC, 0, 0, SRCCOPY);
//memDC.SelectObject(pOldBmp);
//memBmp.DeleteObject();
//memDC.DeleteDC();

Graphics gs(dc.m_hDC);
Pen curvePen(RGB(255, 0, 1), 1.0);
gs.DrawRectangle(&curvePen, Rect(0, 0, 100, 200));
gs.ReleaseHDC(dc.m_hDC);
}

都这样了,直接在对话框OnPaint里画了,还是不显示,我无奈了。
快乐鹦鹉 2011-11-08
  • 打赏
  • 举报
回复
这种情况,未必是你这几行代码的问题。和这段代码之外的环境有关。比如你这个pDC传入的并非你想看的那个窗口的绘图上下文对象等等

15,978

社区成员

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

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