您的位置:首页 > 其它

MFC显示位图

2014-04-04 10:48 399 查看
一.最简单的一种
1、将图像文件以资源形式加入工程中,IDB_BITMAP1

2、用一个PICTURE控件,在其属性中,将其Type设置为Bitmap

3、将Piture控件的属性中的Image设置为IDB_BITMAP1

二.这个方法也比较简单(代码解释请看第三种方法)
1、将图像文件以资源形式加入工程中,IDB_BITMAP1

HDC MemDC;

CBitmap bit;

MemDC =CreateCompatibleDC(0);

CString cc;

bit.LoadBitmapW(IDB_BITMAP1);

SelectObject(MemDC,bit);

CClientDC dc(this);

BitBlt(dc.m_hDC,0,0,400,300,MemDC,0,0,SRCCOPY);

三.
这个方法比较好,从文件里面导入相片(代表人人看法)
HDC MemDC;//一个环境设备

MemDC =CreateCompatibleDC(0);//得到一个兼容设备句柄

HBITMAP bit;//一个位图

CString cc;

cc="test.bmp";//图片名称要放到当前目录

bit=(HBITMAP)LoadImage(NULL,cc,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);//导入图片

SelectObject(MemDC,bit);//把图片选择设备

CClientDC dc(this);//取得dc

BitBlt(dc.m_hDC,0,0,400,300,MemDC,0,0,SRCCOPY);//把 MemDC到dc.m_hDC显示,也就是在屏幕显示

补充:如果想要在一个按钮上添加位图可以这样子
1.先设Bitmap为ture

CButton *pBtn = (CButton *)GetDlgItem(IDC_BUTTON1);

pBtn->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1)));
或是从文件夹里面导入图片也可以:

HBITMAP bit;

bit=(HBITMAP)LoadImage(AfxGetInstanceHandle(),TEXT("test.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);//导入图片

CButton *pBtn = (CButton *)GetDlgItem(IDC_BUTTON1);

pBtn->SetBitmap((HBITMAP)bit);

bmp无闪烁显示技术HDC hdc;

HDC MemDC;

HDC BKDC;

HDC BuffDC;

HDC hScrDC;

HBITMAP bmp;

hScrDC = CreateDC(_T("DISPLAY"), NULL, NULL, NULL); // 屏幕DC

bmp = CreateCompatibleBitmap(hScrDC,WIDTH,HEIGHT); //一个兼容位图

MemDC = CreateCompatibleDC(0); //得到一个兼容设备句柄

BKDC = CreateCompatibleDC(0); //背景DC

BuffDC = CreateCompatibleDC(0); //缓存DC

SelectObject(BuffDC,bmp); //与兼容位图相关联

bit=(HBITMAP)LoadImage(hInst,TEXT("bk.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);//导入图片

SelectObject(BKDC,bit); //把图片选择设备

hdc = BeginPaint(hWnd, &ps);//客户窗口

BitBlt(BuffDC,0,0,640,480,BKDC,0,0,SRCCOPY);//在缓存显示背景

BitBlt(BuffDC,0,0,640,480,MemDC,0,0,SRCCOPY);//在缓存显示图片

BitBlt(hdc,0,0,640,480,BuffDC,0,0,SRCCOPY);//把缓存到dc.m_hDC显示,也就是在屏幕显
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: