VC++单文档视图文件从磁盘中加载图像到窗口,出现以下错误,是什么原因,求高手解答。

我在视图类中添加一个成员变量,变量类型我定义为CString。是不是类型不对呢以下是程序出错的代码//加载位图m_hBmp=LoadImage(NULL,"Demo.bm... 我在视图类中添加一个成员变量,变量类型我定义为CString。是不是类型不对呢
以下是程序出错的代码
//加载位图
m_hBmp=LoadImage(NULL,"Demo.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);****错误一

……………………

void COutputBmpView::OnDraw(CDC* pDC)

{
COutputBmpDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CBitmap bmp; //定义一个位图对象;
bmp.Attach(m_hBmp); //将位图关联到位图句柄上;*******这地方出错了,错误二
CDC memDC; //定义一个设备上下文;
memDC.CreateCompatibleDC(pDC);//创建兼容的设备上下文
memDC.SelectObject(&bmp);//选中位图对像;
BITMAP BitInfo; //定义位图结构;
bmp.GetBitmap(&BitInfo);//获取位图信息;
int x=BitInfo.bmWidth; //获取位图的宽度和高度;
int y=BitInfo.bmHeight;
pDC->BitBlt(0,0,x,y,&memDC,0,0,SRCCOPY);//向窗口绘制位图;
bmp.Detach(); //分离位图句柄;
memDC.DeleteDC(); //释放设备上下文对象;
}
编译出现错误,提示错误一:error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'void *' (or there is no acceptable conversion);
错误二:error C2664: 'Attach' : cannot convert parameter 1 from 'class CString' to 'void *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
求高手帮助啊?
展开
 我来答
why755
推荐于2016-06-30 · TA获得超过311个赞
知道小有建树答主
回答量:624
采纳率:75%
帮助的人:348万
展开全部

LoadImage 第一个参数是模块(实例)句柄,只有在使用OEM图片的时候该参数才可以为NULL。

返回需要修改类型比如

HICON hProjectViewIcon = (HICON)LoadImage(AfxGetResourceHandle(), 
  MAKEINTRESOURCE(IDI_PROJECT_VIEW_HC), IMAGE_ICON, 
  ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON), 0);

 

后面的编译错误是类型不正确。需要的参数是一个HGDIOBJ而你给的是一个CString.

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式