MyDlg.cpp
上传用户:zslianheng
上传日期:2013-04-03
资源大小:946k
文件大小:3k
源码类别:

Linux/Unix编程

开发平台:

Visual C++

  1. /***************************************************************************
  2.  *                                                                         *
  3.  *   This program is free software; you can redistribute it and/or modify  *
  4.  *   it under the terms of the GNU General Public License as published by  *
  5.  *   the Free Software Foundation; either version 2 of the License, or     *
  6.  *   (at your option) any later version.                                   *
  7.  *                                                                         *
  8.  *   copyright            : (C) 2002 by Zhang Yong                         *
  9.  *   email                : z-yong163@163.com                              *
  10.  ***************************************************************************/
  11. // MyDlg.cpp : implementation file
  12. //
  13. #include "stdafx.h"
  14. #include "myicq.h"
  15. #include "MyDlg.h"
  16. #ifdef _DEBUG
  17. #define new DEBUG_NEW
  18. #undef THIS_FILE
  19. static char THIS_FILE[] = __FILE__;
  20. #endif
  21. /////////////////////////////////////////////////////////////////////////////
  22. // CMyDlg dialog
  23. CMyDlg::CMyDlg(UINT nIDTemplate, CWnd* pParent /*=NULL*/)
  24. : CDialog(nIDTemplate, pParent)
  25. {
  26. //{{AFX_DATA_INIT(CMyDlg)
  27. // NOTE: the ClassWizard will add member initialization here
  28. //}}AFX_DATA_INIT
  29. m_hIcon = getApp()->m_hIcon;
  30. }
  31. BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
  32. //{{AFX_MSG_MAP(CMyDlg)
  33. ON_WM_PAINT()
  34. ON_WM_QUERYDRAGICON()
  35. //}}AFX_MSG_MAP
  36. END_MESSAGE_MAP()
  37. /////////////////////////////////////////////////////////////////////////////
  38. // CMyDlg message handlers
  39. BOOL CMyDlg::OnInitDialog() 
  40. {
  41. CDialog::OnInitDialog();
  42. ModifyStyleEx(0, WS_EX_APPWINDOW);
  43. // Set the icon for this dialog.  The framework does this automatically
  44. //  when the application's main window is not a dialog
  45. SetIcon(m_hIcon, TRUE); // Set big icon
  46. SetIcon(m_hIcon, FALSE); // Set small icon
  47. return TRUE;  // return TRUE unless you set the focus to a control
  48.               // EXCEPTION: OCX Property Pages should return FALSE
  49. }
  50. // If you add a minimize button to your dialog, you will need the code below
  51. //  to draw the icon.  For MFC applications using the document/view model,
  52. //  this is automatically done for you by the framework.
  53. void CMyDlg::OnPaint() 
  54. {
  55. if (IsIconic())
  56. {
  57. CPaintDC dc(this); // device context for painting
  58. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  59. // Center icon in client rectangle
  60. int cxIcon = GetSystemMetrics(SM_CXICON);
  61. int cyIcon = GetSystemMetrics(SM_CYICON);
  62. CRect rect;
  63. GetClientRect(&rect);
  64. int x = (rect.Width() - cxIcon + 1) / 2;
  65. int y = (rect.Height() - cyIcon + 1) / 2;
  66. // Draw the icon
  67. dc.DrawIcon(x, y, getApp()->m_hIcon);
  68. }
  69. else
  70. {
  71. CDialog::OnPaint();
  72. }
  73. }
  74. // The system calls this to obtain the cursor to display while the user drags
  75. //  the minimized window.
  76. HCURSOR CMyDlg::OnQueryDragIcon() 
  77. {
  78. return (HCURSOR) getApp()->m_hIcon;
  79. }
  80. BOOL CMyDlg::PreTranslateMessage(MSG* pMsg) 
  81. {
  82. if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE)
  83. return TRUE;
  84. return CDialog::PreTranslateMessage(pMsg);
  85. }