흐르는 시간의 블로그...

원본은 트랙백을 쫓아가세요~~~

TGraphicControl을 반투명하게 만들어야 하는데...

원하는건 안나오고 계속 윈도 투명만들기 놀이만 나오네.. ㅠ.ㅠ

------------------------------------------------------------------------------------

[질문]

전에.. 윈도우를 만들때 RGB 를 섞어서.. 어떻게 만드는 걸 찾아서 해봤었거든요.
근데 그걸 날려먹어서리.. 다시 인터넷에 찾아볼려구 해두 안보이네요 ㅡ_ㅡ;;
좋은 하루 되시길~~~

[답변 - 금호창님이 답변하신글]

// 헤더파일에..여러 상수 지정. 옵션을 바꿀 수도 있슴.

#define WS_EX_LAYERED 0x00080000
#define LWA_COLORKEY 0x00000001
#define LWA_ALPHA 0x00000002
#define ULW_COLORKEY 0x00000001
#define ULW_ALPHA 0x00000002
#define ULW_OPAQUE 0x00000004

typedef BOOL(WINAPI *SLWA)(HWND, COLORREF, BYTE, DWORD); // 요거 선언해주고...

// 반투명하게 만드는 루틴.
SLWA pSetLayeredWindowAttributes = NULL; // 함수포인터 선언, 초기화.
HINSTANCE hmodUSER32 = LoadLibrary("USER32.DLL"); // 인스턴스 얻음.
pSetLayeredWindowAttributes=(SLWA)GetProcAddress(hmodUSER32,"SetLayeredWindowAttributes");
// 함수포인터 얻음.
HWND hwnd = this->m_hWnd; // 다이얼로그의 핸들 얻음.
SetWindowLong(hwnd, GWL_EXSTYLE,
GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_LAYERED);
// pSetLayeredWindowAttributes(hwnd, 0, (255 * 70) / 100, LWA_ALPHA);
pSetLayeredWindowAttributes(hwnd, 0, (255 * 70) / 100, LWA_ALPHA);
// pSetLayeredWindowAttributes(hwnd, 0, (255 * 70) / 100, LWA_COLORKEY);
// 다이얼로그 반투명하게 만듬.