// MainDlg.h
#pragma once
class CMainDlg : public CDialogImpl<CMainDlg>
{
public:
enum { IDD = IDD_MAINDLG };
CButton m_radio_addicon; // [アイコンあり]ラジオボタン
CButton m_radio_removeicon; // [アイコンなし]ラジオボタン
CButton m_check_topmost; // [常に手前に表示]チェックボックス
BEGIN_MSG_MAP(CMainDlg)
MSG_WM_INITDIALOG(OnInitDialog)
COMMAND_ID_HANDLER_EX(IDC_BUTTON_SHOW, OnButtonShow)
COMMAND_ID_HANDLER_EX(IDC_CHECK_TOPMOST, OnCheckTopmost)
COMMAND_ID_HANDLER_EX(IDOK, OnOK)
COMMAND_ID_HANDLER_EX(IDCANCEL, OnCancel)
END_MSG_MAP()
BOOL OnInitDialog(CWindow wndFocus, LPARAM lInitParam){
// スクリーンの中央に配置
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);
// コントロール設定
m_radio_addicon = GetDlgItem(IDC_RADIO_ADDICON);
m_radio_removeicon = GetDlgItem(IDC_RADIO_REMOVEICON);
m_check_topmost = GetDlgItem(IDC_CHECK_TOPMOST);
m_radio_addicon.SetCheck(1);
return TRUE;
}
void OnButtonShow(UINT uNotifyCode, int nID, CWindow wndCtl){
UINT uIcon = MB_OK;
if(m_radio_addicon.GetCheck())
uIcon |= MB_ICONINFORMATION;
MessageBox(_T("Hello, ATL/WTL"), _T("メッセージ"), uIcon);
}
void OnCheckTopmost(UINT uNotifyCode, int nID, CWindow wndCtl){
SetWindowPos(m_check_topmost.GetCheck() ? HWND_TOPMOST : HWND_NOTOPMOST,
0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_SHOWWINDOW);
}
void OnOK(UINT uNotifyCode, int nID, CWindow wndCtl){
EndDialog(nID);
}
void OnCancel(UINT uNotifyCode, int nID, CWindow wndCtl){
EndDialog(nID);
}
};
|