반응형
Dialog 에 OnInitDialog()함수내에 다음과 같은 구문을 추가하면 된다.
BOOL SizeWindowDlg::OnInitDialog()
{
CDialog::OnInitDialog();
typedef BOOL(WINAPI *SLWA)(HWND,COLORREF,BYTE,DWORD);
SLWA pSetLayeredWindowAttributes = NULL;
HINSTANCE hmodUSER32 = LoadLibrary(_T("USER32.DLL"));
pSetLayeredWindowAttributes = (SLWA)GetProcAddress(hmodUSER32,"SetLayeredWindowAttributes");
HWND hwnd = this->m_hWnd;
SetWindowLong(hwnd,GWL_EXSTYLE,GetWindowLong(hwnd,GWL_EXSTYLE) | WS_EX_LAYERED);
BYTE byAlpha = 70; //투명도 설정
COLORREF cr = GetSysColor(COLOR_BTNFACE);
SetLayeredWindowAttributes( cr, byAlpha, LWA_COLORKEY );
return TRUE;
}
마지막의 LWA_COLORKEY 옵션의 변경을 통하여 여러 형태의 Dialog가 가능하다.
나머지는 MSDN을 참고하여 수정가능함
BOOL SizeWindowDlg::OnInitDialog()
{
CDialog::OnInitDialog();
typedef BOOL(WINAPI *SLWA)(HWND,COLORREF,BYTE,DWORD);
SLWA pSetLayeredWindowAttributes = NULL;
HINSTANCE hmodUSER32 = LoadLibrary(_T("USER32.DLL"));
pSetLayeredWindowAttributes = (SLWA)GetProcAddress(hmodUSER32,"SetLayeredWindowAttributes");
HWND hwnd = this->m_hWnd;
SetWindowLong(hwnd,GWL_EXSTYLE,GetWindowLong(hwnd,GWL_EXSTYLE) | WS_EX_LAYERED);
BYTE byAlpha = 70; //투명도 설정
COLORREF cr = GetSysColor(COLOR_BTNFACE);
SetLayeredWindowAttributes( cr, byAlpha, LWA_COLORKEY );
return TRUE;
}
마지막의 LWA_COLORKEY 옵션의 변경을 통하여 여러 형태의 Dialog가 가능하다.
나머지는 MSDN을 참고하여 수정가능함
반응형
'Software > Programming' 카테고리의 다른 글
[C & Linux] Fork() 를 사용하여 Multi-processor에서 여러 Process동시에 돌리기 (1) | 2012.03.26 |
---|---|
[MFC] Dialog를 내부 드래그로 창위치 옴기기 (0) | 2011.11.24 |
[C언어] 파일 입출력 함수 사용 (0) | 2011.11.24 |
[C언어] 대문자 소문자 변환 프로그램 예제 (0) | 2011.11.24 |
[C] 현재 폴더에 있는 파일 리스트 불러오기 (0) | 2011.11.24 |