// maindlg.h内
class CMainDlg : public CDialogImpl<CMainDlg>
{
public:
enum { IDD = IDD_MAINDLG };
CStatic m_static_border; // ボーダーライン用
CStatic m_static_pos; // カーソル座標表示用
// メッセージマップ
BEGIN_MSG_MAP_EX(CMainDlg)
MSG_WM_MOUSEMOVE(OnMouseMove)
MSG_WM_INITDIALOG(OnInitDialog)
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_static_border = GetDlgItem(IDC_STATIC_BORDER);
m_static_pos = GetDlgItem(IDC_STATIC_POS);
CRect rcBorder;
m_static_border.GetWindowRect(rcBorder);
m_static_border.SetWindowPos(NULL, 0, 0, rcBorder.Width(), 2,
SWP_NOZORDER | SWP_NOMOVE | SWP_SHOWWINDOW);
return TRUE;
}
void OnMouseMove(UINT uFlags, CPoint ptClient){
CString strPos;
strPos.Format(_T("X座標: %d, Y座標: %d"), ptClient.x, ptClient.y);
m_static_pos.SetWindowText(strPos);
}
void OnOK(UINT uNotifyCode, int nID, HWND hWndCtl){
EndDialog(nID);
}
void OnCancel(UINT uNotifyCode, int nID, HWND hWndCtl){
EndDialog(nID);
}
};
|