【紧急求救】 VC++ 绘图 ,编译和运行没问题,就是不显示图片,请高手帮忙,不甚感激!

CRect rect;
m_static1.GetClientRect(&rect);

// 贴上画布
CDC m_memDC ,*pDC;
CBitmap m_memBmp, * m_pOldBitmap;

pDC = this->GetDC();
m_memDC.CreateCompatibleDC(pDC);
m_memBmp.CreateCompatibleBitmap(pDC,rect.right-1, rect.bottom-36);

m_pOldBitmap = m_memDC.SelectObject(&m_memBmp);
m_memDC.FillSolidRect(0,0,rect.right,rect.bottom,RGB(150,150,150));

// 贴图
USES_CONVERSION;
LPWSTR wStr = A2W("abc.bmp");
Image img(wStr);

//Graphics g(this->m_hWnd); //这句可以显示图片
Graphics g(m_memDC.GetSafeHdc()); //????问题就这句无任何显示

g.DrawImage(&img,18,22,img.GetWidth() , img.GetHeight() );

// 恢复
m_memDC.SelectObject(m_pOldBitmap);

第1个回答  2011-08-30
Graphics g(this->m_hWnd)
this->m_hWnd这个是返回窗口的句柄,
m_memDC.GetSafeHdc()这个虽然是句柄,是当前显示器兼容的内存设备的句柄
两者虽然都是句柄,单指的不是一回事啊,编译只管类型,类型一致当然不报错了.
GDI编程我是不会了,你可以看看这篇文章
http://blog.csdn.net/duanhong19881021/article/details/5995919
Graphics(HDC hdc, HANDLE hdevice); // 用于在指定设备上绘制图形
你可以改成下面的语句试试看:
Graphics g(pDC,m_memDC.GetSafeHdc());
另外Graphics g(this->m_hWnd);可以直接用阿,为什么要改呢?
这一句就是在当前窗口显示图形,比你用设备的句柄更直接.

visual C++问题,编译运行都没有错,但弹不出窗
程序已经运行完了是不会停留在DOS窗口的,在printf("hello world")后面加一句scanf("%d",&i);当然i要事先定义

...编译能通过,运行出现程序已停止工作,请高手帮忙为什么运行界面显示...
1.程序没有等待输入输出,很快的运行完毕并退出了 2.程序没有等待输入,很快计算完毕输出并退出了 3.程序一运行就出错退出了 你没说详细情况也没有代码,不明白你说的是哪种情况,你到命令行下,进到程序所在目录,手动输入程序名并回车,看看命令上有无提示信息吧 ...

...一运行发现循环有问题 各位高手帮忙看看 在下感激不尽!
int a,b,c,j,score=0,num1(),num2(),num3(),d;float num4(),e;char op;void main(){ while(1){ printf("请选择运算类型:+ - * \/\\n");op=getchar();switch(op){ case'+':score=num1();break;case'-':score=num2();break;case'*':score=num3();break;case'\/':scor...

...会显示:Afxis valid address 请高手帮忙解决,多谢!
1,通过该窗口手柄是空的,窗口对象的生成,但没有使用“创建创建窗口。窗口的线程的线程,然后使用映射窗口指针FromHandle读或临时窗口指针映射,势必要出问题的。窗口的线程相关联的哦 你点击菜单上的命令错误,你很可能会菜单命令你的FromHandle语句执行的代码,你看,问我还有 200点,不明白,必须参加并...

...检查代码也没问题,但就是显示不了!请高手帮帮忙。。。
代码是没错,就是代码不完整;并且图片是二进制文件,你随便echo 个字符在上面干什么?查看一下gd库的手册,有完整的例子,复制粘贴,不显示在来提问

!请高手帮忙看看下面程序!总是编译出错!显示 cannot convert from 'doub...
xy是个5*5的二维数组,转换成double *出了问题。可以将xy改为一维数组如下:double * f2(double x[], double y[]){ double xy[25];int i,k,index=0;for (k=0;k<max_r;k++){ for (i=0;i<max_c;i++){ xy[index] = x[k]>=y[i] ? y[i] : x[k];index++;} } retur...

用GCC编译器编译出来的程序运行出错,请高手帮忙解决!
include <iostream>using namespace std;int main(void) {int i, sum = 0;for (i = 1; i <= 100; i++)sum += i;cout << sum << endl;return 0;}code本身完全没有问题。我认为是你GCC没有安装或配置好。

急求两篇外贸函电写作,请高手帮帮忙,不甚感激!~~~
1,dear sir,we are glad to note from your letter of (日期自定)that,as exporters,you are desirous to establish business relations with us.this happens to coincide with our desire.we have been leading importers and exporters of cotton and woolen piece goods for these ten years, ...

Visual C++安装遇到问题,请高手帮忙解决
以前安装未成功或者没有完全卸载的原因 我也遇到这个情况 下载其他版本我说的还是VC6.0不同地址下的而已 安装覆盖 ,或者用360 qq软件卸载看下有没有 有就卸载 ,

VC++ 2010 不能编译,急求解决办法!
1 检查你引用了哪些dll没有,如果有检查一下这些dll有没有依赖 2 你的工程中有没有需要注册的组件,特别是.Net编写的Com组件 3 仔细检查你的编译版本目标计算机上有没有,因为编译版本不一定是开发计算机的最高版本

相似回答