XmlAttributes.XmlType 속성
XmlTypeAttribute 형식이 serialize 하 여 여는 방법을 제어 하는 데는 XmlSerializer. 형식이 serialize 될 때 예를 들어, 기본적으로는 XmlSerializer 클래스 이름을 XML 요소 이름으로 사용 합니다.만들어는 XmlTypeAttribute설정에서 XmlType 속성, 및 만들기는 XmlAttributeOverrides 개체는 XML 요소 이름을 변경할 수 있습니다.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Serialization; using System.IO; namespace xml_test03 { public class Transportation { public Car[] Cars; } public class Car { public int ID; } class Program { static void Main(string[] args) { Program t = new Program(); t.SerializeObject("XmlType.xml"); } // Return an XmlSerializer used for overriding. public XmlSerializer CreateOverrider() { // Create the XmlAttributes and XmlAttributeOverrides objects. XmlAttributes attrs = new XmlAttributes(); XmlAttributeOverrides xOver = new XmlAttributeOverrides(); /* Create an XmlTypeAttribute and change the name of the XML type. */ XmlTypeAttribute xType = new XmlTypeAttribute(); xType.TypeName = "Autos"; // Set the XmlTypeAttribute to the XmlType property. attrs.XmlType = xType; /* Add the XmlAttributes to the XmlAttributeOverrides, specifying the member to override. */ xOver.Add(typeof(Car), attrs); // Create the XmlSerializer, and return it. XmlSerializer xSer = new XmlSerializer (typeof(Transportation), xOver); return xSer; } public void SerializeObject(string filename) { // Create an XmlSerializer instance. XmlSerializer xSer = CreateOverrider(); // Create object and serialize it. Transportation myTransportation = new Transportation(); Car c1 = new Car(); c1.ID = 12; Car c2 = new Car(); c2.ID = 44; myTransportation.Cars = new Car[2] { c1, c2 }; // To write the file, a TextWriter is required. TextWriter writer = new StreamWriter(filename); xSer.Serialize(writer, myTransportation); } } } |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?xml version="1.0" encoding="utf-8"?> <Transportation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Cars> <Autos> <ID>12</ID> </Autos> <Autos> <ID>44</ID> </Autos> </Cars> </Transportation> |
COM Interop
COM Interop은 닷넷 프레임워크(.NET Framework)에서 공통 언어 런타임(CLR)에 포함된 컴포넌트 오브젝트 모델(COM) 개체를 상호 운용할 수 있게 만드는 기술이다. COM Interop은 COM 컴포넌트의 수정 없이 액세스할 수 있는 기능을 제공하며, COM 타입의 개체를 .NET 타입의 개체에 대응하도록 시도한다. 그리고 COM Interop는 COM 개발자들이 COM 개체에 액세스하는 것만큼 쉽게 관리 개체에 액세스할 수 있도록 허용한다. 닷넷… Read More »
GridHeader CheckBox
ContextMenuStrip 팝업메뉴
CMFCPropertyGridProperty : 피쳐팩에서 추가된 새로운 MFC 컨트롤
CMFCPropertyGridProperty : 비주얼 스튜디오 피쳐팩에서 추가된 새로운 MFC 컨트롤 중에 아주 유용한 것
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
void CPropertiesWnd::InitPropList() { SetPropListFont(); //폰트초기화 m_wndPropList.EnableHeaderCtrl(FALSE); //PropList m_wndPropList.EnableDescriptionArea(); m_wndPropList.SetVSDotNetLook(); m_wndPropList.MarkModifiedProperties(); //CMFCPropertyGridProperty : 비주얼 스튜디오 피쳐팩에서 추가된 새로운 MFC 컨트롤 중에 아주 유용한 것 // CMFCPropertyGridProperty( // const CString& strGroupName,//그룹 이름 // DWORD_PTR dwData=0, // BOOL bIsValueList=FALSE //); //CMFCPropertyGridProperty( // const CString& strName,//속성이름 // const _variant_t& varValue,//속성값 //그룹이면 (_variant_t) false // LPCTSTR lpszDescr=NULL,//속성설명 // DWORD_PTR dwData=0, // LPCTSTR lpszEditMask=NULL, // LPCTSTR lpszEditTemplate=NULL, // LPCTSTR lpszValidChars=NULL //); CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(_T("모양")); pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("3D 모양"), (_variant_t) false, _T("창에 굵은 글꼴이 아닌 글꼴을 지정하고, 컨트롤에 3D 테두리를 지정합니다."))); CMFCPropertyGridProperty* pProp = new CMFCPropertyGridProperty(_T("테두리"), _T("Dialog Frame"), _T("None, Thin, Resizable 또는 Dialog Frame 중 하나를 지정합니다.")); pProp->AddOption(_T("None")); pProp->AddOption(_T("Thin")); pProp->AddOption(_T("Resizable")); pProp->AddOption(_T("Dialog Frame")); pProp->AllowEdit(FALSE); pGroup1->AddSubItem(pProp); pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("캡션"), (_variant_t) _T("정보"), _T("창의 제목 표시줄에 표시되는 텍스트를 지정합니다."))); m_wndPropList.AddProperty(pGroup1); CMFCPropertyGridProperty* pSize = new CMFCPropertyGridProperty(_T("창 크기"), 0, TRUE); pProp = new CMFCPropertyGridProperty(_T("높이"), (_variant_t) 250l, _T("창의 높이를 지정합니다.")); pProp->EnableSpinControl(TRUE, 50, 300); pSize->AddSubItem(pProp); pProp = new CMFCPropertyGridProperty( _T("너비"), (_variant_t) 150l, _T("창의 너비를 지정합니다.")); pProp->EnableSpinControl(TRUE, 50, 200); pSize->AddSubItem(pProp); m_wndPropList.AddProperty(pSize); CMFCPropertyGridProperty* pGroup2 = new CMFCPropertyGridProperty(_T("글꼴")); LOGFONT lf; CFont* font = CFont::FromHandle((HFONT) GetStockObject(DEFAULT_GUI_FONT)); font->GetLogFont(&lf); lstrcpy(lf.lfFaceName, _T("맑은 고딕")); pGroup2->AddSubItem(new CMFCPropertyGridFontProperty(_T("글꼴"), lf, CF_EFFECTS | CF_SCREENFONTS, _T("창의 기본 글꼴을 지정합니다."))); pGroup2->AddSubItem(new CMFCPropertyGridProperty(_T("시스템 글꼴을 사용합니다."), (_variant_t) true, _T("창에서 MS Shell Dlg 글꼴을 사용하도록 지정합니다."))); m_wndPropList.AddProperty(pGroup2); CMFCPropertyGridProperty* pGroup3 = new CMFCPropertyGridProperty(_T("기타")); pProp = new CMFCPropertyGridProperty(_T("(이름)"), _T("응용 프로그램")); pProp->Enable(FALSE); pGroup3->AddSubItem(pProp); CMFCPropertyGridColorProperty* pColorProp = new CMFCPropertyGridColorProperty(_T("창 색상"), RGB(210, 192, 254), NULL, _T("창의 기본 색상을 지정합니다.")); pColorProp->EnableOtherButton(_T("기타...")); pColorProp->EnableAutomaticButton(_T("기본값"), ::GetSysColor(COLOR_3DFACE)); pGroup3->AddSubItem(pColorProp); static const TCHAR szFilter[] = _T("아이콘 파일(*.ico)|*.ico|모든 파일(*.*)|*.*||"); pGroup3->AddSubItem(new CMFCPropertyGridFileProperty(_T("아이콘"), TRUE, _T(""), _T("ico"), 0, szFilter, _T("창 아이콘을 지정합니다."))); pGroup3->AddSubItem(new CMFCPropertyGridFileProperty(_T("폴더"), _T("c:\\"))); m_wndPropList.AddProperty(pGroup3); CMFCPropertyGridProperty* pGroup4 = new CMFCPropertyGridProperty(_T("계층")); CMFCPropertyGridProperty* pGroup41 = new CMFCPropertyGridProperty(_T("첫번째 하위 수준")); pGroup4->AddSubItem(pGroup41); CMFCPropertyGridProperty* pGroup411 = new CMFCPropertyGridProperty(_T("두 번째 하위 수준")); pGroup41->AddSubItem(pGroup411); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("항목 1"), (_variant_t) _T("값 1"), _T("설명입니다."))); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("항목 2"), (_variant_t) _T("값 2"), _T("설명입니다."))); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("항목 3"), (_variant_t) _T("값 3"), _T("설명입니다."))); pGroup4->Expand(FALSE); m_wndPropList.AddProperty(pGroup4); } |
SetDockingWindowIcons 속성창 아이콘 세팅
SetDockingWindowIcons(theApp.m_bHiColorIcons);