* 불투명 윈도우 만들기

방금전에 책에서 본 예제로 만든겁니다.

님의 코드보다 더 자원을 먹을지는 모르겠지만 참고하세요.

윈도 2000이상에서만 된다고 하네요.

전역입니다 :

// 투명 설정을 위한 상수 정의
#define WS_EX_LAYERED       0x00080000
#define LWA_ALPHA           0x00000002

OnInitDialog에 추가 :

    // 확장 스타일에 WS_EX_LAYERED를 추가한다
    ModifyStyleEx(0, WS_EX_LAYERED);

    // user32.dll에 있는 SetLayeredWindowAttributes()의 포인터를 얻는다
    HMODULE hUserDll = ::LoadLibrary(_T("USER32.dll"));
    typedef BOOL (WINAPI* LPSETTRANSPARENT)(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);

    LPSETTRANSPARENT lpSetTransparent = NULL;
    lpSetTransparent  = (LPSETTRANSPARENT)::GetProcAddress(hUserDll, "SetLayeredWindowAttributes");

    if(lpSetTransparent)
        // SetLayeredWindowAttributes() 함수를 호출한다.
        // 세번째 투명도는 0 ~ 255까지의 값을 설정한다
        lpSetTransparent(m_hWnd, NULL, 200, LWA_ALPHA);

    // user32.dll을 닫는다
    ::FreeLibrary(hUserDll);


facebook posting twit

  • Broadcast를 이용한 Application 종료
  • IE Control을 사용하여 만든 어플리케이션에서 javascript로 어플리케이션에 정의된 함수 호출하는 방법
  • 윈도우 옮기는 API – SetWindowPos
  • GDI+ Programming 방법
  • 투명 윈도우 만들기
  • 비트맵을 배경으로 뿌리고 그 위에 컨트롤 올리는 방법
  • BITMAP 오브젝트에서 가로,세로 크기 알아내기
  • 듀얼 모니터에서 Focused Monitor의 Rect 알아내기
  • 프로그램에서 버젼(version) 정보 읽어주는 소스
  • RDP(Remote Desktop Protocol) Port 값 가져오고/바꿔주기
    Tagged on:     
  • Leave a Reply