程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> MFC程序如何實現給對話框添加背景圖片

MFC程序如何實現給對話框添加背景圖片

編輯:關於C++

1.插入一個Bitmap的資源圖片,假設資源名稱為:IDC_BITMAP1

2.在CXXXDialog::OnPaint()中實現:

void CMyDialogDlg::OnPaint()  
{  
    if (IsIconic())  
    {  
        CPaintDC dc(this); // 用於繪制的設備上下文  
      
        SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);  
      
        // 使圖標在工作區矩形中居中  
        int cxIcon = GetSystemMetrics(SM_CXICON);  
        int cyIcon = GetSystemMetrics(SM_CYICON);  
        CRect rect;  
        GetClientRect(&rect);  
        int x = (rect.Width() - cxIcon + 1) / 2;  
        int y = (rect.Height() - cyIcon + 1) / 2;  
      
        // 繪制圖標  
        dc.DrawIcon(x, y, m_hIcon);  
    }  
    else
    {  
        //  
        // 給窗體添加背景  
        //  
        CPaintDC dc(this);  
        CRect rc;  
        GetClientRect(&rc);  
        CDC dcMem;  
        dcMem.CreateCompatibleDC(&dc);  
        CBitmap bmpBackground;  
        bmpBackground.LoadBitmap(IDB_BITMAP1);  
      
        BITMAP bitmap;  
        bmpBackground.GetBitmap(&bitmap);  
        CBitmap* pbmpPri = dcMem.SelectObject(&bmpBackground);  
        dc.StretchBlt(0,0,rc.Width(), rc.Height(), &dcMem,0,0,bitmap.bmWidth, bitmap.bmHeight, SRCCOPY);  
    }  
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved