DlgTemplate.h
上传用户:kj0090
上传日期:2007-03-02
资源大小:39k
文件大小:6k
源码类别:

xml/soap/webservice

开发平台:

C/C++

  1. /***********************************************************************
  2. *
  3. * This module is part of the XMLGUI system 
  4. *
  5. * File name:       DlgTemplate.h
  6. *
  7. * Creation date:   [12 AUGUST 2002] 
  8. *
  9. * Author(s):       [Kolosenko Ruslan]
  10. *
  11. * Description:     Declares the CDlgTemplate class
  12. *
  13. **********************************************************************/
  14. #ifndef AFX_DLGTEMPLATE_H_RKOL_8_12_2002_
  15. #define AFX_DLGTEMPLATE_H_RKOL_8_12_2002_
  16. #if _MSC_VER > 1000
  17. #pragma once
  18. #endif // _MSC_VER > 1000
  19. #include "XMLGUIMacro.h"
  20. #include "DlgItemTemplate.h"
  21. #include <afxtempl.h>
  22.    // array of item templates for dialog's controls
  23. typedef CArray<CDlgItemTemplate,CDlgItemTemplate&> DLGITEMSARRAY;
  24. class XMLGUI_EXT_CLASS CDlgTemplate  
  25. {
  26. public:
  27. CDlgTemplate();
  28. virtual ~CDlgTemplate();
  29.        // dialog's data ( public access )
  30.     DWORD    style;            // style of the dialog window
  31.     DWORD    dwExtendedStyle;  // ex.style of the dialog window
  32.     
  33.        // all sizes below are in dialog units
  34.     short    x;                // left border of the dialog window
  35.     short    y;                // top border of the dialog window
  36.     short    cx;               // width of the dialog window
  37.     short    cy;               // height of the dialog window
  38.        // the next field is taken into consideration only if dialog has DS_SETFONT style
  39.     WORD     m_nFontSize;      // point size of the font used on the dialog
  40.     DLGITEMSARRAY controls;    // array of dialog's controls
  41. protected:
  42.        // dialog's data ( protected access )
  43.     _bstr_t  m_strTitle;        // title of the dialog window
  44.        // the next field is taken into consideration only if dialog has DS_SETFONT style
  45.     _bstr_t  m_strFontTypeface; // typeface name of the font used on the dialog
  46.     _bstr_t  m_strMenuName;     // menu for the dialog can be specified either by string
  47.     WORD     m_nMenuID;        // containing menu name or by number containing
  48.                                // menu identifier in the resource file
  49.     _bstr_t  m_strWndClass;        // window class for the dialog can be specified either
  50.     WORD     m_nWndClassOrdinal;  // by name or by ordinal number as well
  51.     HGLOBAL  m_hGlobalTemplate;   // handle to the allocated global memory
  52.                                   // holding Win32 DLGTEMPLATE structure
  53.     LPVOID   m_pInitData;         // pointer to the allocated memory with init data
  54. public:
  55.        // retrieving and setting protected dialog's data members
  56.     WORD     cdit()                         // get number of controls
  57.            { return (WORD)controls.GetSize(); }
  58.     CString  GetTitle()                     // get dialog's caption
  59.            { return (LPCTSTR)m_strTitle; }
  60.     void     SetTitle(LPCTSTR szTitle)      // set dialog's caption
  61.            { m_strTitle = szTitle; }
  62.     void     SetTitle(const _bstr_t& strTitle)
  63.            { m_strTitle = strTitle; }
  64.     CString  GetFontTypeface()              // get name of the dialog's font
  65.            { return (LPCTSTR)m_strFontTypeface; }
  66.     void     SetFontTypeface(LPCTSTR szFontTypeface) // set name of the font
  67.            { m_strFontTypeface = szFontTypeface; }
  68.     void     SetFontTypeface(const _bstr_t& strFontTypeface)
  69.            { m_strFontTypeface = strFontTypeface; }
  70.     CString  GetMenuName()                  // get menu name
  71.            { return (LPCTSTR)m_strMenuName; }
  72.     void     SetMenuName(LPCTSTR szName)    // set menu name
  73.            { m_strMenuName = szName; m_nMenuID = 0; }
  74.     void     SetMenuName(const _bstr_t& strName)
  75.            { m_strMenuName = strName; m_nMenuID = 0; }
  76.     WORD     GetMenuID()                   // get menu identifier
  77.            { return m_nMenuID; }
  78.     void     SetMenuID(WORD nID)           // set menu identifier
  79.            { m_nMenuID = nID; m_strMenuName = _T(""); }
  80.     CString  GetWndClass()                 // get dialog window class
  81.            { return (LPCTSTR)m_strWndClass; }
  82.     void     SetWndClass(LPCTSTR szClass)   // set dialog window class
  83.            { m_strWndClass = szClass; m_nWndClassOrdinal = 0; }
  84.     void     SetWndClass(const _bstr_t& strClass)
  85.            { m_strWndClass = strClass; m_nWndClassOrdinal = 0; }
  86.     WORD     GetWndClassOrdinal()          // get dialog window class ordinal
  87.            { return m_nWndClassOrdinal; }
  88.     void     SetWndClassOrdinal(WORD nID)  // set dialog window class ordinal
  89.            { m_nWndClassOrdinal = nID; m_strWndClass = _T(""); }
  90.        // general dlgtemplate's operations with public access
  91.     BOOL     SerializeFrom(LPCTSTR szXMLFile); // create dialog template from a file
  92.                                                // with GUI template in XML
  93.     BOOL     SerializeFrom(IXMLElement* pXMLTag); // create dialog template given
  94.                                                   // a pointer to XML element
  95.     CDlgTemplate& operator += (CDlgItemTemplate& newControl)  // add a control to dialog
  96.            { controls.SetAtGrow(cdit(),newControl); return *this; }
  97.     operator LPDLGTEMPLATE();   // create and return Win32 DLGTEMPLATE structure
  98.     UINT Length();   // return length in bytes of the resulting DLGTEMPLATE structure
  99.     LPVOID GetInitData();   // create and return init data section for dialog controls
  100.     UINT InitDataLength();   // return length in bytes of the dialog init data section
  101.     void Invalidate();  // invalidate previously built DLGTEMPLATE structure,
  102.                         // free the allocated memory
  103. };
  104. #endif // AFX_DLGTEMPLATE_H_RKOL_8_12_2002_