Annotation of DewFind/DewFindDlg.cpp, revision 1.1
1.1 ! nick 1: // DewFindDlg.cpp : implementation file
! 2: //
! 3:
! 4: #include "stdafx.h"
! 5: #include "DewFind.h"
! 6: #include "DewFindDlg.h"
! 7: #include "word.h"
! 8:
! 9: #ifdef _DEBUG
! 10: #define new DEBUG_NEW
! 11: #endif
! 12:
! 13:
! 14: // CAboutDlg dialog used for App About
! 15:
! 16: class CAboutDlg : public CDialog
! 17: {
! 18: public:
! 19: CAboutDlg();
! 20:
! 21: // Dialog Data
! 22: enum { IDD = IDD_ABOUTBOX };
! 23:
! 24: protected:
! 25: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
! 26:
! 27: // Implementation
! 28: protected:
! 29: DECLARE_MESSAGE_MAP()
! 30: };
! 31:
! 32: CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
! 33: {
! 34: }
! 35:
! 36: void CAboutDlg::DoDataExchange(CDataExchange* pDX)
! 37: {
! 38: CDialog::DoDataExchange(pDX);
! 39: }
! 40:
! 41: BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
! 42: END_MESSAGE_MAP()
! 43:
! 44:
! 45: // CDewFindDlg dialog
! 46:
! 47:
! 48:
! 49: CDewFindDlg::CDewFindDlg(CWnd* pParent /*=NULL*/)
! 50: : CDialog(CDewFindDlg::IDD, pParent)
! 51: {
! 52: m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
! 53: }
! 54:
! 55: void CDewFindDlg::DoDataExchange(CDataExchange* pDX)
! 56: {
! 57: CDialog::DoDataExchange(pDX);
! 58: }
! 59:
! 60: BEGIN_MESSAGE_MAP(CDewFindDlg, CDialog)
! 61: ON_WM_SYSCOMMAND()
! 62: ON_WM_PAINT()
! 63: ON_WM_QUERYDRAGICON()
! 64: //}}AFX_MSG_MAP
! 65: ON_WM_LBUTTONDOWN()
! 66: ON_WM_RBUTTONDOWN()
! 67: ON_COMMAND(ID_FILE_NEWGAME, OnFileNewgame)
! 68: ON_COMMAND(ID_FILE_QUITGAME, OnFileQuitgame)
! 69: END_MESSAGE_MAP()
! 70:
! 71:
! 72: // CDewFindDlg message handlers
! 73:
! 74: BOOL CDewFindDlg::OnInitDialog()
! 75: {
! 76: CDialog::OnInitDialog();
! 77:
! 78: // Add "About..." menu item to system menu.
! 79:
! 80: // IDM_ABOUTBOX must be in the system command range.
! 81: ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
! 82: ASSERT(IDM_ABOUTBOX < 0xF000);
! 83:
! 84: CMenu* pSysMenu = GetSystemMenu(FALSE);
! 85: if (pSysMenu != NULL)
! 86: {
! 87: CString strAboutMenu;
! 88: strAboutMenu.LoadString(IDS_ABOUTBOX);
! 89: if (!strAboutMenu.IsEmpty())
! 90: {
! 91: pSysMenu->AppendMenu(MF_SEPARATOR);
! 92: pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
! 93: }
! 94: }
! 95:
! 96: // Set the icon for this dialog. The framework does this automatically
! 97: // when the application's main window is not a dialog
! 98: SetIcon(m_hIcon, TRUE); // Set big icon
! 99: SetIcon(m_hIcon, FALSE); // Set small icon
! 100:
! 101: srand(time(NULL));
! 102: gameboard_.ClearBoard();
! 103: gameboard_.ClearWords();
! 104: gameboard_.LoadWordsFromFile("words.txt");
! 105: gameboard_.SetUpBoard();
! 106:
! 107: return TRUE; // return TRUE unless you set the focus to a control
! 108: }
! 109:
! 110: void CDewFindDlg::OnSysCommand(UINT nID, LPARAM lParam)
! 111: {
! 112: if ((nID & 0xFFF0) == IDM_ABOUTBOX)
! 113: {
! 114: CAboutDlg dlgAbout;
! 115: dlgAbout.DoModal();
! 116: }
! 117: else
! 118: {
! 119: CDialog::OnSysCommand(nID, lParam);
! 120: }
! 121: }
! 122:
! 123: // If you add a minimize button to your dialog, you will need the code below
! 124: // to draw the icon. For MFC applications using the document/view model,
! 125: // this is automatically done for you by the framework.
! 126: void CDewFindDlg::DrawScreen()
! 127: {
! 128: Word wd;
! 129: CDC *xDC = GetDC();
! 130: gameboard_.DrawBoard(xDC);
! 131: gameboard_.DrawWords(xDC);
! 132: wd.SetColor(2);
! 133: wd.Write(gameboard_.GetWordsFound(),130,10,0,xDC);
! 134: wd.Write("/",169,10,xDC);
! 135: wd.Write(gameboard_.GetWordCount(),190,10,0,xDC);
! 136:
! 137: if (gameboard_.IsGameOver() == true)
! 138: {
! 139: wd.Write("Game Over!",360,10,xDC);
! 140: }
! 141: ReleaseDC(xDC);
! 142: }
! 143:
! 144:
! 145: void CDewFindDlg::OnPaint()
! 146: {
! 147: DrawScreen();
! 148:
! 149: if (IsIconic())
! 150: {
! 151: CPaintDC dc(this); // device context for painting
! 152:
! 153: SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
! 154:
! 155: // Center icon in client rectangle
! 156: int cxIcon = GetSystemMetrics(SM_CXICON);
! 157: int cyIcon = GetSystemMetrics(SM_CYICON);
! 158: CRect rect;
! 159: GetClientRect(&rect);
! 160: int x = (rect.Width() - cxIcon + 1) / 2;
! 161: int y = (rect.Height() - cyIcon + 1) / 2;
! 162:
! 163: // Draw the icon
! 164: dc.DrawIcon(x, y, m_hIcon);
! 165: }
! 166: else
! 167: {
! 168: CDialog::OnPaint();
! 169: }
! 170: }
! 171:
! 172: // The system calls this function to obtain the cursor to display while the user drags
! 173: // the minimized window.
! 174: HCURSOR CDewFindDlg::OnQueryDragIcon()
! 175: {
! 176: return static_cast<HCURSOR>(m_hIcon);
! 177: }
! 178:
! 179: void CDewFindDlg::OnLButtonDown(UINT nFlags, CPoint point)
! 180: {
! 181: if (gameboard_.IsGameOver() == false)
! 182: {
! 183: if (gameboard_.SelectSquareMouse(point.x,point.y) == true)
! 184: {
! 185: //Redraws the screen
! 186: DrawScreen();
! 187: }
! 188: }
! 189:
! 190: CDialog::OnLButtonDown(nFlags, point);
! 191: }
! 192:
! 193: void CDewFindDlg::OnRButtonDown(UINT nFlags, CPoint point)
! 194: {
! 195: //will clear selection coming soon!!!!
! 196: gameboard_.ClearSelected();
! 197: DrawScreen();
! 198: CDialog::OnRButtonDown(nFlags, point);
! 199: }
! 200:
! 201:
! 202:
! 203: void CDewFindDlg::OnFileNewgame()
! 204: {
! 205: gameboard_.ClearBoard();
! 206: gameboard_.SetUpBoard();
! 207: Invalidate(true);
! 208: UpdateWindow();
! 209: DrawScreen();
! 210: }
! 211:
! 212: void CDewFindDlg::OnFileQuitgame()
! 213: {
! 214: CDialog::OnCancel();
! 215: }
! 216:
! 217: BOOL CDewFindDlg::PreTranslateMessage(MSG* pMsg)
! 218: {
! 219: // TODO: Add your specialized code here and/or call the base class
! 220: if (pMsg->message==WM_KEYDOWN)
! 221: {
! 222: switch(pMsg->wParam)
! 223: {
! 224: case VK_F8:
! 225: OnFileNewgame();
! 226: return true;
! 227: }
! 228: }
! 229:
! 230: return CDialog::PreTranslateMessage(pMsg);
! 231: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>