// maindlg.h内
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_EX(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()
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);
// コントロール設定
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, HWND hWndCtl){
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, HWND hWndCtl){
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, HWND hWndCtl){
EndDialog(nID);
}
void OnCancel(UINT uNotifyCode, int nID, HWND hWndCtl){
EndDialog(nID);
}
};
|