在对话框下显示一幅24位色位图失真有关问题

在对话框上显示一幅24位色位图失真问题
在一个对话框上加载一副位图(24位色)时,当位图尺寸大于对话框尺寸时(如对话框大小400*300,而位图尺寸为640*480),在对话框上显示的位图发生很大的失真,出现很多花花的点和线,怎么解决这个问题呢?当然了,如果说把对话框尺寸拉大或将位图缩小都能解决问题,但我想这并不是从根本上解决问题的方法。我在网上看到了很多在对话框上显示位图的方法,如:
1,使用Picture控件;
2,首先通过LoadBitmap加载位图,然后CreateCompatibleDC创建兼容DC,然后SelectObject选入位图,然后BitBlt或StretchBlt将位图显示到对话框;
3,有人说LoadBitmap如果加载24位色的位图会使图象失真(我想这会不会是导致问题的原因),应该使用LoadImg来加载位图。
我的问题是:
1,是否是因为LoadBitmap来加载24位色位图导致的失真呢,用LoadImg加载是否就没有此问题;
2,LoadImg从磁盘文件中加载,LoadBitmap是从加载中资源,那如果将位图添加到资源中,除了图象失真,就没有办法了吗?

------解决方案--------------------
你用了StrechBlt

改用GDI+里的Image吧,可以控制图片的显示质量


------解决方案--------------------
试试用dc.SetStretchBltMode(COLORONCOLOR);
------解决方案--------------------
可以从几个方面尝试解决:

首先确定你的系统颜色设置是不是24位或32位的
其次,老版本的VC导入24位位图的时候会提示不支持,要求转换,你是否选择了“是”?
如果LoadBitmap总是不行,可以尝试用LoadImage,注意选择根据位图文件创建调色版的选项
------解决方案--------------------
颜色失真是StretchBlt造成的