为对话框加背景图片

    技术2022-05-19  22

    这里介绍两种方法来为对话框加背景图片:

    1,把位图加入到资源中,然后把位图ID改成自己方便记的那种ID,然后把资源加到对话框上即可

     

    void AddBackImage(CDC *pDC){ CRect rect; GetClientRect(&rect);

     CBitmap bitmap; bitmap.LoadBitmap(IDB_BITMAP2);

     CDC memDC; memDC.CreateCompatibleDC(pDC); CBitmap *pOldBitmap = memDC.SelectObject(&bitmap); pDC->BitBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0,SRCCOPY); pDC->SelectObject(pOldBitmap); memDC.DeleteDC(); bitmap.DeleteObject();}

    在onpaint 里调用AddBackImage(&dc),即可实现添加背景。

     

    2,运用loadimage来加载位图,并运用内存DC把加载的位图贴到对话框上。

    void AddBackImage(CDC *pDC){

    // 获取对话框的区域 CRect rect; GetClientRect(&rect);

     // 加载位图到对话框中 CDC memDC; CBitmap bitmap; HBITMAP hBitmap; CBitmap *pOldBitmap= NULL; hBitmap = (HBITMAP)::LoadImage(NULL,"logbitmap.bmp", IMAGE_BITMAP,0,0,LR_LOADFROMFILE); if (hBitmap!=NULL) {    bitmap.Attach(hBitmap); } else {   ReleaseDC(&memDC);

       } // 获取位图属性包括大小

     BITMAP bmSize; bitmap.GetBitmap(&bmSize);

      memDC.CreateCompatibleDC(pDC);

     

     pOldBitmap = memDC.SelectObject(&bitmap);  pDC->BitBlt(0,0,bmSize.bmWidth,bmSize.bmHeight,&memDC,0,0,SRCCOPY); memDC.SelectObject(pOldBitmap);

     ReleaseDC(&memDC); bitmap.Detach(); bitmap.DeleteObject();}

    在onpaint 里调用AddBackImage(&dc),即可实现添加背景。


    最新回复(0)