MFC---多种方式显示位图

一、控件方式

1、将要显示的位图b.bmp放在res文件夹下
2、右键工程,选择“Insert”,选择Bitmap,这时工程中新添了Bitmap文件夹
3、右键Bitmap文件夹,选择“Import Bitmap”,选择b.bmp,这时Bitmap文件夹下新建了IDB_BITMAP1
4、在对话框中拖入一个Picture控件,右键选择“属性”,类型(Type)选择Bitmap,图像(Image)选择IDB_BITMAP1
这里写图片描述

二、在程序中载入位图

void CMyMessageDlg::OnPaint() 
{
    if (IsIconic())
    {
        ... ...
    }
    else
    {
        CPaintDC dc(this);   //显示设备
        CBitmap bitmap;
        CBitmap *pOldBitmap;
        CDC memDC;
        memDC.CreateCompatibleDC(&dc);   //建立设备场景,与显示设备兼容
        bitmap.LoadBitmap(IDB_BITMAP1);  //取出位图资源
        pOldBitmap = memDC.SelectObject(&bitmap);  //将位图选入内存环境
        dc.BitBlt(50, 50, 100, 100, &memDC, 0, 0, SRCCOPY);  //显示
        memDC.SelectObject(pOldBitmap);

        CDialog::OnPaint();
    }

三、在程序中绘制位图

void CPaintDlg::OnPaint() 
{
    if (IsIconic())
    {
        ... ...
    }
    else
    {
        CPaintDC dc(this);   //显示设备
        CBitmap bitmap;
        CBitmap *pOldBitmap;
        CDC memDC;
        CPen pen;
        CPen *oldpen;
        memDC.CreateCompatibleDC(&dc);  //建立设备场景,与显示设备兼容
        bitmap.CreateCompatibleBitmap(&dc, 100, 100);  //建立位图,长、宽均为100,与显示设备兼容
        pOldBitmap = memDC.SelectObject(&bitmap);  //将位图选入内存场景
        for(int i=0; i<100; i++) //画100根线
        {
            pen.CreatePen(PS_SOLID, 1, RGB(0, 0, i*2+55));
            oldpen = memDC.SelectObject(&pen);
            memDC.MoveTo(0, i);
            memDC.LineTo(100, i);
            memDC.SelectObject(oldpen);
            pen.DeleteObject();
        }
        dc.BitBlt(50, 50, 100, 100, &memDC, 0, 0, SRCCOPY);  //显示
        memDC.SelectObject(pOldBitmap);

        CDialog::OnPaint();
    }
}

这里写图片描述

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值