对话框中画图为什么不是全部画满整个控件区域?

yfwf 2003-10-16 03:46:50
代码如下,希望画一个矩形充满整个控件区域。
OnPaint()
{
CPaintDC dc(this); // device context for painting

// TODO: Add your message handler code here
CWnd *pWnd=GetDlgItem(IDC_STATIC_AREA);
//IDC_STATIC_AREA 为图片控件ID
CDC *pControlDC=pWnd->GetDC();
pWnd->Invalidate();
pWnd->UpdateWindow();

CRect rect;
pWnd->GetWindowRect(rect);
ScreenToClient(rect);

pControlDC->SelectStockObject(BLACK_BRUSH);
pControlDC->Rectangle(rect);//0,0,480,300


pWnd->ReleaseDC(pControlDC);
// Do not call CDialog::OnPaint() for painting messages
}
...全文
42 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yfwf 2003-10-17
  • 打赏
  • 举报
回复
成功了,ScreenToClient(rect)改为pWnd->ScreenToClient(rect)
yfwf 2003-10-16
  • 打赏
  • 举报
回复
不行啊,还是画的不对。
vcforever 2003-10-16
  • 打赏
  • 举报
回复
非客户区域是不允许你画的!
要画非客户区域就的重画你的对话框了!
lsl7909 2003-10-16
  • 打赏
  • 举报
回复
把pWnd->GetWindowRect(rect);改为pControlDC->GetClipBox(rect);试试

15,979

社区成员

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

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