c++在hdc中显示不出bmp位图

第一次学,求助高手,是哪里错了HDChdc=GetDC(hwnd);HDCmdc=CreateCompatibleDC(hdc);HBITMAPhbg=(HBITMAP)... 第一次学,求助高手,是哪里错了
HDC hdc = GetDC(hwnd);
HDC mdc = CreateCompatibleDC(hdc);

HBITMAP hbg = (HBITMAP)LoadImage (NULL, L"image/bg.bmp", IMAGE_BITMAP, 480, 852, LR_LOADFROMFILE);

SelectObject(mdc, hbg);
BitBlt(hdc, 0, 0, 480, 852, mdc, 0, 0, SRCCOPY);
展开
 我来答
哎呀……18a91a6
2016-08-04 · TA获得超过4.2万个赞
知道大有可为答主
回答量:7246
采纳率:76%
帮助的人:3021万
展开全部

一、你的代码需要重点查核的地方:

HDC hdc = GetDC(hwnd); //请查hwnd是是哪个东西的句柄,这个东西在窗体上是否可见
HDC mdc = CreateCompatibleDC(hdc);

//这一句 L"image/bg.bmp" 中的L可能要去除,不同的编译环境不同要求
HBITMAP hbg = (HBITMAP)LoadImage (NULL, L"image/bg.bmp", IMAGE_BITMAP, 480, 852, LR_LOADFROMFILE);

SelectObject(mdc, hbg);
BitBlt(hdc, 0, 0, 480, 852, mdc, 0, 0, SRCCOPY);


二、以下代码,在BDS 2006中的C++ Builder中通过,不必另加引用和库,供你对比参考,你的代码基本上没错,我改的地方作了标注:

//--------------------------------------------------------------
//放上一个按钮控件,双击这个控件生成基本的函数,然后去添加你的代码
void __fastcall TForm1::Button2Click(TObject *Sender) 
{

//在窗体上先放一个Panel1控件,此处修改,让你取得Panel1控件的句柄,这样你就可以在Panel1上画图了
HDC hdc = GetDC(Panel1->Handle);
  
HDC mdc = CreateCompatibleDC(hdc);

 //注意,我改向了D盘根目录下的bg.bmp文件,并自个用画图板乱画一个图,保存为D:\bg.bmp
 //BDS 2006 C++Builder中提示"d:\\bg.bmp"前不要加“L”。
HBITMAP hbg =
(HBITMAP)LoadImage (NULL, "d:\\bg.bmp", 
IMAGE_BITMAP, 480, 852, LR_LOADFROMFILE);

SelectObject(mdc, hbg);
BitBlt(hdc, 0, 0, 480, 852, mdc, 0, 0, SRCCOPY);
}
//---------------------------------------------------------------

三、学习编程的道路是很难的,因为书上,或别的的源代码是有具体的环境的,需要理解着来。当然,没有经验的朋友有时根本无法“理解着来”。祝你好运哦。

追问
我看了hwnd,就是当前显示窗口的句柄,L要加上编译才通过,都没错,但图片还是没显示。我刚学,只是简单显示一张背景图片,还不会控件,还请帮忙分析。或者还有什么其他方法,能否告诉我,谢谢
追答
1、不同的编译器具体的代码会有小的不同。
2、在当前C++编程来说,不会控件就根本没有找到“门”,别说入门。当然,也许你是没理解控件是什么东西。
3、建议你尽量按我的思路去做。可能窗体上有别的东西影响了图像的显示。
聚发稿网
2016-08-04 · 知道合伙人生活技巧行家
聚发稿网
知道合伙人生活技巧行家
采纳数:5647 获赞数:29663
聚发稿网创始人,作家,笔名志耘誉松著《机械魔敌》《笑泪恋曲》

向TA提问 私信TA
展开全部
可以用GDI+的Bitmap类Bitmapbm("c:\\1.bmp");ColorCr;bm.GetPixel(10,10,Cr);BYTEbR=Cr.GetR();BYTEbG=Cr.GetG();BYTEbB=Cr.GetB();bR,bG,bB就是10,10这个坐标像素的RGB分量使用GDI+需要包含gdiplus.h头文件连接gdiplus.lib库
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WSN石家庄业余球王1
2016-08-04 · TA获得超过1235个赞
知道小有建树答主
回答量:880
采纳率:100%
帮助的人:374万
展开全部
有没有错误提示?有的话贴出来看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式