// MsgDlg.cpp : implementation file // #include "stdafx.h" #include "mw4gameed.h" #include "MsgDlg.h" ///////////////////////////////////////////////////////////////////////////// // CMsgDlg dialog CMsgDlg::CMsgDlg(char* msg, char* font, int fontSize, CWnd* pParent, int x, int y, int cx, int cy) : CDialog(CMsgDlg::IDD, pParent) { //{{AFX_DATA_INIT(CMsgDlg) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT if (!font) m_Font = "Arial"; else m_Font = font; m_Text = msg; m_Size = fontSize; backColor = GetSysColor(COLOR_3DFACE); textColor = RGB(0,30,240); Create(CMsgDlg::IDD,pParent); if (x > 0) { SetWindowPos(NULL,x,y,cx,cy,0); sized = true; } else sized = false; } void CMsgDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMsgDlg) //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CMsgDlg, CDialog) //{{AFX_MSG_MAP(CMsgDlg) ON_WM_PAINT() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMsgDlg message handlers void CMsgDlg::OnPaint() { CPaintDC dc(this); // device context for painting dc.SetBkColor(backColor); dc.SetTextColor(textColor); CFont font; font.CreatePointFont(m_Size,m_Font,&dc); SetFont(&font,FALSE); CFont* def_font = dc.SelectObject(&font); CSize size = dc.GetTextExtent(m_Text); RECT r; if (!sized) { CWnd* pParent = GetParent(); if (pParent) pParent->GetClientRect(&r); else { r.right = GetSystemMetrics(SM_CXSCREEN); r.bottom = GetSystemMetrics(SM_CYSCREEN); } size.cx += 15; size.cy += 15; SetWindowPos(NULL,r.right / 2 - size.cx / 2,r.bottom / 2 - size.cy / 2,size.cx,size.cy,0); sized = true; } GetClientRect(&r); CRect etor(r.right / 2 - size.cx / 2,r.bottom / 2 - size.cy / 2,size.cx,size.cy); dc.ExtTextOut(r.right / 2 - size.cx / 2,r.bottom / 2 - size.cy / 2,ETO_OPAQUE,&etor,m_Text,NULL); dc.SelectObject(def_font); font.DeleteObject(); }