我怎么把Check和Radio的背景改给指定的bmp背景???
是不是来处理ON_WM_CTLCOLOR()呢?
把处理背景的代码放进去就可以了吗?下面这段代码行吗?
HBRUSH CSystemSet::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
    HBRUSH hbr = CPropertyPage::OnCtlColor(pDC, pWnd, nCtlColor);
    if (nCtlColor == IDC_SYSTEM_SET_CHECK_LOG)
    {
    static CBrush hbr;
    CRect rt;
    GetClientRect(&rt);
    if(hbr.m_hObject==NULL){
        HBITMAP hbit=(HBITMAP)LoadImage(AfxGetInstanceHandle(),"c:\\one.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_COLOR);
        CBitmap*bm=CBitmap::FromHandle(hbit);
        hbr.CreatePatternBrush(bm);
        bm->DeleteObject();
    }
    pDC->FillRect(&rt,&hbr);            
    }
    return hbr;
}

解决方案 »

  1.   

    你可以参考CButtonST里面的做法,或者直接用CButtonST就可以了。
    下载地址:
    下载CButtonST示例源代码:http://www.vckbase.com/code/downcode.asp?id=1556
    下载CButtonST类的源代码:http://www.vckbase.com/code/downcode.asp?id=1750
      

  2.   

    文章一共有5个连结
    http://www.vckbase.com/document/viewdoc.asp?id=517
    http://www.vckbase.com/document/viewdoc.asp?id=518
    http://www.vckbase.com/document/viewdoc.asp?id=519
    http://www.vckbase.com/document/viewdoc.asp?id=520
    http://www.vckbase.com/document/viewdoc.asp?id=521
      

  3.   

    用 CreatePatternBrush 创建一个 Pattern Brush ,然后返回 Brush 的句柄
      

  4.   

    我的程序是这样的:
    我在DIALOG上放了一个Check和一个Radio,然后DIALOG的背景我改成了指定的BMP了,我想像实现的功能是把Check和Radio(里面有字),我现在想把它们的背景都改为Dialog的背景,然后照样显示Check和Radio的字!
    怎么来实现呢?
      

  5.   

    HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    if(nCtlColor==CTLCOLOR_STATIC)
    {
    pDC->SetBkMode(TRANSPARENT);
    return (HBRUSH)GetStockObject(NULL_BRUSH);
    }
    return hbr;
    }