愁死我了,绞尽脑汁一也没搞出这种效果啊。
见图
此为Windows 照片和传真查看器底部的工具条。
如此宽的下边框是状态栏的么,还有这个工具条是如何保持透明而工具按钮可见的呢。望热心大牛不吝赐教。
见图
此为Windows 照片和传真查看器底部的工具条。
如此宽的下边框是状态栏的么,还有这个工具条是如何保持透明而工具按钮可见的呢。望热心大牛不吝赐教。
解决方案 »
- 请问如何用Visual C++开发一个实现Subversion客户端功能的程序?
- hook拦截send()
- 如下的界面的代码添加在何处?
- 关于radio button 的问题
- 球体不能显示纹理?(OpenGL)
- ㊣㊣ 什么也不多说了,帮忙给解决这个问题吧, 先多谢了!! ㊣㊣
- 建立拨号连接的快捷方式
- 用IPicture读图画,用他的get_Width(),get_Height()想得到图片的宽高,但得到的值不正确
- DLL的问题(VC++6.0编写,VB调用)在VB中内存溢出
- ActiveX控件如何注册和使用?
- 一个关于网络编程的问题!!!<800里加急>
- 两段代码都做为目标HDC//之间有什么差别吗???
GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000); SetLayeredWindowAttributes(GetSysColor(COLOR_BTNFACE),10,1);
这个方法不能用作子窗体(WS_CHILD风格)不然会失效。Create的时候别用this指针,用NULL把位置定死就可以了
大神求指点
我想要
这个软件的悬浮工具条功能 要求 child并且半透明 , 怎么弄的 , 希望多多指点!
控件的半透明效果,其实用AlphaBlend也能做到。
参考:使用DWM实现Aero Glass效果
http://blog.csdn.net/cometnet/article/details/6547504
sign-----------------------------------------------------------------------
谢前辈指点了,这些帖确实很有用,但是我想我的东西在xp系统上也有这个效果,Aero 不太能满足这个需要啊
开双缓冲,在这基础上在为那个区域开一个缓冲,单独针对他画图和响应消息
这等于是自定义自己的窗口,相当方便和可控制,效果非常的好中策:
从CWnd派生一个窗口
同样开双缓冲
用半透明的方式拷贝第二缓冲
要求是响应WM_ERASEBKGND消息,把代码清了,只留个return true;
这个的缺点是该窗口不能移动,移动就木有效果了下策:
学习用第三方界面库
解决办法:
响应WM_ERASEBKGND消息,把代码清了,只留个return true;
{
return TRUE;
}
我在绘制的过程中使用了双缓冲了 ,用的是Keith Rule 前辈写的 CMemDC类,在其他的地方都处理的挺好的,而且,擦除过程也已经处理过了。马上到了下班的时间了,前辈,回去再跟你交流。
{
// TODO: Add your message handler code here and/or call default
//return CButton::OnEraseBkgnd(pDC);
return TRUE;
}
void CMyButton::PreSubclassWindow()
{
// change window style to allow owner draw
ModifyStyle(0, BS_OWNERDRAW | BS_PUSHBUTTON);
is_pressed=false;
CButton::PreSubclassWindow();
}
void CMyButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your message handler code here and/or call default
CRect rc=lpDrawItemStruct->rcItem;
CDC dc;
dc.Attach(lpDrawItemStruct->hDC);
dc.SetBkMode(TRANSPARENT);
//dc.Ellipsedc(0,0,rc.Width(),rc.Height());
if (m_pImage!=NULL)
{
CDC* pRealDC = CDC::FromHandle(lpDrawItemStruct->hDC);
m_pImage->Draw(pRealDC->GetSafeHdc());
}else
{
CButton::DrawItem(lpDrawItemStruct);
}
dc.DeleteDC();
}void CMyButton::SetImage(CxImage *image)
{
m_pImage = image;
}
这是重写cButton.
下来创建按钮就行,往上贴图就可以了
哎呀,非常悲剧的发现啊 Aero Glass 放到w8下完全失效了