鱼C论坛

 找回密码
 立即注册
查看: 2532|回复: 3

SetLayeredWindowAttributes设置窗口透明VC6.0

[复制链接]
发表于 2012-4-12 02:23:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 jenrya 于 2012-4-13 00:04 编辑

#define WS_EX_LAYERED           0x00080000
#define LWA_COLORKEY            0x00000001
#define LWA_ALPHA               0x00000002

    typedef void (*szcktm)(HWND,COLORREF,BYTE,DWORD);

    HWND hwnd = FindWindow(NULL, "无标题 - 记事本");
    HMODULE hModule = :: LoadLibrary("user32.dll");

    if(hModule != NULL)
    {
            szcktm setm = (szcktm)::GetProcAddress(hModule, "SetLayeredWindowAttributes");

            if(setm != NULL)
            {
                //LONG rtn;
                //rtn = ::GetWindowLong(hwnd, -20);
                //rtn = rtn | WS_EX_LAYERED;
                ::SetWindowLong(hwnd, -20, WS_EX_LAYERED);
                setm(hwnd, RGB(50,50,50), 100, LWA_ALPHA);
            }
            ::FreeLibrary(hModule);
    }
------------------------------------------------------------------------------------------------------------------------------------------------
窗口设置透明成功了但出致命错误:
The value of ESP was not properly saved across a function call.
This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
(Press Retry to debug the application)
-------------------------------------------------------------------------------------------------------------------------------------------------
求:哪出了问题? 或怎么更新VC6才有这个函数, 边问边找!


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-4-12 08:00:15 | 显示全部楼层
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
搞定了, 原来少了几个字母:
typedef BOOL (WINAPI *LPPROC)(HWND,COLORREF,BYTE,DWORD);



还是希望能直接调用! vc6的最后一个-SDK版本我已经安装好, 目录也设置好就是不能用...

Executable files
D:\PROGRAM FILES\MICROSOFT SDK\BIN
D:\PROGRAM FILES\MICROSOFT SDK\BIN\WINNT

include files
D:\PROGRAM FILES\MICROSOFT SDK\INCLUDE

Library files
D:\PROGRAM FILES\MICROSOFT SDK\LIB

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-4-13 00:03:51 | 显示全部楼层
看来没人给点意见, 我也不纠结了就这样用吧, 以后用VC2010去.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-4-13 00:43:37 | 显示全部楼层
windows的API函数都是stdcall调用,C语言用的是cdecl,少了WINAPI当然会出错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 19:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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