phantam_lf 发表于 2009-6-9 10:32:24

生成透明面板报错???(附相关代码)

本帖最后由 phantam_lf 于 2009-6-9 10:33 编辑

如题。
我的代码是
#include<windows.h>
#include<winuser.h>

HMODULE hInst; //DLL句柄
SetWindowLong((HWND)allsumpanelHandle,GWL_EXSTYLE,GWL_USERDATA);
hInst = LoadLibrary("User32.DLL");
if(hInst!= NULL)
{
typedef BOOL (WINAPI *ShowLayer)(HWND,COLORREF,BYTE,DWORD);
ShowLayer fun=NULL;
fun=(ShowLayer)GetProcAddress(hInst,"SetLayeredWindowAttributes");
if(fun!= NULL)
   if(!fun((HWND)allsumpanelHandle,255,127,LWA_ALPHA))
    error=GetLastError();
      else DisplayPanel (allsumpanelHandle);
   FreeLibrary(hInst);
}
******************************************
1。首先抱错
Undeclared identifier 'LWA_ALPHA'
但是在winuser.h中是定义过的 #define LWA_ALPHA 0x00000002

2。error中的错误是
1400 Invalid window handle.ERROR_INVALID_WINDOW_HANDLE

netcreature 发表于 2009-6-9 12:20:16

刚才在我的机器上试了一下,没有产生任何错误。但是也没有任何效果——窗体根本没有变透明!
不知道是不是和操作系统有关:我自己用的是VIsta Ultimate sp1!

phantam_lf 发表于 2009-6-10 00:06:51

斑竹大人,你运行的时候error=GetLastError();这个语句没有返回错误吗?我运行的时候error的数值是1400。表示错误为Invalid window handle.ERROR_INVALID_WINDOW_HANDLE,操作系统是win xp,windows/cvi 7.1

netcreature 发表于 2009-6-10 09:03:32

没有任何错误,也没有任何效果!
OS:Windows Vista Ultimate sp1
CVI:8.5
页: [1]
查看完整版本: 生成透明面板报错???(附相关代码)