00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "KeosWin32ErrorDialog.h"
00022 #include "resource.h"
00023
00024 namespace
00025 {
00026 Keos::CWin32ErrorDialog* dlg;
00027 }
00028
00029 namespace Keos
00030 {
00031
00032
00033
00034
00035
00036 CWin32ErrorDialog::CWin32ErrorDialog(HINSTANCE hInst)
00037 {
00038 m_HInstance = hInst;
00039 }
00040
00041
00042 CWin32ErrorDialog::~CWin32ErrorDialog()
00043 {}
00044
00045
00046 BOOL CWin32ErrorDialog::DlgProc(HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
00047 {
00048 HWND hwndDlgItem;
00049
00050 switch (iMsg)
00051 {
00052
00053 case WM_INITDIALOG:
00054
00055 int x, y, screenWidth, screenHeight;
00056 RECT rcDlg;
00057 GetWindowRect(hDlg, &rcDlg);
00058 screenWidth = GetSystemMetrics(SM_CXFULLSCREEN);
00059 screenHeight = GetSystemMetrics(SM_CYFULLSCREEN);
00060
00061 x = (screenWidth / 2) - ((rcDlg.right - rcDlg.left) / 2);
00062 y = (screenHeight / 2) - ((rcDlg.bottom - rcDlg.top) / 2);
00063
00064 MoveWindow(hDlg, x, y, (rcDlg.right - rcDlg.left),
00065 (rcDlg.bottom - rcDlg.top), TRUE);
00066
00067
00068 hwndDlgItem = GetDlgItem(hDlg, IDC_ERRMSG);
00069 SetWindowText(hwndDlgItem, dlg->m_strErrorMsg.c_str());
00070
00071 return TRUE;
00072 case WM_COMMAND:
00073 switch (LOWORD(wParam))
00074 {
00075 case IDOK:
00076
00077 EndDialog(hDlg, TRUE);
00078 return TRUE;
00079 }
00080 }
00081
00082 return FALSE;
00083
00084 }
00085
00086
00087 void CWin32ErrorDialog::Display(const String& strErrorMessage)
00088 {
00089
00090
00091 dlg = this;
00092 m_strErrorMsg = strErrorMessage;
00093 DialogBox(m_HInstance, MAKEINTRESOURCE(IDD_DIALOG_ERROR), NULL, DlgProc);
00094
00095
00096 }
00097 }