VC 구현 대화 상자 창에 투명한 색상 지정

1182 단어 대화 상자
#define LWA_COLORKEY  0x00000001 //  



#define WS_EX_LAYERED 0x00080000



 



     typedef BOOL (WINAPI *lpfnSetLayeredWindowAttributes)(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);



     lpfnSetLayeredWindowAttributes SetLayeredWindowAttributes;



 



     //       



     COLORREF maskColor=RGB(0,0,0);



 



     HMODULE hUser32 = GetModuleHandle("user32.dll"); //       



     SetLayeredWindowAttributes = (lpfnSetLayeredWindowAttributes)GetProcAddress(hUser32,"SetLayeredWindowAttributes");



     //  SetLayeredWindowAttributes    



     //     WS_EX_LAYERED    



     SetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE)^WS_EX_LAYERED);



     //  SetLayeredWinowAttributes  



     SetLayeredWindowAttributes(this->GetSafeHwnd(), maskColor, 192, LWA_COLORKEY);



     //       



     FreeLibrary(hUser32);


위 코드는 OnInitDialog()에 포함되며 SetLayered Window Attributes(this->GetSafeHwnd(), maskColor, 192, LWACOLORKEY);에서 maskColor는 투명하게 처리되는 색상이고 192는 투명도, LWACOLORKEY는 투명한 방식입니다.
전체 대화상자를 투명하게 하려면 LWACOLORKEY=2;
선택한 색상에 투명하려면 LWACOLORKEY=1;

좋은 웹페이지 즐겨찾기