求助:对话框中背景图变化 对话框中背景图变化,位图在硬盘上,能够加载到对话框的背景上面,最好能有例程,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用LoadImage函数就可以读入硬盘中的位图文件了。 在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); 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); }} 对话框修改标题 发现,对话框工程在启动的时候,会收到1个WM_CREATE和2个WM_MOVE edit中的光标问题 有关发送消息的问题。 看一下我的工程,单击对话框时,在鼠标处新建一个static,这我已经实现了,我想实现当建多个时,右击任意一个,都能弹出“警告”?这怎么 请教,CByteArray在SQL SERVER中能对应什么数据类型 Access数据库? 在局域网里怎么通过IP得到对方机器名啊? 如果对方开了防火墙又该怎么办啊? 为什么这样设置菜单的图标无效? 如何利用MSDN 怎么把GDI输出成JPG? 选择Linux(Unix)还是Windows?
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);
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);
}
}