XP下用2005写的程序在2000下无法正常显示(在线等,解决即结贴)

yulefox 2007-04-11 10:14:11
读写文件、控件显示和操作一切正常,只是通过DC绘制的图形不能正常显示。

在线等,解决即结贴!
...全文
356 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yulefox 2007-05-11
  • 打赏
  • 举报
回复
为了实现OS兼容,最好使用CreateCompatibleBitmap,已经通过。

详参MSDN
yulefox 2007-04-13
  • 打赏
  • 举报
回复
问题已解决,谢谢各位!

// xp, 2003下2可以
CreateBitmap(rcMap.right, rcMap.bottom, 2, 16, NULL);

// 2000下1可以
CreateBitmap(rcMap.right, rcMap.bottom, 1, 16, NULL);
advancedchan 2007-04-13
  • 打赏
  • 举报
回复
CreateBitmap()函数中的参数与操作系统版本有关系
信徒5257 2007-04-12
  • 打赏
  • 举报
回复
CBitmap是设备相关位图。若位图格式与当前设备的显示模式不一样的话,就显示不出来。

对比一下你图片的格式和屏幕的颜色深度是否一致。


还有一个可能:
如果你用的是盗版的VC,有时候VC环境会出问题。必须重新安装VC才能解决,有时候甚至需要重新安装系统。
yulefox 2007-04-12
  • 打赏
  • 举报
回复
难道就只能在2000下重新编译了吗?有没有人通过修改库和WINDOWS版本解决这个问题?

我昨天把程序用到的库都拷过去也不行
yulefox 2007-04-11
  • 打赏
  • 举报
回复
CUniEditorDlg::CUniEditorDlg(CWnd* pParent /*=NULL*/)
: CDialog(CUniEditorDlg::IDD, pParent)
{
m_pBitmap = new CBitmap;
m_pBitmap->CreateBitmap(rcMap.right, rcMap.bottom, 2, 16, NULL);
m_dcMemory.CreateCompatibleDC(NULL);
..........
}
OnPaint中
CBitmap *poldBitmap1 = m_dcMemory.SelectObject((CBitmap *)m_pBitmap);
m_dcMemory.SelectStockObject(BLACK_BRUSH);
m_dcMemory.SelectStockObject(BLACK_PEN);
m_dcMemory.Rectangle(&rcMap);
m_dcMemory.SetPixel(h, v, m_clDraw[3]);
m_dcMemory.SelectObject(&pen);
m_dcMemory.MoveTo(lLine, v);
m_dcMemory.LineTo(h, v);
m_dc.BitBlt(rcMap.left+ptMap.cx, rcMap.top+ptMap.cy,
rcMap.right+ptMap.cx, rcMap.bottom+ptMap.cy,
&m_dcMemory, 0, 0, MERGECOPY);


大致就用了这几个,画线、描点、画矩形都 不行
gdsdyl 2007-04-11
  • 打赏
  • 举报
回复
贴出画图部分的一小段程序来,帮你找找原因。
yulefox 2007-04-11
  • 打赏
  • 举报
回复
我没有用到MFC之外的东西,只用了普通的CDC的一些接口,不管是画线,还是描点都不行。
fulingwei 2007-04-11
  • 打赏
  • 举报
回复
我上次也碰见过,我在XP下的程序在98下不能运行,检查后发现是我用到了一个第三方控件,而98里面不支持,改了之后,运行正常!

你检查一下,特别是一些特殊函数,可能2000不支持
信徒5257 2007-04-11
  • 打赏
  • 举报
回复
检查一下图片格式和当前显示的颜色深度是否一致?
he_hawk 2007-04-11
  • 打赏
  • 举报
回复
多测试一下,可能是那台机器原因

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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