mfc 绘图问题 求指导

HD_Liang 2013-10-10 09:39:06

PAINTSTRUCT ps;
HDC dc=::BeginPaint(m_hWnd,&ps);

HDC mdc=::CreateCompatibleDC(dc);
HBITMAP bmp=::CreateCompatibleBitmap(dc,cx,cy);
::SelectObject(mdc,bmp);
HBRUSH hbr=::CreateSolidBrush(RGB(0,255,0));//绿色
RECT rt;
::GetClientRect(m_hWnd,&rt);
::FillRect(mdc,&rt,hbr);

::BitBlt(dc,0,0,cx,cy,mdc,0,0,SRCCOPY);

::EndPaint(m_hWnd,&ps);


为什么正好没画边框,去掉边框就全画上了

...全文
113 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
HD_Liang 2013-10-11
  • 打赏
  • 举报
回复
cx cy确定是窗口大小 问题已解决,原因不清楚
worldy 2013-10-10
  • 打赏
  • 举报
回复
引用 楼主 new_liang 的回复:

	PAINTSTRUCT ps;
	HDC dc=::BeginPaint(m_hWnd,&ps);

	HDC mdc=::CreateCompatibleDC(dc);
	HBITMAP bmp=::CreateCompatibleBitmap(dc,cx,cy);
	::SelectObject(mdc,bmp);
	HBRUSH hbr=::CreateSolidBrush(RGB(0,255,0));//绿色
	RECT rt;
	::GetClientRect(m_hWnd,&rt);
	::FillRect(mdc,&rt,hbr);

	::BitBlt(dc,0,0,cx,cy,mdc,0,0,SRCCOPY);

	::EndPaint(m_hWnd,&ps);
cx cy在哪赋值? 为什么正好没画边框,去掉边框就全画上了 [quote=引用 楼主 new_liang 的回复:]

	PAINTSTRUCT ps;
	HDC dc=::BeginPaint(m_hWnd,&ps);

	HDC mdc=::CreateCompatibleDC(dc);
	HBITMAP bmp=::CreateCompatibleBitmap(dc,cx,cy);
	::SelectObject(mdc,bmp);
	HBRUSH hbr=::CreateSolidBrush(RGB(0,255,0));//绿色
	RECT rt;
	::GetClientRect(m_hWnd,&rt);
	::FillRect(mdc,&rt,hbr);

	::BitBlt(dc,0,0,cx,cy,mdc,0,0,SRCCOPY);

	::EndPaint(m_hWnd,&ps);
为什么正好没画边框,去掉边框就全画上了
cx cy在哪赋值?其值应该和rt值一致; 另外,边框的代码在哪?
modyaj 2013-10-10
  • 打赏
  • 举报
回复
::GetWindowRect()试试
modyaj 2013-10-10
  • 打赏
  • 举报
回复
GetClientRect(m_hWnd,&rt); 这已经说明了 是客户区

15,979

社区成员

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

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