静态文本框变透明,灰化的edit框竟然也跟着变了
我要使界面变的漂亮一点,所以在OnCtlColor里画了背景色:
if ((nCtlColor== CTLCOLOR_DLG))
{
HBRUSH hEditBr = ::CreateSolidBrush(g_FormBgc);
return hEditBr;
}
但是静态文本框还是灰色的,所以我又把静态文本框变透明了
if ((nCtlColor== CTLCOLOR_STATIC))
{
HBRUSH hNullBr = (HBRUSH)::GetStockObject(NULL_BRUSH);
pDC->SetBkMode(TRANSPARENT);//透明
return hNullBr;
}
这个时候灰化的edit框竟然变成了黑色的。
于是我又把静态文本框变成其他颜色:
if ((nCtlColor== CTLCOLOR_STATIC))
{
pDC->SetBkColor(RGB(255,255,0)); //可以将所有静态框背景变色
HBRUSH hEditBr = ::CreateSolidBrush(g_FormBgc);
}
这个时候灰化的edit框竟然也跟着变色了,非常头疼。大家有没有遇到过类似问题,或者有更好的办法把界面变的漂亮一点,感谢赐教!
我要使界面变的漂亮一点,所以在OnCtlColor里画了背景色:
if ((nCtlColor== CTLCOLOR_DLG))
{
HBRUSH hEditBr = ::CreateSolidBrush(g_FormBgc);
return hEditBr;
}
但是静态文本框还是灰色的,所以我又把静态文本框变透明了
if ((nCtlColor== CTLCOLOR_STATIC))
{
HBRUSH hNullBr = (HBRUSH)::GetStockObject(NULL_BRUSH);
pDC->SetBkMode(TRANSPARENT);//透明
return hNullBr;
}
这个时候灰化的edit框竟然变成了黑色的。
于是我又把静态文本框变成其他颜色:
if ((nCtlColor== CTLCOLOR_STATIC))
{
pDC->SetBkColor(RGB(255,255,0)); //可以将所有静态框背景变色
HBRUSH hEditBr = ::CreateSolidBrush(g_FormBgc);
}
这个时候灰化的edit框竟然也跟着变色了,非常头疼。大家有没有遇到过类似问题,或者有更好的办法把界面变的漂亮一点,感谢赐教!
解决方案 »
- GetProfileString没有指定profile文件的名称,它是从哪里找到信息的?
- 有没有判断文件夹名是否合法的方法?
- 问一个关于VS2005编码时的智能感知的问题。
- CListBox控件里内容的动态显示用MFC如何实现?(在线等)回答正确的话我再给200分。
- 关于在已有工程中添加工程的问题
- 如何把 别的程序作为自己程序的一个资源?
- 请问那有类似visio界面的源码下载
- 一个新手的问题!!望各位高手指教,谢谢!!
- 关于用openCV从视频中提取速度的问题。
- 关于button添加位图问题?
- vc 6.0++ 如何通过ADO 连接 SQL SERVER2000 数据库
- 在程序里如何创建.mdb文件
#define CTLCOLOR_DLG 4
#define CTLCOLOR_EDIT 1
#define CTLCOLOR_STATIC 6我发现问题在于,edit灰化,就是禁用以后,他从CTLCOLOR_EDIT变成了CTLCOLOR_STATIC
可以使用magicskin包,下载一个不会弹说明的版本,
对于使用.网上有详细的使用说明,这里就不帮你粘贴了.如果自己去改变些颜色,加位图, 或者 继承一些本来就带这些功能的对话框类,可以到
www.codeproject.com 上面代码很全.老外都是活雷锋.进去后选C++ MFC-control就可以查看很多这样的例子了;http://www.codeproject.com/dialog/ezskin.asp
2, Big_Stone() 如果贴位图的话会不会图片比较大,你是用小图片平铺过去实现的吗?能不能提供点代码参考一下
int nid=pWnd->GetDlgCtrlID();
if ((nCtlColor== CTLCOLOR_STATIC) && nid==IDC_STATIC)
{
pDC->SetBkColor(RGB(255,255,0)); //可以将所有静态框背景变色
HBRUSH hEditBr = ::CreateSolidBrush(g_FormBgc);
}
但是我这里IDC_STATIC是要改成不同id号的,所以这里要||很多id号,
但是这样一来,从软件工程上讲,会不会不是太好,
TCHAR szClass[MAX_PATH];
GetClassName(pWnd->GetSafeHwnd(), szClass, MAX_PATH);
if(nCtlColor == CTLCOLOR_STATIC && _tcsicmp(szClass, _T("static")) == 0)
{
pDC->S...
}