求助:对话框中背景图变化
对话框中背景图变化,位图在硬盘上,能够加载到对话框的背景上面,最好能有例程,谢谢 问题点数:30、回复次数:4Top
1 楼happyparrot(快乐鹦鹉)回复于 2005-03-02 14:04:14 得分 0
用LoadImage函数就可以读入硬盘中的位图文件了。Top
2 楼legendhui(秋天的叶子)回复于 2005-03-02 14:14:30 得分 3
在OnPaint函数里
CPaintDC dc(this); // device context for painting
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
BITMAP bmpInfo;
bitmap.GetBitmap(&bmpInfo);
CDC dcMemory;
dcMemory.CreateCompatibleDC(&dc);
CBitmap *pOldBmp = dcMemory.SelectObject(&bitmap);
dc.BitBlt(0,0,bmpInfo.bmWidth,bmpInfo.bmHeight,&dcMemory,0,0,SRCCOPY);Top
3 楼kuboybat(保镖)回复于 2005-03-02 14:21:51 得分 0
LoadImage,如楼上所说!:)Top
4 楼lanstar200(待我景天大侠斩妖除魔)回复于 2005-03-02 14:35:51 得分 27
CDC m_dcMem;
CBitmap m_bmMem;
void CTest3Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
HBITMAP hBitmap = (HBITMAP)::LoadImage( NULL , "E:\\1.bmp" , IMAGE_BITMAP , 0 , 0 , LR_LOADFROMFILE);
if(hBitmap == NULL) return;
if(m_dcMem.GetSafeHdc() != NULL)
m_dcMem.DeleteDC();
if(m_bmMem.GetSafeHandle() != NULL)
m_bmMem.DeleteObject();
m_bmMem.Attach(hBitmap);
CDC *dc = GetDC();
m_dcMem.CreateCompatibleDC( dc );
m_dcMem.SelectObject(m_bmMem);
ReleaseDC(dc);
Invalidate();
}
void CTest3Dlg::OnDestroy()
{
CDialog::OnDestroy();
// TODO: Add your message handler code here
if(m_dcMem.GetSafeHdc() != NULL)
{
m_dcMem.DeleteDC();
}
if(m_bmMem.GetSafeHandle() != NULL)
{
m_bmMem.DeleteObject();
}
}
void CTest3Dlg::OnPaint()
{
CPaintDC dc(this);
if(m_dcMem.GetSafeHdc() != NULL )
{
CRect rc;
GetClientRect(&rc);
dc.BitBlt( 0 , 0 , rc.Width() , rc.Height() , &m_dcMem , 0 , 0 , SRCCOPY);
}
}Top




