??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久午夜精品,久久精品国产亚洲网站,久久精品无码一区二区三区http://m.shnenglu.com/hwawai/MFC+D3D+ToolKitProzh-cnSat, 28 Jun 2025 12:27:00 GMTSat, 28 Jun 2025 12:27:00 GMT60关于tinyXML库的装---我写的CXMLc?/title><link>http://m.shnenglu.com/hwawai/archive/2008/08/21/59535.html</link><dc:creator>hwawai</dc:creator><author>hwawai</author><pubDate>Thu, 21 Aug 2008 07:45:00 GMT</pubDate><guid>http://m.shnenglu.com/hwawai/archive/2008/08/21/59535.html</guid><wfw:comment>http://m.shnenglu.com/hwawai/comments/59535.html</wfw:comment><comments>http://m.shnenglu.com/hwawai/archive/2008/08/21/59535.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://m.shnenglu.com/hwawai/comments/commentRss/59535.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/hwawai/services/trackbacks/59535.html</trackback:ping><description><![CDATA[<p>׃最q写工具要用xml来存储脚本,所以看了一些xml的c++相关内容<br>|上好多关于tinyxml的文看了好多L觉得比较ȝQ所以决定自己写一个类来封装它<br>q个cd装的不是很全面,但已l基本够我用了Q有兴趣的朋友可以再l箋完善他,<br>让不懂xml内部原理的朋友们也可以方便用xml格式文g存储数据<br><br>q是试目Qvc71版本Q我喜欢?003Q哈?br><a href="http://m.shnenglu.com/Files/hwawai/CXML_vc71.7z">/Files/hwawai/CXML_vc71.7z</a><br>如果大家有什么更好的代码来处理xml希望t跃交流<br><br>头文?br>#pragma once<br>#include<string> <br>#include "tinyxml.h" <br>using namespace std; <br>class CXML<br>{<br>public:<br> CXML(void);<br> ~CXML(void); <br>  <br> bool ParseXmlFile(const char* xmlFile); <br> TiXmlElement* GetElement(const char* parentTitle,const char* title);//此函数需一层一层递进<br> bool getElementAttributeValue(TiXmlElement* Element,const char* AttributeName,string& reslut); <br> bool getFirstElementValue(const char* title,string& result); <br> bool getNextElementValue(const char* title,string& result); <br> TiXmlElement* getRootElement(); <br> void Clear(); <br> //////////////////////////////////////////////////////////////////////////<br> TiXmlElement* addXmlRootElement(const char* title);<br> TiXmlElement* addXmlChildElement(TiXmlElement* pElement,const char* title); <br> void addXmlAttribute(TiXmlElement* pElement,const char* name,const char* value); <br> void addXmlDeclaration(const char* vesion="1.0",const char* encoding="gb2312",const char* standalone=""); <br> void addElementValue(TiXmlElement* pElement,const char* value); <br> void addXmlComment(TiXmlElement* pElement,const char* Comment); <br> void saveFile(const char* file); <br>protected: <br> TiXmlDocument m_xml; <br> TiXmlElement* pElement;   // 获取NextElementValue使用,属时变?br> TiXmlElement* getFirstElement(const char* ElementMark,TiXmlElement* pcrElement); <br>};<br><br>源文?br>#include "StdAfx.h"<br>#include ".\xml.h"</p> <p>CXML::CXML(void)<br>{<br>}</p> <p>CXML::~CXML(void)<br>{<br>}</p> <p>bool CXML::ParseXmlFile(const char* xmlFile) <br>{ <br> return m_xml.LoadFile(xmlFile)?1:0;<br>} </p> <p>TiXmlElement* CXML::GetElement(const char* parentTitle,const char* title)<br>{<br> TiXmlNode* _=m_xml.FirstChildElement(parentTitle);<br> for(_=_->FirstChild();_;_=_->NextSibling())<br> {<br>  if (!strcmp(title,_->Value()))<br>  {<br>   return _->ToElement();<br>  }<br> }<br> return 0;<br>}</p> <p>bool CXML::getElementAttributeValue(TiXmlElement* Element,const char* AttributeName,string& reslut) <br>{ <br> if(Element->Attribute(AttributeName)) <br> { <br>  reslut=Element->Attribute(AttributeName); <br>  return 1;<br> } <br> return 0; <br>}</p> <p>bool CXML::getFirstElementValue(const char* title,string& result) <br>{ <br> if(!title)<br>  return 0;<br> TiXmlElement* _(0);<br> _=m_xml.RootElement();<br> _=getFirstElement(title,_);<br> if(_)<br> {<br>  pElement=_;<br>  result=pElement->GetText();<br>  return 1;<br> } <br> return 0;<br>} </p> <p>bool CXML::getNextElementValue(const char* title,string& result) <br>{ <br> result=""; <br> pElement=pElement->NextSiblingElement(title); <br> if(pElement) <br> { <br>  result=pElement->GetText(); <br>  return 1; <br> } <br> return 0; <br>} </p> <p>TiXmlElement* CXML::getRootElement() <br>{ <br> return m_xml.RootElement(); <br>} </p> <p>void CXML::Clear() <br>{ <br> m_xml.Clear(); <br>} </p> <p>//////////////////////////////////////////////////////////////////////////<br>TiXmlElement* CXML::addXmlRootElement(const char* title) <br>{ <br> TiXmlElement* _=new TiXmlElement(title); <br> m_xml.LinkEndChild(_); <br> return _; <br>} </p> <p>TiXmlElement* CXML::addXmlChildElement(TiXmlElement* pElement,const char* title) <br>{ <br> if(pElement) <br> { <br>  TiXmlElement* _=new TiXmlElement(title); <br>  pElement->LinkEndChild(_); <br>  return _; <br> } <br> return 0; <br>} </p> <p>void CXML::addXmlAttribute(TiXmlElement* pElement,const char* name,const char* value) <br>{ <br> if(pElement) <br> { <br>  pElement->SetAttribute(name,value); <br> } <br>} </p> <p>void CXML::addXmlDeclaration(const char* vesion,const char* encoding,const char* standalone) <br>{ <br> TiXmlDeclaration *_=new TiXmlDeclaration(vesion,encoding,standalone); <br> m_xml.LinkEndChild(_); <br>} </p> <p>void CXML::addElementValue(TiXmlElement *pElement,const char* value) <br>{ <br> if(pElement) <br> { <br>  TiXmlText *_=new TiXmlText(value); <br>  pElement->LinkEndChild(_); <br> } <br>} <br> <br>void CXML::addXmlComment(TiXmlElement* pElement,const char* Comment) <br>{ <br> if(pElement) <br> { <br>  TiXmlComment *_=new TiXmlComment(Comment); <br>  pElement->LinkEndChild(_); <br> } <br>} </p> <p>void CXML::saveFile(const char* file) <br>{ <br> m_xml.SaveFile(file); <br>} </p> <p>//////////////////////////////////////////////////////////////////////////<br>TiXmlElement* CXML::getFirstElement(const char* ElementMark,TiXmlElement* pcrElement) <br>{ <br> TiXmlElement* _=pcrElement;  <br> while(_) <br> { <br>  if(strcmp(_->Value(),ElementMark)==0) <br>  { <br>   //printf("%s\r\n",pElementtmp->Value()); <br>   return _; <br>  } <br>  else <br>  { <br>   TiXmlElement* nextElement=_->FirstChildElement(); <br>   while(nextElement) <br>   { <br>    //printf("%s\r\n",nextElement->Value()); <br>    if(strcmp(nextElement->Value(),ElementMark)==0) <br>    { <br>     return nextElement; <br>    } <br>    else <br>    { <br>     TiXmlElement* reElement=NULL; <br>     reElement=getFirstElement(ElementMark,nextElement); <br>     if(reElement) <br>     { <br>      return reElement; <br>     } <br>    } <br>    nextElement=nextElement->NextSiblingElement(); <br>   } <br>  } <br>  _=_->NextSiblingElement(); <br> } <br> return NULL; <br>} </p> <p><br>stdafx文g<br>#pragma once<br>#include <iostream><br>#include <tchar.h><br><br>用来试的主cpp文g<br>#include "stdafx.h"<br>#include "tinyxml//XML.h"<br>#include <iostream></p> <p>void createXML()<br>{<br> CXML xml;<br> xml.addXmlDeclaration("1.0","gb2312","");<br> TiXmlElement* root=xml.addXmlRootElement("fields");<br> TiXmlElement* pElement=xml.addXmlChildElement(root,"pos");<br> xml.addXmlAttribute(pElement,"x","100");<br> xml.addXmlAttribute(pElement,"y","200.1");<br> xml.addXmlAttribute(pElement,"z","0.123");</p> <p> TiXmlElement* pElement2=xml.addXmlChildElement(root,"dest");<br> xml.addXmlAttribute(pElement2,"x","一二三");<br> xml.addXmlAttribute(pElement2,"y","一?);<br> xml.addXmlAttribute(pElement2,"z","一");<br> xml.saveFile("1.xml"); <br>}</p> <p>void CreateXML1()<br>{<br> CXML xml;<br> xml.addXmlDeclaration();<br>    TiXmlElement* root=xml.addXmlRootElement("fields");<br> xml.addXmlComment(root,"AAAAAAA");<br> TiXmlElement* pElement=xml.addXmlChildElement(root,"pos_x");<br> xml.addElementValue(pElement,"1.3");<br> pElement=xml.addXmlChildElement(root,"pos_x");<br> xml.addElementValue(pElement,"30.1");<br> pElement=xml.addXmlChildElement(root,"pos_x");<br> xml.addElementValue(pElement,"30ssss.1");<br> xml.saveFile("2.xml");<br>}</p> <p><br>void LoadXML()<br>{<br> CXML xml;<br> xml.ParseXmlFile("1.xml");<br> string a;<br> TiXmlElement* pElement=xml.GetElement("fields","dest"); <br>   xml.getElementAttributeValue(pElement,"x",a);<br>  cout<<a<<endl;<br>  xml.getElementAttributeValue(pElement,"y",a);<br>  cout<<a<<endl;<br>  xml.getElementAttributeValue(pElement,"z",a);<br>  cout<<a<<endl;<br>}</p> <p>void LoadXML1()<br>{<br> CXML xml;<br> xml.ParseXmlFile("2.xml");<br> string a;<br> xml.getFirstElementValue("pos_x",a);<br> cout<<a<<endl; <br> xml.getNextElementValue("pos_x",a);<br>  cout<<a<<endl;<br> xml.getNextElementValue("pos_x",a);<br> cout<<a<<endl;<br>}</p> <p>int _tmain(int argc, _TCHAR* argv[])<br>{<br>//  createXML();<br>//  LoadXML();  <br>  CreateXML1();<br>  LoadXML1();  <br> getchar();<br> return 0;<br>}</p> <p><br>生成的xml文g<br>1.xml<br><?xml version="1.0" encoding="gb2312" ?><br><fields><br>    <pos x="100" y="200.1" z="0.123" /><br>    <dest x="一二三" y="一? z="一" /><br></fields><br><br>2.xml<br><?xml version="1.0" encoding="gb2312" ?><br><fields><br>    <!--AAAAAAA--><br>    <pos_x>1.3</pos_x><br>    <pos_x>30.1</pos_x><br>    <pos_x>30ssss.1</pos_x><br></fields><br></p> <img src ="http://m.shnenglu.com/hwawai/aggbug/59535.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/hwawai/" target="_blank">hwawai</a> 2008-08-21 15:45 <a href="http://m.shnenglu.com/hwawai/archive/2008/08/21/59535.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>v3Frame_StaticMeshViewhttp://m.shnenglu.com/hwawai/archive/2008/08/19/59335.htmlhwawaihwawaiTue, 19 Aug 2008 05:51:00 GMThttp://m.shnenglu.com/hwawai/archive/2008/08/19/59335.htmlhttp://m.shnenglu.com/hwawai/comments/59335.htmlhttp://m.shnenglu.com/hwawai/archive/2008/08/19/59335.html#Feedback0http://m.shnenglu.com/hwawai/comments/commentRss/59335.htmlhttp://m.shnenglu.com/hwawai/services/trackbacks/59335.html最q做了个模型查看器用了ToolKitPro
中的属性表lg









