㈠ MFC中載入背景圖片的問題
請在OnPaint();中繪制背景!
每次移動,系統會自動調用OnPaint();
所以就不會掉了。。。
㈡ MFC基本對話框中添加背景圖片相關問題
添加背景最好是放在OnEraseBkgnd(CDC* pDC)函數中,在OnPaint中有可能會閃屏。
// CBitmapm_pBmp;
// BITMAPbm;
// CDCdcMem;
// m_pBmp.LoadBitmap(IDB_BITMAP_BG);
// m_pBmp.GetBitmap(&bm);//得到點陣圖尺寸
// dcMem.CreateCompatibleDC(pDC);
// CBitmap*pOldBitmap=dcMem.SelectObject(&m_pBmp);
// pDC->SetStretchBltMode(COLORONCOLOR);//這個模式不設置的話會導致圖片嚴重失真
// pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
// dcMem.SelectObject(pOldBitmap);
// dcMem.DeleteDC();
用我這個代碼
為什麼要LoadBitmap 2次?
㈢ 想用MFC做個界面,但不知道如何在MFC對話框中插入背景圖片,把這圖片用於登錄界面的背景
背景圖像載入很簡單,你只需要做以下幾步即可(假設你的登陸界面對話框類名叫「CLoginDlg」):
(1)菜單「Insert」->"Resource",選擇Bitmap,然後點「Import...」,選擇你的背景圖像,然後假設該資源ID為「IDB_BITMAP1」;
(2)在LoginDlg.h下聲明一個CBitmap m_BKbitmap;
(3)在LoginDlg.cpp的構造函數中:m_BKbitmap.LoadBitmap(IDB_BITMAP1);
(4)在LoginDlg.cpp的OnPaint()函數中寫上:
void CLoginDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
if (IsIconic())
{
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
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;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
BITMAP bm;
CRect rect;
CDC dcMem;
m_BKbitmap.GetBitmap (&bm);
GetClientRect(&rect);
dcMem.CreateCompatibleDC (&dc);
CBitmap *oldbitmap=dcMem.SelectObject (&m_BKbitmap);
dc.BitBlt (0,0,bm.bmWidth ,bm.bmHeight ,&dcMem,0,0,SRCCOPY);
dcMem.SelectObject(oldbitmap);
CDialog::OnPaint();
}
}
你的問題就OK了。
關於按鈕控制項顯示圖片,建議你可以下載一個CButton的繼承類,什麼「CButtonST」啊、「CBtnST」啊、「CDlgShadeButtonST」啊,自己手寫的話不劃算,有很多現成的控制項類,都寫的非常好,完全可以拿來為我們所用。
㈣ MFC怎麼為不同的對話框設置不同的背景
MFC設置背景,採用添加Bitmap的方法,首先把你想要設置為背景的圖片轉換成bmp格式,然後再引入到工程裡面,再在每個對話框中添加控制項,再選擇。具體見圖:
1、首先在工程添加bitmap,右擊工程名,添加。
不同的對話框中,選擇不同的圖像就行了,圖像就是你引入的。
㈤ 怎麼給MFC的對話框加背景圖片
1、新建MFC應用程序。
㈥ MFC如何在窗口顯示背景圖片~~~~~~~~~~~~~~~~
能吧問題描述的清楚點嗎, 什麼是「顯示文字的那個窗口。。。不是對話框」??
補充:創建一個工程的時候,直接運行看到的窗口其實也是對話框。
添加背景圖片:
1. 使用picture control控制項,然後LoadBitmap, setbitmap就可以了
2. 也可以重寫WM_ERASEBKGND消息:使用dc,先LoadBitmap, createcompatibledc,然後selectobject講圖片選到dc上去,最後bitblt將圖片畫上去。
3. 也可以重寫WM_PAINT消息:基本跟2的步驟一樣,但是最後還要處理下WM_ERASEBKGND,直接return TRUE.不然直接改寫WM_PAINT可能會使背景閃爍
要看代碼示例的話,建議你去http://www.vckbase.com/code裡面很多關於UI製作的示例都很經典,而且還附帶了文檔解釋,很容易看懂的,我基本都在上面學的。
㈦ mfc中,如何給對話框添加圖片背景
添加背景最好是放在OnEraseBkgnd(CDC* pDC)函數中,在OnPaint中有可能會閃屏。
//CBitmapm_pBmp;
//BITMAPbm;
//CDCdcMem;
//m_pBmp.LoadBitmap(IDB_BITMAP_BG);
//m_pBmp.GetBitmap(&bm);//得到點陣圖尺寸
//dcMem.CreateCompatibleDC(pDC);
//CBitmap*pOldBitmap=dcMem.SelectObject(&m_pBmp);
//pDC->SetStretchBltMode(COLORONCOLOR);//這個模式不設置的話會導致圖片嚴重失真
//pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
//dcMem.SelectObject(pOldBitmap);
//dcMem.DeleteDC();
用我這個代碼
㈧ mfc怎樣設置進度條前景圖和背景圖
工具/原料
Visual C++ 2010
方法一:用Picture控制項
1
新建MFC應用程序
2
在應用程序中,選擇基於對話框,其他保持默認即可
3
右擊項目,選擇添加-資源
4
在添加資源對話框中,點擊導入,選擇要作為背景的圖片
可以是jpg格式的圖片哦
5
在工具箱找到Picture控制項,托到界面中
6
在界面上點擊選中Picture控制項,然後在屬性的Type下拉框中,選擇Bitmap
7
再在Picture控制項的屬性的Type下拉框中插入的圖片資源
選擇好後,圖片就可以載入進對話框了
8
運行程序,看到背景已經變成你設置的圖片啦 #^_^#
END
方法二:重載 OnCtlColor()函數2
1
像方法一那樣,插入一張圖片到資源文件中,ID為 IDB_BITMAP2
2
在dlgImageDlg.h中,添加以下代碼
dlgImage是項目的名稱
3
在dlgImageDlg.cpp文件的OnInitDialog()函數中,添加以下代碼
4
在設計界面中,右擊對話框,選擇屬性。然後在消息中找到 WM_CTLCOLOR,在右側下拉框中,選擇 OnCtlColor,重載OnCtlColor()函數
5
在OnCtlColor()函數中,添加如下代碼
6
運行程序,界面的背景已經變成漂亮的圖片啦
END
方法二注意事項3
在方法二中,如果無法將jpg或其他格式的圖片插入到Bitmap資源文件夾下,或者圖片無法正常顯示,可能是程序沒有將其他格式的圖片當作bmp格式來處理。
如果中間不是 BITMAP 格式,可以改成 BITMAP 格式
㈨ VC6.0MFC中怎樣給對話框添加背景圖片
你添加的這個不是bmp點陣圖文件
附加點陣圖的時候,不能單單是把文件後綴改成.bmp
你可以用畫圖,或者其他看圖工具,打開圖片後另存為bmp格式
再插入的時候,就會變成點陣圖附加到項目中了
附加了以後,圖片的id會變成IDB_BITMAP1,你可以改成自己想要的名字