考考大家,看看能否发现这个问题!

benbenRH 2009-11-05 06:45:22
这是把一幅图片画到窗口上的代码,大家认为他有什么问题!应该怎么解决!
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP2);
CBrush brush;
brush.CreatePatternBrush(&bitmap);
pDC->SelectObject(&brush);
pDC->FillRect (CRect(4,4,141,20),&brush);
...全文
124 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
benbenRH 2009-11-07
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 ringphone 的回复:]
使用位图画刷会有个原点问题,你如果不是画在(0,0)或是每一个平铺的位置,就会有这个问题,想要绘制在任意位置而不受平铺影响,需要调用::SetBrushOrgEx或是SelectObject之前调用一下pDC->SetBrushOrg改变原点位置。
[/Quote]
终于有个听得懂我讲的!在C#里这些都是很简单的,到了MFC就复杂了N次方倍,我只能用MFC结合C#编程了!
ringphone 2009-11-06
  • 打赏
  • 举报
回复
使用位图画刷会有个原点问题,你如果不是画在(0,0)或是每一个平铺的位置,就会有这个问题,想要绘制在任意位置而不受平铺影响,需要调用::SetBrushOrgEx或是SelectObject之前调用一下pDC->SetBrushOrg改变原点位置。
Kevin 2009-11-06
  • 打赏
  • 举报
回复
呃,这代码的问题也太多了吧
liuchui2009 2009-11-06
  • 打赏
  • 举报
回复
不知道LZ在搞什么
不过既然LZ才学MFC,还是建议先好好学吧
M_S_D_N 2009-11-06
  • 打赏
  • 举报
回复
这是使用画刷的特点。
benbenRH 2009-11-05
  • 打赏
  • 举报
回复
图片没有改变,平移了,
比如这个图片里面写了一个大大的“W” 如下(第一个#为原点(0,0)):
#     #     #
 #   # #   #
  # #   # #
   #     #   

当FillRect的第一个参数那个矩形的起点不是0,0的时候,画出来的图像还是重0,0这点平铺过来的,到最后显示的图像是(假如矩阵为(0,1,4,12)),【星号的的地方为原点(0,0),星号是没有的】:
*
 #   # #   #
  # #   # #
   #     #  
#     #     #
qjzrd 2009-11-05
  • 打赏
  • 举报
回复
你的图片 没有改变
benbenRH 2009-11-05
  • 打赏
  • 举报
回复
晕变形了

问题是:
比如这个图片里面写了一个大大的“W” 如下:
#     #     #
 #   # #   #
  # #   # #
   #     #   

当FillRect的第一个参数那个矩形的起点不是0,0的时候,画出来的图像还是重0,0这点平铺过来的,到最后显示的图像是(假如矩阵为(0,1,4,12)):

 #   # #   #
  # #   # #
   #     #  
#     #     #
benbenRH 2009-11-05
  • 打赏
  • 举报
回复
问题是:
比如这个图片里面写了一个大大的“W” 如下:
# # #
# # # #
# # # #
# #

当FillRect的第一个参数那个矩形的起点不是0,0的时候,画出来的图像还是重0,0这点平铺过来的,到最后显示的图像是(假如矩阵为(0,1,4,12)):
# # # #
# # # #
# #
# # #
M_S_D_N 2009-11-05
  • 打赏
  • 举报
回复
乱七八糟,没学会语文之前,不要学什么计算机语言。
老吴笔记 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 benbenrh 的回复:]
如果在后一句改为:pDC->FillRect (CRect(0,0,137,16),&brush); 就完全没问题!请问这个问题应该怎么解决啊?我知道C#可以解决,相信MFC更加可以!请教各位大侠了!
[/Quote]
什么叫“就完全没问题”,你的问题是什么呢?说出来大家才好帮你啊
benbenRH 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wuyueqing 的回复:]
你好历害哦,我还在学基础呢。没能帮上忙,真的抱歉。
[/Quote]
我今天是第三天学MFC
wuyueqing 2009-11-05
  • 打赏
  • 举报
回复
你好历害哦,我还在学基础呢。没能帮上忙,真的抱歉。
老吴笔记 2009-11-05
  • 打赏
  • 举报
回复
楼主,你有什么问题,请说,别客气。
benbenRH 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 laowu_ 的回复:]
brush没销毁,资源泄漏。
[/Quote]
嗯,这个也算,但不是主要的问题!
benbenRH 2009-11-05
  • 打赏
  • 举报
回复
如果在后一句改为:pDC->FillRect (CRect(0,0,137,16),&brush); 就完全没问题!请问这个问题应该怎么解决啊?我知道C#可以解决,相信MFC更加可以!请教各位大侠了!
老吴笔记 2009-11-05
  • 打赏
  • 举报
回复
brush没销毁,资源泄漏。

15,980

社区成员

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

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