请问怎么实现像 QQ 2009,飞信 一样通过 颜色,透明度来改变整个界面的方法或相关示例,谢谢。
解决方案 »
- 在vs2008下,CTime类的Format函数返回时间格式的字符串为何为空?
- MSVC4.2或5
- 字符串截取字符串函数问题
- 如何获得当前电脑的有效IP?
- activeMovieControl Object 在我的VC里面没有,我如何把它加进去?是不是我的开发包没有更新啊还是怎么回事???
- mscomm的问题,没有接收数据的响应~~~~~~~~~~急
- VC 如何调用 VB 写的带自定义事件的DLL?在线等.....
- 在CHtmlView中如何填充一个输入框,如何按下一个按钮
- 气死我了sos !!!!!!!!!!!!!!!!!救命啊!!!!!
- 如何察看一个字符串是否另一个的子串,如ac是ace的子串,也可以是abc的子串
- ListCtrl的SetState无效!
- map里带结构体指针怎么初始化
只要修改OnDraw函数即可,代码如下:
void CHCPAView::OnDraw(CDC* pDC)
{
// TODO: Add your specialized code here and/or call the base class
/*----------------------------------------------------------
下面程序为改变程序主界面的显示颜色,如果不为CFORMVIEW类子类,
要通过SetClassLong(m_hWnd,GCL_HBRBACKGROUND,(LONG)GetStockObject(BLACK_BRUSH));
来修改主界面的颜色.本项目中CHCPAView类,为CFORMVIEW类继承下来的
----------------------------------------------------------*/
CHCPADoc* pDoc = GetDocument(); // 获取窗体句柄
ASSERT_VALID(pDoc);
CRect m_rcClient;
GetClientRect(&m_rcClient); // 把要改变颜色的区域名柄赋值给m_rcClient pDC->FillSolidRect(&m_rcClient, RGB(222,223,222)); // 设置颜色 RGB(红,蓝,绿)
//pDC->FillSolidRect(&m_rcClient, RGB(236, 233, 216)); // windows系统色
// 在选择颜色时,可以通过QQ软件的剪图工具来获取RGB值
}
2. 对于CDialog窗体.
A.先新建一个画刷(类的公有变量),
public:
CBrush m_brush;B.在OnCtlColor(继承下来的)函数返回该画刷即可
HBRUSH CPaAlarmDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
m_brush.CreateSolidBrush(RGB(255,0,0)); // 画刷加载红色
// TODO: Return a different brush if the default is not desired
return m_brush;
}
必须使用第三方界面库。
网上有许多这样的例子,可以下载学习以下
BCGControlBar等等都还比较好用
http://www.codeproject.com/KB/miscctrl/Microsoft_Media_Player_UI.aspx