觉得q个lg太适合写一些游戏工具之cȝ了?br>

hwawai 2008-08-19 13:51 发表评论
]]>
Xtreme ToolkitPro 2007 Vol 2 (11.2.1) 使用心得 No.1 CXTPPropertyGridcL?/title><link>http://m.shnenglu.com/hwawai/archive/2008/08/19/59334.html</link><dc:creator>hwawai</dc:creator><author>hwawai</author><pubDate>Tue, 19 Aug 2008 05:37:00 GMT</pubDate><guid>http://m.shnenglu.com/hwawai/archive/2008/08/19/59334.html</guid><wfw:comment>http://m.shnenglu.com/hwawai/comments/59334.html</wfw:comment><comments>http://m.shnenglu.com/hwawai/archive/2008/08/19/59334.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.shnenglu.com/hwawai/comments/commentRss/59334.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/hwawai/services/trackbacks/59334.html</trackback:ping><description><![CDATA[<p><br>q篇是好久之前自己最初脓在cdsn上的帖子Q现在也挪到q里是开吧<br><br><img height=508 alt="" src="http://m.shnenglu.com/images/cppblog_com/hwawai/1.png" width=525 border=0><br><br><br> <br><img height=511 alt="" src="http://m.shnenglu.com/images/cppblog_com/hwawai/2.png" width=525 border=0></p> <p><br><br><br>q是Ҏ原代码例子改的中文版界面,主要是在OnInitDialog里面的代码我都写了注?有兴大家一LI一?/p> <p>BOOL CPropGridDlg::OnInitDialog()<br>{<br> //  CDialog::OnInitDialog();<br> CPropertyGridDlgBase::OnInitDialog();</p> <p> // \“关于...\”菜单Ҏ加到pȝ菜单中?/p> <p> // IDM_ABOUTBOX 必须在系l命令范围内?br> ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);<br> ASSERT(IDM_ABOUTBOX < 0xF000);</p> <p> CMenu* pSysMenu = GetSystemMenu(FALSE);<br> if (pSysMenu != NULL)<br> {<br>  CString strAboutMenu;<br>  strAboutMenu.LoadString(IDS_ABOUTBOX);<br>  if (!strAboutMenu.IsEmpty())<br>  {<br>   pSysMenu->AppendMenu(MF_SEPARATOR);<br>   pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);<br>  }<br> }</p> <p> // 讄此对话框的图标。当应用E序ȝ口不是对话框Ӟ框架自?br> //  执行此操?br> SetIcon(m_hIcon, TRUE);   // 讄大图?br> SetIcon(m_hIcon, FALSE);  // 讄图?/p> <p> // TODO: 在此d额外的初始化代码<br> //////////////////////////////////////////////////////////////////////////<br> // 获得囄框矩?br> CRect rc;<br> m_wndPlaceHolder.GetWindowRect( &rc );<br> // 转ؓH口坐标<br> ScreenToClient( &rc );<br> // 建立属性表<br> if ( m_wndPropertyGrid.Create( rc, this, IDC_PROPERTY_GRID  ) )<br> {<br>  m_wndPropertyGrid.SetVariableItemsHeight(TRUE);<br>  // 获取逻辑字体<br>  LOGFONT lf;<br>  GetFont()->GetLogFont( &lf );<br>  // create document settings category.<br>  // 建立分类<br>  CXTPPropertyGridItem* pSettings        = m_wndPropertyGrid.AddCategory(_T("Document Settings"));<br>  // 讄TOOLTIP<br>  pSettings->SetTooltip(_T("Document Settings Category"));</p> <p>  // add child items to category.<br>  // 建立bool内容<br>  CXTPPropertyGridItem* pItemSaveOnClose = pSettings->AddChildItem(new CXTPPropertyGridItemBool(_T("SaveOnClose"), TRUE));<br>  // 建立字体内容<br>  pSettings->AddChildItem(new CXTPPropertyGridItemFont(_T("WindowFont"), lf));<br>  // 建立size内容<br>  pSettings->AddChildItem(new CXTPPropertyGridItemSize(_T("WindowSize"), CSize(100, 100)));<br>  <br>  // 展开<br>  pSettings->Expand();<br>  // 选择<br>  pItemSaveOnClose->Select();</p> <p>  // create global settings category.<br>  // 建立分类<br>  CXTPPropertyGridItem* pGlobals      = m_wndPropertyGrid.AddCategory(_T("Global Settings"));</p> <p>  // add child items to category.<br>  // 建立只读字符串内?br>  CXTPPropertyGridItem* pItemGreeting = pGlobals->AddChildItem(new CXTPPropertyGridItem(_T("Greeting Text"), _T("Welcome to your application!")));<br>  pItemGreeting->SetReadOnly(TRUE);<br>  // 建立整数内容<br>  pGlobals->AddChildItem(new CXTPPropertyGridItemNumber(_T("ItemsInMRUList"), 4));<br>  // 讄说明<br>  CXTPPropertyGridItem* pItemRate     = pGlobals->AddChildItem(new CXTPPropertyGridItemNumber(_T("MaxRepeatRate"), 10));<br>  pItemRate->SetDescription(_T("The rate in milliseconds that the text will repeat."));<br>  // 建立color内容<br>  pGlobals->AddChildItem(new CXTPPropertyGridItemColor(_T("ToolbarColor"), RGB(255, 192,128)));</p> <p>  <br>  <br>  //////////////////////////////////////////////////////////////////////////<br>  // Version category.<br>  // 建立分类<br>  CXTPPropertyGridItem* pVersion      = m_wndPropertyGrid.AddCategory(_T("Version"));</p> <p>  // add child items to category.<br>  // 建立只读字符串内?br>  CXTPPropertyGridItem* pItemVersion  = pVersion->AddChildItem(new CXTPPropertyGridItem(_T("AppVersion"), _T("1.0")));<br>  pItemVersion->SetReadOnly(TRUE);<br>  // 使用资源建立字符串内?br>  CXTPPropertyGridItem* pItemLanguage = pVersion->AddChildItem(new CXTPPropertyGridItem(ID_ITEM_VERSION_LANGUAGE, _T("English (United States)")));<br>  // 展开分类<br>  pVersion->Expand();</p> <p>  // comboq接到字W串内容?br>  // 试l果 只要不是只读的字W串内容可q接combo 步骤如下<br>  // 获取item的Constraints<br>  CXTPPropertyGridItemConstraints* pList = pItemLanguage->GetConstraints();<br>  // dcombo内容<br>  pList->AddConstraint(_T("Neutral"));<br>  pList->AddConstraint(_T("Arabic"));<br>  pList->AddConstraint(_T("German"));<br>  pList->AddConstraint(_T("Chinese(Taiwan)"));<br>  pList->AddConstraint(_T("English (United Kingdom)"));<br>  pList->AddConstraint(_T("English (United States)"));<br>  pList->AddConstraint(_T("France"));<br>  pList->AddConstraint(_T("Russian"));<br>  pList->AddConstraint(_T("体中?));<br>  pList->AddConstraint(_T("英文"));<br>  pList->AddConstraint(_T("日文"));<br>  // 讄combo为可~辑l合?br>  pItemLanguage->SetFlags(xtpGridItemHasComboButton | xtpGridItemHasEdit);</p> <p>  //////////////////////////////////////////////////////////////////////////<br>  // Dynamic Options<br>  // 建立分类<br>  CXTPPropertyGridItem* pCategoryDynamic = m_wndPropertyGrid.AddCategory(_T("Dynamic Options"));<br>  // 建立bool内容<br>  // q是W?U方?nbsp;强制转换指针方式<br>  CXTPPropertyGridItemBool* pItemBool = (CXTPPropertyGridItemBool*)pCategoryDynamic->AddChildItem(<br>   new CXTPPropertyGridItemBool(_T("Advanced"), FALSE));<br>  // 讄ID<br>  pItemBool->SetID(501);<br>  // 讄checkbox样式<br>  pItemBool->SetCheckBoxStyle();<br>  // 建立bool内容checkbox样式q?br>  pItemBool = (CXTPPropertyGridItemBool*)pCategoryDynamic->AddChildItem(<br>   new CXTPPropertyGridItemBool(_T("Option 1"), FALSE));<br>  pItemBool->SetHidden(TRUE);<br>  pItemBool->SetCheckBoxStyle();<br>  // 建立bool内容checkbox样式q?br>  pItemBool = (CXTPPropertyGridItemBool*)pCategoryDynamic->AddChildItem(<br>   new CXTPPropertyGridItemBool(_T("Option 2"), FALSE));<br>  pItemBool->SetHidden(TRUE);<br>  pItemBool->SetCheckBoxStyle();<br>  // 建立bool内容checkbox样式q?br>  pItemBool = (CXTPPropertyGridItemBool*)pCategoryDynamic->AddChildItem(<br>   new CXTPPropertyGridItemBool(_T("Option 3"), FALSE));<br>  pItemBool->SetHidden(TRUE);<br>  pItemBool->SetCheckBoxStyle();<br>  // 建立bool内容checkbox样式q藏和只读<br>  pItemBool = (CXTPPropertyGridItemBool*)pCategoryDynamic->AddChildItem(<br>   new CXTPPropertyGridItemBool(_T("Option 4"), TRUE));<br>  pItemBool->SetHidden(TRUE);<br>  pItemBool->SetCheckBoxStyle();<br>  pItemBool->SetReadOnly();</p> <p>  // create standard items category.<br>  // 建立分类<br>  CXTPPropertyGridItem* pStandard   = m_wndPropertyGrid.AddCategory(_T("Standard Items"));<br>  // 建立字符串内?br>  pStandard->AddChildItem(new CXTPPropertyGridItem(_T("String item")));<br>  // 建立多行字符串下拉框 帮助文g中没?br>  pStandard->AddChildItem(new CXTPPropertyGridItemMultilineString(_T("Multiline String item"), _T("1\r\n2")));<br>  // 建立整数内容<br>  pStandard->AddChildItem(new CXTPPropertyGridItemNumber(_T("Integer item")));<br>  // 建立double内容q设|初始值和数据格式<br>  pStandard->AddChildItem(new CXTPPropertyGridItemDouble(_T("Double item"),0,"%0.3f"));<br>  // 建立颜色bool字体<br>  pStandard->AddChildItem(new CXTPPropertyGridItemColor(_T("Color item")));<br>  pStandard->AddChildItem(new CXTPPropertyGridItemBool(_T("Bool item")));<br>  pStandard->AddChildItem(new CXTPPropertyGridItemFont(_T("Font item"), lf));<br>  // mfc旉cCOleDateTime<br>  COleDateTime dates(1981, 1, 26, 0, 0, 0 );<br>  // 使用COleDateTime建立旉内容<br>  pStandard->AddChildItem(new CXTPPropertyGridItemDate(_T("Date item"), dates));<br>  // 建立size内容<br>  pStandard->AddChildItem(new CXTPPropertyGridItemSize(_T("Size item")));<br>  // 建立enum内容<br>  CXTPPropertyGridItem* pItem = pStandard->AddChildItem(new CXTPPropertyGridItemEnum(_T("Enum item"), 1));<br>  // denum记录到enum内容呈combo样式<br>  pItem->GetConstraints()->AddConstraint(_T("Windows 98"), 1);<br>  pItem->GetConstraints()->AddConstraint(_T("Windows 2000"), 2);<br>  pItem->GetConstraints()->AddConstraint(_T("Windows XP"), 3);</p> <p>  // 建立flag内容 W?个参?1+2"为初始?nbsp;?Windows 98"?Windows 2000"为真<br>  // 且flag的元素数值需?,2,4,8,16,32...<br>  pItem = pStandard->AddChildItem(new CXTPPropertyGridItemFlags(_T("Flag item"), 1 + 2));<br>  pItem->GetConstraints()->AddConstraint(_T("All Windows"), 1 + 2 + 4);<br>  pItem->GetConstraints()->AddConstraint(_T("Windows 98"), 1);<br>  pItem->GetConstraints()->AddConstraint(_T("Windows 2000"), 2);<br>  pItem->GetConstraints()->AddConstraint(_T("Windows XP"), 4); </p> <p>  //////////////////////////////////////////////////////////////////////////<br>  // 建立分类<br>  CXTPPropertyGridItem* pButtons   = m_wndPropertyGrid.AddCategory(_T("Standard Buttons"));<br>  // 建立bool内容<br>  pItem = pButtons->AddChildItem(new CXTPPropertyGridItemBool(_T("Combo Button")));<br>  // 讄为combo样式<br>  pItem->SetFlags(xtpGridItemHasComboButton);<br>  // 建立字符串内?br>  pItem = pButtons->AddChildItem(new CXTPPropertyGridItem(_T("Expand Button")));<br>  // 讄为可~辑q带有扩展按钮样?br>  pItem->SetFlags(xtpGridItemHasEdit | xtpGridItemHasExpandButton);<br>  // 建立字符串内?br>  pItem = pButtons->AddChildItem(new CXTPPropertyGridItem(_T("2 Buttons")));<br>  // 讄ID<br>  pItem->SetID(510);<br>  // 讄为可~辑q带有扩展按钮样式和combo<br>  pItem->SetFlags(xtpGridItemHasEdit | xtpGridItemHasComboButton | xtpGridItemHasExpandButton);<br>  // dcombo内容<br>  pItem->GetConstraints()->AddConstraint(_T("Windows 2000"), 1);<br>  pItem->GetConstraints()->AddConstraint(_T("Windows 98"), 2);<br>  // 建立字符串内?br>  pItem = pButtons->AddChildItem(new CXTPPropertyGridItem(_T("Text Button")));<br>  // d按钮到字W串内容行尾<br>  CXTPPropertyGridInplaceButton* pButton = pItem->GetInplaceButtons()->AddButton(new CXTPPropertyGridInplaceButton(1));<br>  // 讄按钮文本<br>  pButton->SetCaption(_T("Find"));<br>  // 讄按钮宽度<br>  pButton->SetWidth(100);<br>  // 建立字符串内?br>  pItem = pButtons->AddChildItem(new CXTPPropertyGridItem(_T("Image Button")));<br>  // d按钮到字W串内容行尾<br>  pButton = pItem->GetInplaceButtons()->AddButton(new CXTPPropertyGridInplaceButton(1));<br>  // 讄按钮图标索引<br>  pButton->SetIconIndex(100);<br>  // UINT数组  估计是一个时存储单元用于添加图标到按钮<br>  // 上面?00和下面的100以及讄图标语句中的btnFilter是相联系?br>  UINT btnFilter[] = {100};<br>  // 讄图标<br>  m_wndPropertyGrid.GetImageManager()->SetIcons(IDB_BITMAP_FILTER, btnFilter, 1, 0);<br>  // 讄ToolTip在图标上<br>  pButton->SetTooltip(_T("Set Filter for item"));<br>  // 建立整Ş内容<br>  pItem = pButtons->AddChildItem(new CXTPPropertyGridItemNumber(_T("Spin And Slider"), 60));<br>  // 默认0-100暂时没有扑ֈ讄范围的方?br>  // d水^滑块q接到整形内?br>  pItem->AddSliderControl();<br>  // d上下按钮q接到整形内?br>  pItem->AddSpinButton();</p> <p>  //////////////////////////////////////////////////////////////////////////<br>  // 建立分类<br>  CXTPPropertyGridItem* pMetrics   = m_wndPropertyGrid.AddCategory(_T("Custom Metrics"));<br>  // 建立字符串内?br>  pItem = pMetrics->AddChildItem(new CXTPPropertyGridItem(_T("Value Colors"), _T("")));<br>  // 讄文字颜色 可以采用RGB宏或DWORD<br>  // 文字和背景颜色会呈现混合效果<br>  pItem->GetValueMetrics()->m_clrFore = 0x00ff00;<br>  // 讄背景颜色<br>  pItem->GetValueMetrics()->m_clrBack = RGB(255, 0, 255);<br>  // 建立字符串内?br>  pItem = pMetrics->AddChildItem(new CXTPPropertyGridItem(_T("Caption Colors"), _T("")));<br>  // 讄文字颜色<br>  pItem->GetCaptionMetrics()->m_clrFore = 0xFF0000;<br>  // 讄背景颜色<br>  pItem->GetCaptionMetrics()->m_clrBack = RGB(235, 235, 235);<br>  // 建立enum内容<br>  pItem = pMetrics->AddChildItem(new CXTPPropertyGridItemEnum(_T("Images"), 2));<br>  // 内加enum记录q带有图?br>  pItem->GetConstraints()->AddConstraint(_T("Green"), 0, 0);<br>  pItem->GetConstraints()->AddConstraint(_T("Red"), 1, 1);<br>  pItem->GetConstraints()->AddConstraint(_T("Yellow"), 2, 2);<br>  pItem->GetConstraints()->AddConstraint(_T("Blue"), 3, 3);<br>  // 讄enum内容的内容图?br>  pItem->GetValueMetrics()->m_nImage = 2;<br>  // 讄enum内容的标题图?br>  pItem->GetCaptionMetrics()->m_nImage = 4;<br>  // 讄mask颜色<br>  m_wndPropertyGrid.GetImageManager()->SetMaskColor(0xC0C0C0);<br>  // 讄图标<br>  m_wndPropertyGrid.GetImageManager()->SetIcons(IDB_BITMAP_CONSTRAINTS, 0, 5, CSize(20, 14));<br>  // 建立字符串内?br>  pItem = pMetrics->AddChildItem(new CXTPPropertyGridItem(_T("Variable Height"), _T("Item")));<br>  // 建立内容块高?br>  pItem->SetHeight(32);<br>  // 讄为combo样式<br>  pItem->SetFlags(xtpGridItemHasComboButton);<br>  // 建立多行字符串内?br>  // 貌似在多行中无法真正的多行编?没有扑ֈ让文本换行即支持文本回R的方?br>  pItem = pMetrics->AddChildItem(new CXTPPropertyGridItem(_T("MultiLine"), _T("Codejock Software\r\n428 Corunna Avenue\r\nOwosso, Michigan 48867 USA")));<br>  // 讄能见得文本行?br>  pItem->SetMultiLinesCount(3);</p> <p> </p> <p>  // create custom items category.<br>  // 建立分类<br>  // 以下定义cd 代码见CustomItems.h<br>  CXTPPropertyGridItem* pCustom   = m_wndPropertyGrid.AddCategory(_T("Custom Items"));<br>  // add child items to category.<br>  // 建立icon内容<br>  CXTPPropertyGridItem* pItemIcon = pCustom->AddChildItem(new CCustomItemIcon(_T("Icon"), m_hIcon));<br>  pItemIcon->SetDescription(_T("This sample shows how to override draw function"));<br>  // 建立DockPadding内容<br>  // DockPadding?个数的组?br>  CXTPPropertyGridItem* pItemDock = pCustom->AddChildItem(new CCustomItemChilds(_T("DockPadding"), CRect(100, 20, 400, 50)));<br>  pItemDock->SetDescription(_T("This sample shows how to add item with childs"));<br>  // 建立颜色内容<br>  pCustom->AddChildItem(new CCustomItemColor(_T("CustomCombolist"), RGB(0xFF, 0x80, 0x40)));<br>  // 建立打开对话框内?br>  pCustom->AddChildItem(new CCustomItemFileBox(_T("File Box")));<br>  // 建立字符串内?br>  CXTPPropertyGridItem* pItemMaskEdit = pCustom->AddChildItem(new CXTPPropertyGridItem(_T("Mask Edit"), _T("Phone No: (816) 220-0000")));<br>  // 讄字符串MASK<br>  pItemMaskEdit->SetMask(_T("Phone No: (000) 000-0000"), _T("Phone No: (___) ___-____"));<br>  // 建立字符串内?br>  CXTPPropertyGridItem* pItemPassword = pCustom->AddChildItem(new CXTPPropertyGridItem(_T("Password"), _T("Text")));<br>  // 讄字符串Password<br>  pItemPassword->SetPasswordMask();<br>  // 建立日期内容<br>  COleDateTime date(1981, 1, 26, 0, 0, 0 );<br>  pCustom->AddChildItem(new CXTPPropertyGridItemDate(_T("Date"), date));<br>  // 建立大写字母内容<br>  pCustom->AddChildItem(new CCustomItemUpperCase(_T("UpperCase")));<br>  // 建立ip地址内容<br>  pCustom->AddChildItem(new CCustomItemIPAddress(_T("IP Address")));  <br>  // 建立PopupMenu内容<br>  pCustom->AddChildItem(new CCustomItemMenu(_T("Popup Menu")));<br>  // 建立字符串内?br>  pCustom->AddChildItem(new CCustomItemEdit(_T("Output"), _T("Debug")));</p> <p>  // add multi level tree node.<br>  // 建立树Ş内容<br>  CXTPPropertyGridItem* pCategoryOne    = pCustom->AddChildItem(new CXTPPropertyGridItemCategory(_T("First Sub Category")));<br>  CXTPPropertyGridItem* pCategoryTwo    = pCategoryOne->AddChildItem(new CXTPPropertyGridItemCategory(_T("Second Sub Category 1")));<br>  pCategoryTwo->AddChildItem(new CXTPPropertyGridItem(_T("Third Level 1"), _T("")));<br>  pCategoryTwo->AddChildItem(new CXTPPropertyGridItem(_T("Third Level 2"), _T("")));<br>  CXTPPropertyGridItem* pCategoryTwo2   = pCategoryOne->AddChildItem(new CXTPPropertyGridItemCategory(_T("Second Sub Category 2")));<br>  pCategoryTwo2->AddChildItem(new CXTPPropertyGridItem(_T("Third Level 1"), _T("")));<br>  // 建立树Ş内容<br>  CXTPPropertyGridItem* pItemOne    = pCustom->AddChildItem(new CXTPPropertyGridItem(_T("First Level"), _T("")));<br>  CXTPPropertyGridItem* pItemTwo    = pItemOne->AddChildItem(new CXTPPropertyGridItem(_T("Second Level"), _T("")));<br>  CXTPPropertyGridItem* pItemThird     = pItemTwo->AddChildItem(new CXTPPropertyGridItem(_T("Third Level"), _T("")));<br>  pItemThird->AddChildItem(new CXTPPropertyGridItem(_T("Fourth Level 1"), _T("")));<br>  pItemThird->AddChildItem(new CXTPPropertyGridItem(_T("Fourth Level 2"), _T("")));</p> <p><br>  // create custom items category.<br>  // 建立分类<br>  pCustom   = m_wndPropertyGrid.AddCategory(_T("Custom Butons"));<br>  // 建立上下按钮内容<br>  CXTPPropertyGridItem* pItemSpin = pCustom->AddChildItem(new CCustomItemSpin(_T("SpinButton")));<br>  pItemSpin->SetDescription(_T("This sample shows how to add new button type"));<br>  // 建立水^滑块内容<br>  pCustom->AddChildItem(new CCustomItemSlider(_T("Slider")));<br>  // 建立CheckBox内容<br>  CCustomItemCheckBox* pItemCheckBox = (CCustomItemCheckBox*)pCustom->AddChildItem(new CCustomItemCheckBox(_T("Check Box")));<br>  pItemCheckBox->SetValue(_T("agree with conditions"));<br>  pItemCheckBox->SetBool(TRUE);<br>  // 建立自定义按?br>  pCustom->AddChildItem(new CCustomItemButton(_T("Left Origin"), FALSE, TRUE));<br>  pCustom->AddChildItem(new CCustomItemButton(_T("Right Origin"), FALSE, TRUE));<br>  pCustom->AddChildItem(new CCustomItemButton(_T("Pointer"), TRUE, TRUE));<br>  pCustom->AddChildItem(new CCustomItemButton(_T("Gradient"), TRUE, FALSE));<br> }</p> <p><br> m_groupAppearance.SubclassDlgItem(IDC_GBOX_APPEAR, this);<br> m_groupSort.SubclassDlgItem(IDC_GBOX_SORT, this);<br> m_groupColor.SubclassDlgItem(IDC_GBOX_COLOR, this);</p> <p> // Set control resizing.<br> SetResize(IDC_PROPERTY_GRID, SZ_TOP_LEFT, SZ_BOTTOM_RIGHT);<br>// <br>  SetResize(IDC_GBOX_APPEAR,       SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br>    SetResize(IDC_CHK_TOOLBAR,       SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br>  SetResize(IDC_CHK_HELP,          SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br> SetResize(IDC_CHK_VERBS,         SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br> SetResize(IDC_CHK_DOUBLE,        SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br> SetResize(IDC_CHK_TABITEMS,      SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br>  SetResize(IDC_CHK_HIGHLIGHT,     SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br> SetResize(IDC_COMBO_THEME,       SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br>   SetResize(IDC_GBOX_SORT,         SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br>    SetResize(IDC_SORT_CATEGORIES,   SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br> SetResize(IDC_SORT_ALPHABETICAL, SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br>  SetResize(IDC_SORT_NOSORT,       SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br>    SetResize(IDC_GBOX_COLOR,        SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br>  SetResize(IDC_CHK_CUSTOMCOLORS,  SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br>  SetResize(IDC_BUTTON_SWITCHSTATE,  SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br>  SetResize(IDC_COMBO_BORDER,      SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br>   SetResize(IDC_CHECK_SHOWBUTTONS, SZ_TOP_RIGHT, SZ_TOP_RIGHT);<br>   SetResize(IDC_CHK_RIGHTTOLEFT, SZ_TOP_RIGHT, SZ_TOP_RIGHT);</p> <p> // Load window placement<br> AutoLoadPlacement(_T("PropertyGridSample"));</p> <p>  m_cmbTheme.AddString(_T("xtpGridThemeDefault"));<br>  m_cmbTheme.AddString(_T("xtpGridThemeNativeWinXP"));<br>  m_cmbTheme.AddString(_T("xtpGridThemeOffice2003"));<br>  m_cmbTheme.AddString(_T("xtpGridThemeCool"));<br>  m_cmbTheme.AddString(_T("xtpGridThemeSimple"));<br>  m_cmbTheme.AddString(_T("xtpGridThemeDelphi"));<br>  m_cmbTheme.AddString(_T("xtpGridThemeWhidbey"));<br>  m_cmbTheme.AddString(_T("xtpGridThemeOfficeXP"));<br>  m_cmbTheme.AddString(_T("xtpGridThemeOffice2007"));<br>  m_cmbTheme.SetCurSel(0);<br> <br>  m_cmbBorder.AddString(_T("xtpGridBorderNone"));<br>  m_cmbBorder.AddString(_T("xtpGridBorderFlat"));<br>  m_cmbBorder.AddString(_T("xtpGridBorderStaticEdge"));<br>  m_cmbBorder.AddString(_T("xtpGridBorderClientEdge"));<br>  m_cmbBorder.SetCurSel(3);</p> <p> return TRUE;  // 除非讄了控件的焦点Q否则返?TRUE<br>} </p> <img src ="http://m.shnenglu.com/hwawai/aggbug/59334.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/hwawai/" target="_blank">hwawai</a> 2008-08-19 13:37 <a href="http://m.shnenglu.com/hwawai/archive/2008/08/19/59334.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://m.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.sdyingdahb.cn" target="_blank">þ99Ʒþþþþhb</a>| <a href="http://www.jiulongpu.cn" target="_blank">99þþƷһ</a>| <a href="http://www.lttao.cn" target="_blank">ݺɫۺվþþþþþ</a>| <a href="http://www.w-sh.cn" target="_blank">þۺϺݺɫۺ</a>| <a href="http://www.qiuhen.cn" target="_blank">þþƷ5555</a>| <a href="http://www.h6343.cn" target="_blank">þþƷŷƬ</a>| <a href="http://www.szsantong.com.cn" target="_blank">ùþþۺ</a>| <a href="http://www.laowang66.com.cn" target="_blank">þþþþþþƷŮ99</a>| <a href="http://www.lftdly.cn" target="_blank">ݺݺɫۺϾþð</a>| <a href="http://www.xeqw.cn" target="_blank">þ˿ྫƷĻ</a>| <a href="http://www.xbfid.cn" target="_blank">þþþþþAv</a>| <a href="http://www.awkmqq.cn" target="_blank">þûɫƵ</a>| <a href="http://www.7cfw.cn" target="_blank">þþþAVƬ</a>| <a href="http://www.6talent.cn" target="_blank">ƷһþþƷ</a>| <a href="http://www.jzxqbz.cn" target="_blank">þۺ97ɫֱ</a>| <a href="http://www.vstmall.com.cn" target="_blank">þùƷ99</a>| <a href="http://www.n24657.cn" target="_blank">þҹɫ˾Ʒ</a>| <a href="http://www.kzhg.net.cn" target="_blank">MM131޹Ůþ</a>| <a href="http://www.coldcha.cn" target="_blank">޹ۺϾþ</a>| <a href="http://www.odcb.cn" target="_blank">þþۺϾɫۺ98</a>| <a href="http://www.kongqueyuhn.cn" target="_blank">ŷպ˾Ʒþþѿ </a>| <a href="http://www.ccguofeng.cn" target="_blank">þˬˬƬAV </a>| <a href="http://www.u18718.cn" target="_blank">þþƷվ</a>| <a href="http://www.td265.cn" target="_blank">þþþѿӰƬ</a>| <a href="http://www.bkqxv.cn" target="_blank">ɫۺϾþþþĻ</a>| <a href="http://www.168sf.com.cn" target="_blank">һֻƴƬ99þ</a>| <a href="http://www.xzxms.cn" target="_blank">þþþþþƷͼƬ</a>| <a href="http://www.0577114.cn" target="_blank">þ99Ʒþþþþò</a>| <a href="http://www.gkdb.net.cn" target="_blank">Ʒþ</a>| <a href="http://www.g172.cn" target="_blank">ɫۺϾþþþۺһ </a>| <a href="http://www.ujpy.cn" target="_blank">91þþƷһ</a>| <a href="http://www.ysbzxx.com.cn" target="_blank">þרƷ</a>| <a href="http://www.uqtl.cn" target="_blank">ŷƷƵһþþþƷ </a>| <a href="http://www.jinshengsuliao.cn" target="_blank">þù׽</a>| <a href="http://www.bolidianqi.cn" target="_blank">뾫Ʒþþþ </a>| <a href="http://www.qhsy217.cn" target="_blank">Ʒþþþ</a>| <a href="http://www.a737.cn" target="_blank">츾޾þĻ</a>| <a href="http://www.handyx.cn" target="_blank">vaþþþ</a>| <a href="http://www.caoguowan.cn" target="_blank">ŷ˼Ծþ</a>| <a href="http://www.jia-hua.cn" target="_blank">ݺɫþþһ</a>| <a href="http://www.bsgrhb.cn" target="_blank">þþƷþý</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>