• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

程序小白一个,向大神请教,现在有个任务要求根据已有的bmp文件来读取像素值,进行显示,在第一步就遇到了问题,一直加载不了bmp文件,不知道错误在哪里

过去、回不去 2020-05-24 10:49:40
CBrush BackBrush(RGB(0xff, 0xff, 0xff)); //画刷
memDC->FillRect(&clientRECT, &BackBrush);

//1、从应用的可执行文件中加载已有的位图资源,开始装配上下文
CBitmap mybitmap;
int Width = 1016; // 位图宽度
int Height = 712; // 位图高度
CString FiguerName;
FiguerName = "C:/Users/Administrator.PC-201812261346/Desktop/radar.bmp"; //位图路径
if(mybitmap.LoadBitmap(FiguerName)) //位图装载
{
BITMAP bm;
mybitmap.GetBitmap(&bm);// 获得位图的详细信息
CDC* pDC;
pDC = this->GetDC();
memDC = new CDC();
memDC->TextOut(20, 20, L"bmp resource have been loaded:");
memDC->CreateCompatibleDC(clientDC);//创建兼容的内存DC
memDC->SelectObject(&mybitmap);//内存DC选择位图对象
memDC->BitBlt(30, 30, Width, Height, memDC, 0, 0, SRCCOPY); //使用贴图函数显示内存DC中的位图内容(用于从原设备中复制位图到目标设备)

ReleaseDC(clientDC);
...全文
475 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyrr159487 2020-06-18
可以断点IF处,看下路径是否正常
回复
建筑师 2020-05-31
C:\\Users\\Administrator.PC-201812261346\\Desktop\\radar.bmp
回复
Eleven 2020-05-29
CImage::Load()最简单,要不就用API LoadImage
回复
sichuanwww 2020-05-25
斜杠 路径都是拦路虎
回复
已经改成了双斜杠,但是位图还是没有显示出来,我设置断点调试了一下,if判断那里没有进去,所以图片没有显示出来
回复
smwhotjay 2020-05-24

注意单斜杠,,要么容易被转义,要么容易被吃。改成双斜杠。
回复
lunatic7 2020-05-24

	COleStreamFile osf;//数据流载入exe资源
	osf.CreateMemoryStream(NULL);
	osf.Write(pImage, 1024 * 10);
	osf.SeekToBegin();

	CImage image;
	if (SUCCEEDED(image.Load(osf.GetStream())))
	{
		auto pWnd = GetDlgItem(IDC_BMP);//这里是获得控件句柄
		CDC* pDC = pWnd->GetDC();
		HDC hDC = pDC->m_hDC;

		CRect rect_frame;
		pWnd->GetClientRect(&rect_frame);

		::SetStretchBltMode(hDC, HALFTONE);//拉伸
		::SetBrushOrgEx(hDC, 0, 0, NULL);//起点

		image.Draw(hDC, rect_frame);
		ReleaseDC(pDC);//释放picture控件的DC
	}
回复
schlafenhamster 2020-05-24
hImage = LoadImage (NULL, ofn.lpstrFile, IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE | LR_CREATEDIBSECTION);
回复
schlafenhamster 2020-05-24
LoadBitmap
The LoadBitmap function loads the specified bitmap resource from a module's executable file. This function has been superseded by theLoadImage function.

HBITMAP LoadBitmap(
HINSTANCE hInstance, // handle to application instance
LPCTSTR lpBitmapName // address of bitmap resource name
);

hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2020-05-24 10:49
社区公告

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