www.gusucode.com > VC++三子棋游戏源码(类似五子棋)-源码程序 > VC++三子棋游戏源码(类似五子棋)-源码程序\code\Client\topbardlg.cpp
//Download by http://www.NewXing.com // topbardlg.cpp : implementation file // #include "stdafx.h" #include "SanQi.h" #include "topbardlg.h" #include "mainfrm.h" #include "Global.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CTopBarDlg dialog CTopBarDlg::CTopBarDlg(CWnd* pParent /*=NULL*/) : CDialog(CTopBarDlg::IDD, pParent) { //{{AFX_DATA_INIT(CTopBarDlg) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT hBkBrush =::CreateSolidBrush(RGB(123, 178, 206)); } CTopBarDlg::~CTopBarDlg() { SAFE_CHECKPOINTER(hBkBrush) { ::DeleteObject(hBkBrush); hBkBrush =NULL; } } void CTopBarDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CTopBarDlg) DDX_Control(pDX, ID_DELACCOUNT, m_DelAccount); DDX_Control(pDX, ID_HELPINFO, m_HelpInfo); DDX_Control(pDX, ID_MODIFYINFO, m_ModifyInfo); DDX_Control(pDX, ID_QUITGAME, m_QuitGame); DDX_Control(pDX, ID_PUBLIC, m_Public); DDX_Control(pDX, ID_NETWORKTOOL, m_NetworkTool); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CTopBarDlg, CDialog) //{{AFX_MSG_MAP(CTopBarDlg) ON_WM_PAINT() ON_WM_CREATE() ON_WM_SIZE() ON_BN_CLICKED(ID_QUITGAME, OnQuitgame) ON_WM_CTLCOLOR() ON_WM_ERASEBKGND() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CTopBarDlg message handlers BOOL CTopBarDlg::Create(CWnd* pParentWnd) { // TODO: Add your specialized code here and/or call the base class return CDialog::Create(IDD, pParentWnd); } void CTopBarDlg::OnPaint() { CPaintDC dc(this); // device context for painting CBrush m_Brush; COLORREF clrBk = RGB(124, 176, 201); m_Brush.CreateSolidBrush(clrBk); RECT rect; memset(&rect, 0, sizeof(RECT)); this->GetClientRect(&rect); dc.FillRect(&rect, &m_Brush); m_Brush.DeleteObject(); /* memset(&rect, 0, sizeof(RECT)); CPictureEx* pAdvertWnd =&m_wndAdvertWnd; SAFE_CHECKWND(pAdvertWnd) { pAdvertWnd->GetWindowRect(&rect); this->ScreenToClient(&rect); LOGBRUSH lb; memset(&lb, 0, sizeof(LOGBRUSH)); lb.lbColor =clrBk; lb.lbStyle =BS_NULL; CBrush m_Brush; m_Brush.CreateBrushIndirect(&lb); CBrush* pOldBrush =(CBrush*)dc.SelectObject(&m_Brush); CPen m_Pen; m_Pen.CreatePen(PS_SOLID, 3, RGB(7,47, 136)); CPen* pOldPen =(CPen*)dc.SelectObject(&m_Pen); dc.Rectangle(&rect); dc.SelectObject(pOldBrush); dc.SelectObject(pOldPen); m_Pen.DeleteObject(); m_Brush.DeleteObject(); } */ } int CTopBarDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDialog::OnCreate(lpCreateStruct) == -1) return -1; RECT rect; memset(&rect, 0, sizeof(RECT)); m_wndAdvertWnd.Create("", WS_VISIBLE | WS_CHILD | SS_CENTER, rect, this, 0); char buffer[MAX_PATH]; memset(buffer, 0, sizeof(char) * MAX_PATH); GetCurrentPath(buffer); CString strPathName = (CString)buffer; int nLen = strPathName.GetLength(); int nFound = -1; if( ((nFound = strPathName.Find("Debug\\")) != -1) || ((nFound = strPathName.Find("Release\\")) != -1) ) { strPathName = strPathName.Left(nFound); } strPathName += (CString)"web\\1.gif"; m_wndAdvertWnd.Load(strPathName); m_wndAdvertWnd.Draw(); return 0; } void CTopBarDlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); int nLeftx =0; CPictureEx* pAdvertWnd =&m_wndAdvertWnd; SAFE_CHECKWND(pAdvertWnd) { CSize m_Size =pAdvertWnd->GetSize(); RECT rect; memset(&rect, 0, sizeof(RECT)); this->GetClientRect(&rect); rect.left =2; rect.top +=2; rect.bottom -=2; rect.right =rect.left + m_Size.cx; pAdvertWnd->MoveWindow(&rect, TRUE); nLeftx =rect.right; } const int nwidth =65; const int nheight =15; POINT ptStart; memset(&ptStart, 0, sizeof(POINT)); int nleft1 =nLeftx + 4; int nleft2 =nleft1 + 65; ptStart.x =nleft1; ptStart.y =4; FixButtonSize((CWnd*)&m_NetworkTool, ptStart, nwidth, nheight); ptStart.x =nleft2; ptStart.y =4; FixButtonSize((CWnd*)&m_Public, ptStart, nwidth, nheight); ptStart.y +=nheight; ptStart.x =nleft1; FixButtonSize((CWnd*)&m_ModifyInfo, ptStart, nwidth, nheight); ptStart.x =nleft2; FixButtonSize((CWnd*)&m_DelAccount, ptStart, nwidth, nheight); ptStart.y +=nheight; ptStart.x =nleft1; FixButtonSize((CWnd*)&m_HelpInfo, ptStart, nwidth, nheight); ptStart.x =nleft2; FixButtonSize((CWnd*)&m_QuitGame, ptStart, nwidth, nheight); } void CTopBarDlg::FixButtonSize(CWnd* pWnd, POINT& ptStart, int nwidth, int nheight) { SAFE_CHECKWND(pWnd) { RECT rect; memset(&rect, 0, sizeof(RECT)); rect.left =ptStart.x; rect.top =ptStart.y; rect.right =rect.left + nwidth; rect.bottom =rect.top + nheight; pWnd->MoveWindow(&rect, TRUE); } } void CTopBarDlg::OnQuitgame() { CWnd* pFrame =::AfxGetMainWnd(); SAFE_CHECKWND(pFrame) { pFrame->PostMessage(WM_CLOSE, 0, 0); } } HBRUSH CTopBarDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { return NULL; } BOOL CTopBarDlg::OnEraseBkgnd(CDC* pDC) { return TRUE; }