我怎么把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;
}
是不是来处理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;
}
解决方案 »
- win7下VC调用外部批处理的问题
- 线程的几个问题,有点疑问
- dll怎么能获取自身所在的目录?
- 请教高手 某些utf-8编码的汉字占4个字节,他的unicode编码值的范围超过了65535,这样的字在windows中 WCHAR 能表示吗?Win32API能处理吗?
- 菜鸟求助,问几个关于C语言的一些傻问题。
- 我写的MFC程序,运行的时候会让其他东西无法工作,如果硬要点击什么的话,会使到该程序无法响应,为什么会这样啊~~
- 对话框程序中的Button控件偶尔会不见了???
- 关于编译器的奇怪的问题?告急!
- vc中清空当前框架的文档无效
- 如何判断窗口对象是否存在
- 在ODBC数据库编程中有没有函数可以遍历数据库中的表?
- 为什么会产生“不可识别的数据库格式 ”
下载地址:
下载CButtonST示例源代码:http://www.vckbase.com/code/downcode.asp?id=1556
下载CButtonST类的源代码:http://www.vckbase.com/code/downcode.asp?id=1750
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
我在DIALOG上放了一个Check和一个Radio,然后DIALOG的背景我改成了指定的BMP了,我想像实现的功能是把Check和Radio(里面有字),我现在想把它们的背景都改为Dialog的背景,然后照样显示Check和Radio的字!
怎么来实现呢?
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor==CTLCOLOR_STATIC)
{
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)GetStockObject(NULL_BRUSH);
}
return hbr;
}