VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1028|回复: 5

[已解决] VS2005编写的窗口程序没有透明效果

[复制链接]
16_avatar_middle
在线会员 发表于 2015-9-17 14:32:37 | 显示全部楼层 |阅读模式
3驿站币
本帖最后由 东关之南 于 2015-9-17 18:25 编辑

VS2005编写的窗口程序没有透明效果

如图

如图





上一篇:关于POST课程,C++调用JS函数实现MD5加密的疑难求解?
下一篇:CStdioFile Open失败
94_avatar_middle
在线会员 发表于 2015-9-17 14:51:44 | 显示全部楼层
::SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);//TopMost
        
        SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,
                GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);


        HINSTANCE hInst = LoadLibrary(L"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,220,2);
                FreeLibrary(hInst);
        }

加到OnInitDialog()中
16_avatar_middle
ico_lz  楼主| 发表于 2015-9-17 14:54:00 | 显示全部楼层
tym111 发表于 2015-9-17 14:51
::SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);//TopMost
        
        SetWi ...

还是不行
51_avatar_middle
online_admins 发表于 2015-9-17 17:45:10 | 显示全部楼层
你说的透明效果是指按钮的那种玻璃效果吗?
你当前的工程是不是多字节编码,改成Unicode就应该可以了
51_avatar_middle
online_admins 发表于 2015-9-17 17:48:11 | 显示全部楼层
如果不想使用Unicode编码也有解决办法,打开 stdafx.h 文件,滚动到文件的下面,看到这么一段代码:

  1. #ifdef _UNICODE
  2. #if defined _M_IX86
  3. #pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'"")
  4. #elif defined _M_X64
  5. #pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'"")
  6. #else
  7. #pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"")
  8. #endif
  9. #endif
复制代码


把第一句:#ifdef _UNICODE
最后一句:#endif

都去掉就可以了
16_avatar_middle
ico_lz  楼主| 发表于 2015-9-17 18:23:23 | 显示全部楼层
Syc 发表于 2015-9-17 17:45
你说的透明效果是指按钮的那种玻璃效果吗?
你当前的工程是不是多字节编码,改成Unicode就应该可以了

按照你说的 真的成功了 多谢syc牛
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-5-24 14:09

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表