|
// maindlg.h
class CMainDlg : public CDialogImpl<CMainDlg>
{
public:
enum { IDD = IDD_MAINDLG };
CTrackBarCtrl
m_track_layer; // Æ®·¢ ¹Ù
// ¸Þ¼¼Áö ¸Ê
BEGIN_MSG_MAP_EX(CMainDlg)
MSG_WM_INITDIALOG(OnInitDialog)
MSG_WM_HSCROLL(OnHScroll)
COMMAND_ID_HANDLER_EX(IDOK, OnOK)
COMMAND_ID_HANDLER_EX(IDCANCEL,
OnCancel)
END_MSG_MAP()
LRESULT OnInitDialog(HWND hWnd,
LPARAM lParam){
// ½ºÅ©¸°ÀÇ Áß¾Ó¿¡ ¹èÄ¡
CenterWindow();
// Å« ¾ÆÀÌÄÜ ¼³Á¤
HICON hIcon = AtlLoadIconImage(IDR_MAINFRAME,
LR_DEFAULTCOLOR,
::GetSystemMetrics(SM_CXICON), ::GetSystemMetrics(SM_CYICON));
SetIcon(hIcon, TRUE);
// ÀÛÀº ¾ÆÀÌÄÜ ¼³Á¤
HICON hIconSmall = AtlLoadIconImage(IDR_MAINFRAME,
LR_DEFAULTCOLOR,
::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON));
SetIcon(hIconSmall, FALSE);
// È®Àå À©µµ¿ì ½ºÅ¸ÀÏ ¼³Á¤
ModifyStyleEx(0, WS_EX_LAYERED);
// ÄÁÆ®·Ñ ¼³Á¤
m_track_layer = GetDlgItem(IDC_SLIDER_LAYER);
m_track_layer.SetRange(0, 255);
m_track_layer.SetTicFreq(15);
m_track_layer.SetPageSize(15);
m_track_layer.SetLineSize(1);
m_track_layer.SetPos(255);
SetLayer(m_track_layer.GetPos());
return TRUE;
}
void OnHScroll(int nCode, short nPos, HWND hWnd){
CTrackBarCtrl trackbar = hWnd;
SetLayer(trackbar.GetPos());
}
void SetLayer(BYTE byteAlpha){
HMODULE hDll = LoadLibrary(_T("user32"));
if(hDll){
typedef BOOL (WINAPI *PSLWA) (HWND,
COLORREF, BYTE, DWORD);
PSLWA pSetLayeredWindowAttributes
= (PSLWA)GetProcAddress(hDll, "SetLayeredWindowAttributes");
if(pSetLayeredWindowAttributes
!= NULL)
pSetLayeredWindowAttributes(m_hWnd, 0, byteAlpha,
LWA_ALPHA);
FreeLibrary(hDll);
}
}
void OnOK(UINT uNotifyCode, int nID, HWND hWndCtl){
EndDialog(nID);
}
void OnCancel(UINT uNotifyCode, int nID, HWND hWndCtl){
EndDialog(nID);
}
};
|