求助!在单文档的view中画图。 我写了一个单文档程序。在该程序中我定义了一个全局的CDC*变量p。在该程序中我还定义了菜单A和B。按下它们,发出的消息都是在View中响应。菜单A的消息处理函数的内容只有一句“p=GetDC();”,菜单A的消息处理函数的内容只有一句“(*g_dcp).Rectangle(10,10,50,50);”。我先按菜单A,之后再按菜单B。结果是没有图形画出来。这是为什么?要想画出图来,应怎样办? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要在OnPaint函数或OnDraw函数中执行的画图操作才能在刷新时保存。 这位仁兄,我没有太明白你程序的意图,为什么要定义一个全局的CDC*变量呢? 在函数A中你“p=GetDC();”, 但是GetDC()的返回值是个临时值,不可保存留给该函数之外使用(请参见MSDN:CWnd::GetDC )。另外在B中你画了一个图形,但是你没有刷新你所画的区域(Invalidate() 和 UpdateWindow()),所以自然见不到。 我再补充一下,p=GetDC()得到的CDC* 只是一个临时变量,每次都会变;一般来说,没有将CDC作全局变量处理;如果你想按菜单A画出图形,按菜单B画出另一种图形,就要在各自的消息处理函数中设置全局的标志变量比如m_nflag等等,然后加上一句InvalidateRect,或者干脆Invalidate,而将画图放在OnDraw函数中,根据m_nflag画出不同的图形! 质疑MFC中的线程局部存储代码 小弟我,刚学使用VC++6.0,想在VC里面使用sql 语言,应该怎么配置啊 如何把不需要的函数不要link进最终的exe文件 程序运行至ICSeqCompressFrame出现如下问题,跪求原因 结贴是个好习惯! 请问怎么用sendmessage触发某菜单的消息? 基“有用过winio的吗?很郁闷的问题”帮忙开一帖 请教一个有关动态菜单消息响应的问题 用adodb连接数据库存,得不到数据集中的记录 如何在DCOM服务器程序中得到client的IP地址 大家说说哪里还有好的计算机论坛? 菜鸟提问
一般来说,没有将CDC作全局变量处理;
如果你想按菜单A画出图形,按菜单B画出另一种图形,就要在各自的消息处理函数中设置全局的标志变量比如m_nflag等等,然后加上一句InvalidateRect,或者干脆Invalidate,而将画图放在OnDraw函数中,根据m_nflag画出不同的图形!