如何实现不同的区域贴不同的图

yuanmoren 2010-10-15 02:36:40
vc6
windows xp
基于对话框的应用程序

现状:
一张背景图的话:如果拉伸对话框,背景图也跟着拉伸。但是背景图上的某些区域我不准备让它拉伸,然后我就准备在特殊的区域另外贴张图。但怎么实现呢?

我尝试用这种方式

CDC *pWindowDC = GetDC();
CDC dcMem, dcSecMem;

dcSecMem.CreateCompatibleDC(pWindowDC);
dcMem.CreateCompatibleDC(&dcSecMem);

...

pOldBitmap = dcMem.SelectObject(&m_bkgUpper);
dcSecMem.StretchBlt(0, 0, rect.Width(), corSeparate + 1, &dcMem, 0, 0, hBmpUp.bmWidth,
hBmpUp.bmHeight, SRCCOPY);

...
dcMem.SelectObject(&m_bkgDowner);
dcSecMem.StretchBlt(0, corSeparate, rect.Width(), rect.Height(), &dcMem, 0, 0,
hBmpDown.bmWidth, hBmpDown.bmHeight, SRCCOPY);

...
dcMem.SelectObject(&m_bkgListCtrl);
...
dcSecMem.StretchBlt(RectDownloadList.left, RectDownloadList.top, RectDownloadList.Width(),
RectDownloadList.Height(), &dcMem,
0, 0, bmpListCtrl.bmWidth, bmpListCtrl.bmHeight, SRCCOPY);
...
dcMem.SelectObject(pOldBitmap);
...
pWindowDC->BitBlt(0, 0, rect.Width(), rect.Height(), &dcMem, 0, 0, SRCCOPY);

ReleaseDC(pWindowDC);


不过不行
...全文
136 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanmoren 2010-10-15
  • 打赏
  • 举报
回复
没有错误。
发现问题所在了,
dcSecMem的画布设错了。
结帖
傻X 2010-10-15
  • 打赏
  • 举报
回复
CDC::StretchBlt本身也可以根据参数选择不拉伸的,我觉得楼主应该是代码上面有问题才来问的.
楼主编译有错误么?
yuanmoren 2010-10-15
  • 打赏
  • 举报
回复
有没有相关的源码呀!
贴一段瞧瞧。
我也知道要用CDC::StretchBlt和CDC::BitBlt,但就是用错了。
lidaotong 2010-10-15
  • 打赏
  • 举报
回复
二楼的方法应该可以
ship1912 2010-10-15
  • 打赏
  • 举报
回复
同意ls
码侬 2010-10-15
  • 打赏
  • 举报
回复
贴两张图,一个用CDC::StretchBlt,随着窗口拉伸。
一个用CDC::BitBlt,不随着窗口拉伸。
快乐鹦鹉 2010-10-15
  • 打赏
  • 举报
回复
不明白你啥意思,啥是特殊区域啊?

15,979

社区成员

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

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