7,655
社区成员
发帖
与我相关
我的任务
分享
m_hBmpBKgnd=LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP_BACKGROUND));
if( m_hBmpBKgnd )
{
m_hBrCtl[0] = GetBkBrush( GetSafeHwnd(), IDC_STATIC_NAME, m_hBmpBKgnd );
m_hBrCtl[1] = GetBkBrush( GetSafeHwnd(), IDC_STATIC_PASSWORD, m_hBmpBKgnd );
m_hBrCtl[2] = GetBkBrush( GetSafeHwnd(), IDC_CHECK_PASSWORD, m_hBmpBKgnd );
m_hBrCtl[3] = GetBkBrush( GetSafeHwnd(), IDC_CHECK_AUTOLOGON, m_hBmpBKgnd );
}
CPaintDC dc(this); // device context for painting
// Draw our own background image
CDC memDC;
CBitmap bmBkgnd;
bmBkgnd.Attach( m_hBmpBKgnd );
memDC.CreateCompatibleDC(&dc);
CBitmap *pOldBm = memDC.SelectObject( &bmBkgnd );
BITMAP bm;
bmBkgnd.GetObject(sizeof(bm), &bm);
dc.BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &memDC, 0, 0, SRCCOPY );
memDC.SelectObject( pOldBm );
bmBkgnd.Detach();
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
UINT nID = ::GetDlgCtrlID( pWnd->GetSafeHwnd() );
pDC->SetBkMode(TRANSPARENT );
switch( nID )
{
case IDC_STATIC_NAME: return m_hBrCtl[0];
case IDC_STATIC_PASSWORD: return m_hBrCtl[1];
case IDC_CHECK_PASSWORD: return m_hBrCtl[2];
case IDC_CHECK_AUTOLOGON: return m_hBrCtl[3];
}
return hbr;
CDialog::OnDestroy();
::DeleteObject( m_hBmpBKgnd );
::DeleteObject( m_hBrCtl[0] );
::DeleteObject( m_hBrCtl[1] );
::DeleteObject( m_hBrCtl[2] );
::DeleteObject( m_hBrCtl[3] );