重载了窗口OnEraseBkgnd设置背景图, 导致窗口里Slider控件背景全变黑,求助! 郁闷啊!怎么回事啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BOOL CMyDlg::OnEraseBkgnd(CDC* pDC) { CDC dc; dc.CreateCompatibleDC(pDC); CBitmap *pOldBit=dc.SelectObject(&m_Back); BITMAP hb; m_Back.GetBitmap(&hb); CRect rt; GetClientRect(&rt); pDC->StretchBlt(0, 0, rt.Width(), rt.Height(), &dc, 0, 0, hb.bmWidth, hb.bmHeight, SRCCOPY); //dc.SelectObject (pOldBit);// return TRUE; } BOOL CMyDlg::OnEraseBkgnd( CDC* pDC ){ RECT rt; GetWindowRect(&rt); ScreenToClient(&rt); pDC->FillSolidRect(&rt, RGB(0,255,0)); return TRUE;} 给你一段代码:if( m_bmpBackground.GetSafeHandle() != NULL ) { CDC* pDCTemp = new CDC;; BITMAP bmp; pDCTemp->CreateCompatibleDC( &dc ); m_bmpBackground.GetBitmap( &bmp ); // Select the bitmap into the temp device context CBitmap* pOldBitmap = (CBitmap*) pDCTemp->SelectObject( &m_bmpBackground ); // Stretch the bitmap to fill the entire control area pDCMem->StretchBlt( 0, 0, rFrame.Width(), rFrame.Height(), pDCTemp, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY); pDCTemp->SelectObject( pOldBitmap ); delete pDCTemp; } else 最好是在OnPaint中绘制, 因为WM_PAINT消息在WM_ERASEBACKGROND之后响应。 在线等我做了个DLL,调用时候程序中断了 菜单 指针 ADO如何捕捉Update,delete的错误呢 菜鸟请教VC 关于字符编码的问题 请问如何将网络命令并行处理? 我添加了3个Radio Button,3个竟然能够同时选中,奇怪?怎么回事?我要实现的是单选的功能啊.....(在线) 我的系统出了问题,来看看 如果我用VC做的.DLL包括MFC,以后在调用该.DLL的地方只要将.DLL拷贝到相关目录底下就行了? 怎么在一段时间内让Windows对键盘的消息不响应? 请教如何制作有颜色的按钮和窗体 关于VBScript运行环境的问题?在线等 :) 如何显示一个文件夹下的所有文件的文件名??
{
CDC dc;
dc.CreateCompatibleDC(pDC);
CBitmap *pOldBit=dc.SelectObject(&m_Back);
BITMAP hb;
m_Back.GetBitmap(&hb);
CRect rt;
GetClientRect(&rt);
pDC->StretchBlt(0, 0, rt.Width(), rt.Height(),
&dc, 0, 0, hb.bmWidth, hb.bmHeight, SRCCOPY); //dc.SelectObject (pOldBit);//
return TRUE;
}
{
RECT rt;
GetWindowRect(&rt);
ScreenToClient(&rt);
pDC->FillSolidRect(&rt, RGB(0,255,0));
return TRUE;
}
if( m_bmpBackground.GetSafeHandle() != NULL )
{
CDC* pDCTemp = new CDC;;
BITMAP bmp; pDCTemp->CreateCompatibleDC( &dc ); m_bmpBackground.GetBitmap( &bmp ); // Select the bitmap into the temp device context
CBitmap* pOldBitmap = (CBitmap*) pDCTemp->SelectObject( &m_bmpBackground ); // Stretch the bitmap to fill the entire control area
pDCMem->StretchBlt( 0, 0, rFrame.Width(), rFrame.Height(), pDCTemp,
0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY); pDCTemp->SelectObject( pOldBitmap );
delete pDCTemp;
}
else