Esempio n. 1
0
SetAlpha(LONG nTrans) {
  HMODULE hDllUser32 = LoadLibrary("user32");
  if (hDllUser32) {
    BOOL (WINAPI *pfnSetLayeredWindowAttributes)(HWND,DWORD,BYTE,DWORD);

    pfnSetLayeredWindowAttributes
      = (BOOL (WINAPI *)(HWND,DWORD,BYTE,DWORD))
          GetProcAddress(hDllUser32, "SetLayeredWindowAttributes");

    if (pfnSetLayeredWindowAttributes) {
      HWND hTop = GetVimWindow();
      if (hTop) {
        if (nTrans == 255) {
          SetWindowLong(hTop, GWL_EXSTYLE,
          GetWindowLong(hTop, GWL_EXSTYLE) & ~WS_EX_LAYERED); 
        } else {
          SetWindowLong(hTop, GWL_EXSTYLE,
          GetWindowLong(hTop, GWL_EXSTYLE) | WS_EX_LAYERED); 
          pfnSetLayeredWindowAttributes(hTop, 0, (BYTE)nTrans, LWA_ALPHA);
        }
      }
    }
    FreeLibrary(hDllUser32);
  }
  return GetLastError();
}
Esempio n. 2
0
BOOL API::SetLayeredWindowAttributes(HWND hWnd, COLORREF clr, BYTE alpha, DWORD dwFlags)
{
	if(sysConfig.isWin2KPlus)
		return(pfnSetLayeredWindowAttributes(hWnd, clr, alpha, dwFlags));

	return(FALSE);
}
Esempio n. 3
0
LONG _declspec(dllexport) SetAlpha(LONG nTrans)
{
	HMODULE hDllUser32;

	hDllUser32 = LoadLibrary("user32");
	if (hDllUser32)
	{
		BOOL (WINAPI *pfnSetLayeredWindowAttributes)(HWND,DWORD,BYTE,DWORD);

		pfnSetLayeredWindowAttributes
			= (BOOL (WINAPI *)(HWND,DWORD,BYTE,DWORD))
    			GetProcAddress(hDllUser32, "SetLayeredWindowAttributes");

		if (pfnSetLayeredWindowAttributes)
		{
			HWND hTop = NULL;
			DWORD dwThreadID;

			dwThreadID = GetCurrentThreadId();
			EnumThreadWindows(dwThreadID, FindWindowProc, (LPARAM)&hTop);

			if (hTop)
			{
				if (nTrans == 255)
				{
    				SetWindowLong(hTop, GWL_EXSTYLE,
						GetWindowLong(hTop, GWL_EXSTYLE) & ~WS_EX_LAYERED); 
				}
				else
				{
    				SetWindowLong(hTop, GWL_EXSTYLE,
						GetWindowLong(hTop, GWL_EXSTYLE) | WS_EX_LAYERED); 
					pfnSetLayeredWindowAttributes(
								hTop, 0, (BYTE)nTrans, LWA_ALPHA);
				}
			}
		}
		FreeLibrary(hDllUser32);
	}
	return GetLastError();
}