界面透明的一个问题

mmyxia 2005-12-15 08:09:50
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,
GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);
HINSTANCE hInst = LoadLibrary("User32.DLL");
if( hInst )
{
typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);
MYFUNC fun = NULL;
//取得SetLayeredWindowAttributes函数指针
fun = (MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
if( fun )
{
fun( this->GetSafeHwnd(), 0, 128, 2 );
}

FreeLibrary(hInst);
}

这段代码可以把界面透明化,但是这样的结果是字体也透明了,有没有什么方法可以让界面透明而字体透明度不变的?
谢谢高手了
...全文
101 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
laofang 2005-12-16
  • 打赏
  • 举报
回复
刚才说“在OnCtlColor中设置CTLCOLOR_STATIC的背景模式为不透明”是针对控件而言的,如果是直接写上去的文字,在写前SetBkMode(OPAQUE)就行
laofang 2005-12-16
  • 打赏
  • 举报
回复
SetLayeredWindowAttributes是一个SDK函数,搞这么曲折干吗:)

参考MSDN:Layered Windows
laofang 2005-12-16
  • 打赏
  • 举报
回复
在OnCtlColor中设置CTLCOLOR_STATIC的背景模式为不透明看看

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