菜鸟求助,关于绘图 本帖最后由 xyzhaopeng 于 2011-11-04 10:33:39 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if(!start)改成if(start) 首先你得On32773函数虽然改了start得值,但并没有激发重绘,自然不会调用OnDraw其次,代码太垃圾了...... 你得block1.DrawJiemian(pDC);干了什么呢? 代码垃圾是正常。我新手。请多多指教。我也想激发重绘,但是我试着在on32773函数里调用OnDraw函数,却老是报错,获得的DC估计是桌面的。没画到客户区,画到了电脑桌面的响应坐标处。高人,求指教 想让它画界面,但是没画。else前面的是画主画面,已经成功 在start=TRUE之后,调用Invalidate() void Block::DrawJiemian(CDC *pDC){ CBrush brush(&jiemian); CClientDC dc(this); dc.FillRect(CRect(0,0,368,438),&brush);}对了,这函数也贴出来 明明参数中有pDC,你为啥总自己定义一个dc呢?pDC是窗口的DC,你自己定义的dc又是哪个? 你这样画当然是在左上角应该用GetClientRect获取rect另外应该直接用pDC 哎,刚看了几集孙鑫的视频就开始编俄罗斯方块了,让高人见笑了,果然是这个问题。我直接用pDC来画就正常了。能教我这是为什么吗?谢谢高人啊 这个DC是绘图设备上下文,简单说就是你到底要画到哪里去。pDC是视图的DC,显然是你需要画图的地方。block只是你得一个模块罢了,本身并不具备窗口区,只是一个实体封装类。 有点明白了。谢谢你啊。代码改成这样了:if(!start) { CBrush brush(&huamian); pDC->FillRect(CRect(0,0,368,438),&brush);//我的图的大小,嘿嘿 } else block1.DrawJiemian(pDC);void Block::DrawJiemian(CDC *pDC){ CBrush brush(&jiemian); pDC->FillRect(CRect(0,0,368,438),&brush);}现在没那么垃圾了吧? 谢谢,能不能再问你几个问题。你现在工作了吗?现在学MFC工作有出路吗?我大三了。很喜欢编程。 我激动得不知道说什么啊。行。这次是为了完成老师给的任务,但是我也会好好学MFC的。谢谢你。前辈。景仰。以后多多指教。我在沈阳 0xC0000005 IO读写的时候只能以扇区为单位吗?能不能只读某个扇区中的某个字节 vc中如何获得当前窗口的下一层窗口的指针? 表达式算法 获取显卡GPU的参数信息 如何将结构化值保存到Blob字段 〓怎样实现 定位资源管理器中的一个文件?详细描述点击进入。〓 关于 ModifyMenu()函数的问题 重金求救 短连接所引申的想法。求教~~ 【提问】程序运行中改变字体颜色 GetDIBits得到的数据怎么放到COLORREF的数组里面
改成
if(start)
其次,代码太垃圾了......
我也想激发重绘,但是我试着在on32773函数里调用OnDraw函数,却老是报错,获得的DC估计是桌面的。没画到
客户区,画到了电脑桌面的响应坐标处。
高人,求指教
else前面的是画主画面,已经成功
{
CBrush brush(&jiemian);
CClientDC dc(this);
dc.FillRect(CRect(0,0,368,438),&brush);
}
对了,这函数也贴出来
应该用GetClientRect获取rect
另外应该直接用pDC
我直接用pDC来画就正常了。能教我这是为什么吗?
谢谢高人啊
代码改成这样了:
if(!start)
{
CBrush brush(&huamian);
pDC->FillRect(CRect(0,0,368,438),&brush);//我的图的大小,嘿嘿
}
else
block1.DrawJiemian(pDC);void Block::DrawJiemian(CDC *pDC)
{
CBrush brush(&jiemian);
pDC->FillRect(CRect(0,0,368,438),&brush);
}
现在没那么垃圾了吧?
你现在工作了吗?
现在学MFC工作有出路吗?我大三了。很喜欢编程。
谢谢你。前辈。景仰。以后多多指教。我在沈阳