MFC/WTL 设置背景图和控件透明的方法
2016-04-19 17:00 sylar_liang 阅读(1599) 评论(0) 编辑 收藏 举报1.MFC 对话框设置背景图
方法一:
1>资源中导入一张bitmap图,如命名为 IDB_BITMAP1
2>对话框中添加一个 Picture Control,属性设置 Type 改为Bitmap,Image 设置为 IDB_BITMAP1, Transparent 设置为 False 即可
方法二: 此方法尚未验证
1>资源添加一张bitmap,命名为IDB_BITMAP1
2>Dlg中定义 CBrush m_brBk;
3>OninitDialog中
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
m_brBk.CreatePatternBrush(&bmp);
bmp.DeleteObject();
4>重载 WM_CTLCOLOR
if (pWnd == this)
{
return m_brBk;
}
2.MFC 对话框设置控件为透明.
1>button则需要额外设置属性 TRANSPARENT 为 True,其他的 checkbox,static,edit等控件TRANSPARENT设置为 true或false都可以透明显示。
2>重载对话框的 WM_CTLCOLOR
{
if(pWnd->GetDlgCtrlID() == 控件ID) //控件可以为static,checkbox,button,edit等
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0)); //字体颜色,黑色
return (HBRUSH)GetStockObject(NULL_BRUSH);
}
return hbr;
}
3.WTL 添加背景图并透明显示
4.WTL 控件透明
5.WTL 设置字体大小颜色
CFont cf;
cf.CreateFont(20, 0, 0, 0, FW_DONTCARE, FALSE, FALSE, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, _T("宋体"));
m_listctrl.SetFont(cf, TRUE);
m_listctrl.SetTextColor(RGB(0,0,0)); //设置字体颜色