QDlgTextSet.cpp
上传用户:oybseng
上传日期:2015-04-27
资源大小:7831k
文件大小:3k
源码类别:

GDI/图象编程

开发平台:

Visual C++

  1. // E:祁强资料集合QGISQDlgQDlgTextSet.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "..QGIS.h"
  5. #include "QDlgTextSet.h"
  6. #include "..QObjectsincludeQTextObj.h"
  7. // QDlgTextSet 对话框
  8. IMPLEMENT_DYNAMIC(QDlgTextSet, CDialog)
  9. QDlgTextSet::QDlgTextSet(CWnd* pParent /*=NULL*/)
  10. : CDialog(QDlgTextSet::IDD, pParent)
  11. , m_szText(_T(""))
  12. , m_fXPos(0.0)
  13. , m_fYPos(0)
  14. , m_fTextHeight(0)
  15. , m_fTextWidth(0)
  16. , m_fOffWide(0)
  17. , m_fFontAngle(0)
  18. , m_fTextAngle(0)
  19. , m_pTextObj(NULL)
  20. {
  21. }
  22. QDlgTextSet::QDlgTextSet(CQTextObj * pTextObj,CWnd* pParent /* = NULL */)
  23. : CDialog(QDlgTextSet::IDD, pParent)
  24. , m_szText(_T(""))
  25. , m_fXPos(0.0)
  26. , m_fYPos(0)
  27. , m_fTextHeight(0)
  28. , m_fTextWidth(0)
  29. , m_fOffWide(0)
  30. , m_fFontAngle(0)
  31. , m_fTextAngle(0)
  32. , m_pTextObj(pTextObj)
  33. {
  34. memcpy(&m_lFont,const_cast<LOGFONT *>(&m_pTextObj->GetFont()),sizeof(LOGFONT));
  35. }
  36. QDlgTextSet::~QDlgTextSet()
  37. {
  38. }
  39. void QDlgTextSet::DoDataExchange(CDataExchange* pDX)
  40. {
  41. CDialog::DoDataExchange(pDX);
  42. DDX_Text(pDX, IDC_EDIT_TEXT_QTEXT_DLG, m_szText);
  43. DDX_Text(pDX, IDC_EDIT_X_TEXT_TEXTDLG, m_fXPos);
  44. DDX_Text(pDX, IDC_EDIT_Y_TEXT_TEXTDLG, m_fYPos);
  45. DDX_Text(pDX, IDC_EDIT_HEIGHT_TEXT_DLG, m_fTextHeight);
  46. DDX_Text(pDX, IDC_EDIT_WIDTH_TEXT_DLG, m_fTextWidth);
  47. DDX_Text(pDX, IDC_EDIT_OFFWIDE_TEXT_DLG, m_fOffWide);
  48. DDX_Text(pDX, IDC_EDIT_FONTROTATE_TEXT_DLG, m_fFontAngle);
  49. DDX_Text(pDX, IDC_EDIT_TEXTROTATE_TEXT_DLG, m_fTextAngle);
  50. }
  51. BEGIN_MESSAGE_MAP(QDlgTextSet, CDialog)
  52. ON_BN_CLICKED(IDC_BUTTON_FONT_SET_TEXT_DLG, &QDlgTextSet::OnBnClickedButtonFontSetTextDlg)
  53. END_MESSAGE_MAP()
  54. // QDlgTextSet 消息处理程序
  55. BOOL QDlgTextSet::OnInitDialog()
  56. {
  57. CDialog::OnInitDialog();
  58. if(m_pTextObj == NULL)
  59. return FALSE;
  60. m_szText = m_pTextObj->GetText(); //获取标注内容
  61. m_fXPos = m_pTextObj->GetPos().GetX();
  62. m_fYPos = m_pTextObj->GetPos().GetY();
  63. m_fTextHeight = m_pTextObj->GetHeight();
  64. m_fTextWidth = m_pTextObj->GetWidth();
  65. m_fOffWide = m_pTextObj->GetOffWidth();
  66. m_fFontAngle = m_pTextObj->GetFontAngle();
  67. m_fTextAngle = m_pTextObj->GetTextAngle();
  68. UpdateData(FALSE);
  69. return TRUE;
  70. }
  71. void QDlgTextSet::OnOK()
  72. {
  73. UpdateData(TRUE);
  74. if(m_pTextObj == NULL)
  75. return;
  76. m_pTextObj->SetText(m_szText);
  77. m_pTextObj->SetHeight(m_fTextHeight);
  78. m_pTextObj->SetWidth(m_fTextWidth);
  79. m_pTextObj->SetOffWidth(m_fOffWide);
  80. m_pTextObj->SetFontAngle(m_fFontAngle);
  81. m_pTextObj->SetTextAngle(m_fTextAngle);
  82. m_pTextObj->SetFont(m_lFont);
  83. CDialog::OnOK();
  84. UpdateData(FALSE);
  85. }
  86. // 字体设置
  87. void QDlgTextSet::OnBnClickedButtonFontSetTextDlg()
  88. {
  89. if(m_pTextObj == NULL)
  90. return;
  91. CFontDialog dlg;
  92. LOGFONT lf = m_pTextObj->GetFont();
  93. memcpy(dlg.m_cf.lpLogFont,const_cast<LOGFONT *>(&lf),sizeof(LOGFONT));
  94. if(dlg.DoModal() == IDOK)
  95. {
  96. memcpy(&lf,dlg.m_cf.lpLogFont,sizeof(LOGFONT));
  97. memcpy(&m_lFont,const_cast<LOGFONT *>(&lf),sizeof(LOGFONT));
  98. }
  99. }