반투명 윈도우 만들기...
원본은 트랙백을 쫓아가세요~~~
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);
// 다이얼로그 반투명하게 만듬.
'프로그래밍???' 카테고리의 다른 글
난관 봉착... TCustomControl을 쓸것이냐, TGraphicControl을 쓸것이냐... (0) | 2008.08.02 |
---|---|
알파 블랜드를 이용한 투명.... (0) | 2008.08.01 |
C++ Builder에서의 삽질(MouseDown) (0) | 2008.06.20 |
갑자기 느려진 디버깅... 원인을 찾다. (1) | 2008.04.25 |
stack overflow와의 한판 싸움 (0) | 2008.04.23 |