c++ 怎么给对话框添加背景图片?

c++ 怎么给对话框添加背景图片?,第1张

用CImage类.

在onpaint()中

if (IsIconic())

{

 .......//系统代码,不修改

}

else    //在else中增加如下代码,对JPG,BMP,PNG(背景透明图片)有效

{

    CRect rc

    GetClientRect(rc)

    CImage image

    image.Load(_T("c:\\1.jpg")) //图片文件路径

    if (image.GetBPP() == 32)

    {

        int i int j 

        for (i = 0 i < image.GetWidth() i++)

        {

            for (j = 0 j < image.GetHeight() j++)

            {

                byte *pByte = (byte *)image.GetPixelAddress(i, j)

                pByte[0] = pByte[0] * pByte[3] / 255

                pByte[1] = pByte[1] * pByte[3] / 255

                pByte[2] = pByte[2] * pByte[3] / 255

    唯橘 指袭团       }

        }

    }

   禅尘 image.Draw(GetDC()->m_hDC, rc)

}

三步。

第陵行铅一步:

选好.bmp的类型的图片。在资源视图中导入。随便复制到.res文件带闭夹下。

第二步。在对话框上添加picture控件,调整到大小。右击属性选择Type选择Bitmap.

Image下拉组合框选择你导入的图片尺好。运行时即可显示图片。

如果要设置和窗体一样的大小SetWindowPos就可以了。查查这个函数的作用

(一)缓清引入一张bmp图片隐简资源!

(二)在OnPaint()函数里面添加代码,代码如下:

CPaintDC dc(this)

CRect rect

GetClientRect(&rect)

CDC dcMem

dcMem.CreateCompatibleDC(&dc)

CBitmap bmpBackground

bmpBackground.LoadBitmap(IDB_BITMAP2)

//IDB_BITMAP是你自己的灶哪裤图对应的ID

BITMAP bitmap

bmpBackground.GetBitmap(&bitmap)

CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground)

dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/bake/11984582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存