程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> VC屬性列表的開發

VC屬性列表的開發

編輯:vc教程

  最近開發一個軟件時遇到屬性編輯的問題,本來想用列表控件來代替,但是發現列表控件有很多缺陷,不是太好用。屬性控件不支持編輯與下拉列表功能,這個控件已經內置了這二個功能,而且還提供CUSTOMDRAW,不過還不完善。 程序運行畫面如圖一:

 
圖一

  下面描述一下其主要方法:

  自己定義一個宏來構架列表序列:

BEGIN_CREATE_NODE
    BEGIN_YJITEM(0,YJ_FOLDER,YJ_DEFAULT,_T("文件"),YJEDIT,true,_T("文件"))
    BEGIN_YJITEM(1,YJ_FOLDER,YJ_DEFAULT,_T("新建"),YJEDIT,true,_T("文檔"))
    BEGIN_YJITEM(1,YJ_ITEM,YJ_DEFAULT,_T("打開"),YJLISTBOX,true,_T("文檔#程序#文本"))
    BEGIN_YJITEM(1,YJ_ITEM,YJ_DEFAULT,_T("退出"),YJLISTBOX,true,_T("文檔#程序#文本"))
    BEGIN_YJITEM(0,YJ_FOLDER,YJ_DEFAULT,_T("編輯"),YJEDIT,true,_T("文件"))
    BEGIN_YJITEM(1,YJ_ITEM,YJ_DEFAULT,_T("撤銷"),YJEDIT,true,_T("文件"))
    BEGIN_YJITEM(1,YJ_ITEM,YJ_DEFAULT,_T("粘貼"),YJEDIT,true,_T("文件"))
    BEGIN_YJITEM(1,YJ_ITEM,YJ_DEFAULT,_T("拷貝"),YJEDIT,true,_T("文件"))
    BEGIN_YJITEM(0,YJ_FOLDER,YJ_DEFAULT,_T("視圖"),YJEDIT,true,_T("文件"))
    BEGIN_YJITEM(1,YJ_ITEM,YJ_DEFAULT,_T("撤銷"),YJEDIT,true,_T("文件"))
    BEGIN_YJITEM(1,YJ_ITEM,YJ_DEFAULT,_T("粘貼"),YJEDIT,true,_T("文件"))
    BEGIN_YJITEM(1,YJ_ITEM,YJ_DEFAULT,_T("拷貝"),YJEDIT,true,_T("文件"))
END_CREATE_NODE 

  其中列表字符串之間以"#"分開。編輯框是YJEDIT,列表框是YJLISTBOX,然後在程序裡面調用宏,

CRATE_STRUCT(&m_propertyList)
  m_propertyList.Invalidate(); 

  顯示遍歷屬性列表:

For(int i=0;i< m_propertyList.GetSize();i++)
M_propertyList.m_List[i]->GetString(); 

  其中的每一條目對應一個YJPropertyItem對象的指針.具體請看代碼。

  開發:windows xp+VS2003 代碼見相關附件

  1. 上一頁:
  2. 下一頁:
欄目導航
Copyright © 程式師世界 All Rights Reserved