TCLToolsDlg.cpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. // TCLToolsDlg.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "TCLTools.h"
  5. #include "TCLToolsDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #endif
  9. // CTCLToolsDlg 对话框
  10. CTCLToolsDlg::CTCLToolsDlg(CWnd* pParent /*=NULL*/)
  11. : CDialog(CTCLToolsDlg::IDD, pParent)
  12. {
  13. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  14. }
  15. void CTCLToolsDlg::DoDataExchange(CDataExchange* pDX)
  16. {
  17. CDialog::DoDataExchange(pDX);
  18. }
  19. BEGIN_MESSAGE_MAP(CTCLToolsDlg, CDialog)
  20. ON_WM_PAINT()
  21. ON_WM_QUERYDRAGICON()
  22. //}}AFX_MSG_MAP
  23. END_MESSAGE_MAP()
  24. // CTCLToolsDlg 消息处理程序
  25. BOOL CTCLToolsDlg::OnInitDialog()
  26. {
  27. CDialog::OnInitDialog();
  28. // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
  29. // 执行此操作
  30. SetIcon(m_hIcon, TRUE); // 设置大图标
  31. SetIcon(m_hIcon, FALSE); // 设置小图标
  32. // TODO: 在此添加额外的初始化代码
  33. return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
  34. }
  35. // 如果向对话框添加最小化按钮,则需要下面的代码
  36. // 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
  37. // 这将由框架自动完成。
  38. void CTCLToolsDlg::OnPaint()
  39. {
  40. if (IsIconic())
  41. {
  42. CPaintDC dc(this); // 用于绘制的设备上下文
  43. SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
  44. // 使图标在工作区矩形中居中
  45. int cxIcon = GetSystemMetrics(SM_CXICON);
  46. int cyIcon = GetSystemMetrics(SM_CYICON);
  47. CRect rect;
  48. GetClientRect(&rect);
  49. int x = (rect.Width() - cxIcon + 1) / 2;
  50. int y = (rect.Height() - cyIcon + 1) / 2;
  51. // 绘制图标
  52. dc.DrawIcon(x, y, m_hIcon);
  53. }
  54. else
  55. {
  56. CDialog::OnPaint();
  57. }
  58. }
  59. //当用户拖动最小化窗口时系统调用此函数取得光标
  60. //显示。
  61. HCURSOR CTCLToolsDlg::OnQueryDragIcon()
  62. {
  63. return static_cast<HCURSOR>(m_hIcon);
  64. }