时间:2013.03.25 周一
功能:表情预览
问题描述:如果所预览表情的大小小于预览区域的话,除了显示预览的表情,空白的位置还会显示其他的表情
解决方法:新增一个static控件,用OnctlColor()把这个控件的背景刷成需要的颜色。
在显示预览表情时,先显示这个static控件,然后再它的上面再显示预览的表情。
显示和隐藏都是一起的。
//.h CMyPicture m_pic; //表情预览 CStatic m_edit; //表情预览的背景 //.cpp void CImageDlg::DoDataExchange(CDataExchange* pDX) { CExDialog::DoDataExchange(pDX); DDX_Control(pDX,IDC_PREPIC1,m_pic); DDX_Control(pDX,IDC_STATIC1,m_edit); } HBRUSH CImageDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CExDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: 在此更改 DC 的任何属性 if (pWnd->GetDlgCtrlID() == IDC_STATIC1) { pDC->SetBkMode(TRANSPARENT); return (HBRUSH)::GetStockObject(WHITE_BRUSH); } // TODO: 如果默认的不是所需画笔,则返回另一个画笔 return hbr; } m_pic.ShowWindow(SW_HIDE); m_edit.ShowWindow(SW_HIDE); //.. m_edit.ShowWindow(SW_SHOW); m_pic.ShowWindow(SW_SHOW);