青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 181  文章 - 15  trackbacks - 0
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

My Tech blog

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

???????? 目錄
??????? com方式調用matlab(一)
??????? com方式調用matlab(二)?
??????? com方式調用matlab(三)
??????? com方式調用matlab(四)?
??????? com方式調用matlab(五)
??????? com方式調用matlab(六)
??????? com方式調用matlab(附:運行結果及代碼)
??????? 在明確了如何讀取配置文件以后,現在我們如何將配置文件的信息反饋給用戶呢?
??????? 用戶當然要通過用戶界面和我們程序所提供的一切功能打交道。我們當然不希望一下子把配置文件里面這么多信息一下子全都提供給用戶,那么考慮用這樣一種所謂“聯動”的方式,就是說當用戶從下拉列表中選擇一個配置名稱后,就列出該配置的所有信息。這樣似乎要稍微友好一些。另外我們還需要允許用戶能夠修改配置內容,這樣還要從這些動態生成的控件中取得數值。說到這里,肯定大家會想到STL中的Map或List。恩,確實可以這樣實現,但是我們有MFC,我們用CTypedPtrMap。
??????? 下面是相關的類定義:
???????
class?CEditCtrlFactory
{
public:
????
//屬性
?????CTypedPtrMap<CMapStringToPtr,CString,CWnd*>?m_ctrlMap;
public:
????CEditCtrlFactory(
void);
????
~CEditCtrlFactory(void);
????CWnd
*?createCtrl(CWnd?*wnd,CString?typeName,CString?attributeName,CRect?rect);//創建控件對象
????CWnd*?getCtrl(CString?attributeName);
????
void?disposeAll();
private:
????
//私有方法
????
};

??????? 這里就是用了CTypedPtrMap,聲明了一個變量m_ctrlMap,它的索引是一個CString型變量,然后內容為一個CWnd型的指針。我們知道,一切窗體、按鈕等等的東西都是從CWnd繼承的。我們用CWnd來代指一切需要動態生成的控件(其實在這個程序中,主要動態生成CEdit型和CStatic型控件),這應當算是一個裝箱操作了吧。

??????? 方法createCtrl用來創建控件,并放到Map里面,getCtrl用來從Map中取得相應的控件對象。
??????? 下面是createCtrl的詳細實現:
???????

CWnd*?CEditCtrlFactory::createCtrl(CWnd?*wnd,CString?typeName,CString?attributeName,CRect?rect)
{
????
//創建cedit對象
????if(typeName=="CEdit")
????{
????????CEdit?
*pEdit?=?new?CEdit();
????????pEdit
->CreateEx(WS_EX_CLIENTEDGE,"EDIT",?"",?WS_CHILD|WS_VISIBLE,rect,wnd,0);
????????
//加入映射表
????????m_ctrlMap[attributeName]=pEdit;
????????
return?pEdit;
????}
????
if(typeName=="CStatic")
????{
????????CStatic?
*pStatic=new?CStatic();
????????pStatic
->Create(attributeName,WS_CHILD|WS_VISIBLE,rect,wnd);
????????m_ctrlMap[attributeName]
=pStatic;
????????
return?pStatic;
????}
????
return?NULL;
}

??????? 其實很簡單,就是用CreateEx這個方法。參數wnd為容納這個控件的窗體,rect指明了控件的位置。其他參數都是些宏定義。然后用"m_ctrlMap[attributeName]=控件指針"這句話來把控件放入Map。假如C++能夠支持點反射之類的語法的話,這一部分可以寫得有趣些,但是據我所知,好像不行;另外聽說可以通過定義一些宏之類的東西可以間接實現,這都是我能力之所不及的,有興趣的人可以自己實踐。
??????? 下面是getCtrl()這個方法的實現:
???????
CWnd*?CEditCtrlFactory::getCtrl(CString?attributeName)
{
????
//從映射表中取得cedit對象
????CWnd?*pWnd;
????m_ctrlMap.Lookup(attributeName,pWnd);
????
return?pWnd;
}
??????? 用了CTypedPtrMap.lookup來根據控件名字來查找控件對象。
??????? 最后,還需要釋放這些對象:
}
void?CEditCtrlFactory::disposeAll()
{
????
//刪除所有edit對象
????for?(POSITION?pos?=m_ctrlMap.GetStartPosition();?pos;?)
????{
????????CWnd?
*pWnd=0;
????????m_ctrlMap.GetNextAssoc(pos,?CString(
""),?pWnd);
????????delete?pWnd;
????}
????m_ctrlMap.RemoveAll();
}
??????? 就是不停的通過GetNextAssoc取得Map中的對象指針,然后釋放之。最后清空整個Map。
??????? 到這里,兩個工具類就介紹完畢了。
posted on 2006-08-21 20:13 littlegai 閱讀(625) 評論(0)  編輯 收藏 引用 所屬分類: 我的代碼玩具
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            你懂的网址国产 欧美| 欧美在线观看一二区| 亚洲在线观看免费视频| 尤物九九久久国产精品的分类| 午夜国产精品视频| 亚洲欧美日韩天堂| 久久精品中文| 欧美成人午夜视频| 欧美日韩一区不卡| 国产精品电影观看| 国产日本欧美一区二区三区| 国产一级精品aaaaa看| 一区二区三区在线视频免费观看 | 久久福利视频导航| 欧美在线播放高清精品| 理论片一区二区在线| 免费日韩成人| 欧美亚男人的天堂| 国内一区二区三区在线视频| 亚洲欧洲一区二区三区| 久久久久天天天天| 欧美激情在线狂野欧美精品| 国产精品高潮在线| 雨宫琴音一区二区在线| 夜夜嗨av一区二区三区免费区| 一二三区精品福利视频| 久久国产色av| 亚洲区中文字幕| 日韩一级精品视频在线观看| 午夜精品理论片| 麻豆91精品| 国产欧美一区二区视频| 亚洲精品国产精品久久清纯直播 | 欧美大片一区| 国产伦精品一区| 亚洲第一久久影院| 性做久久久久久| 久久久久久久综合日本| 久久精品日韩| 亚洲精品乱码久久久久久日本蜜臀| 亚洲国产一区二区在线| 亚洲制服av| 欧美日韩福利在线观看| 黄色精品一二区| 午夜精品视频网站| 亚洲高清色综合| 久久精品视频在线播放| 国产精品伦一区| 99成人免费视频| 欧美成人精品在线播放| 午夜一区在线| 国产精品高潮呻吟久久| 亚洲最新色图| 亚洲国产高清在线| 美乳少妇欧美精品| 精品999网站| 久久色中文字幕| 午夜欧美视频| 国产日韩欧美一区二区三区在线观看 | 久久久久久一区| 亚洲精选中文字幕| 欧美成人在线免费观看| 国产午夜精品理论片a级探花 | 久久青青草综合| 亚洲午夜精品在线| 欧美深夜福利| 亚洲欧美国产精品专区久久| 蜜桃av久久久亚洲精品| 一区二区三区视频在线观看| 欧美日韩国产精品一区| 日韩视频免费大全中文字幕| 欧美资源在线| 亚洲欧美日韩另类精品一区二区三区| 久久久亚洲欧洲日产国码αv | 国产精品一区二区男女羞羞无遮挡| 亚洲全黄一级网站| 亚洲国产成人在线播放| 欧美va亚洲va香蕉在线| 亚洲国产综合在线看不卡| 亚洲国产精品va| 欧美三级在线播放| 午夜一区二区三区在线观看| 亚洲欧美在线看| 在线免费一区三区| 亚洲精品社区| 国产精品成人va在线观看| 久久大逼视频| 欧美大学生性色视频| 亚洲天天影视| 亚洲女同在线| 亚洲国产精品久久精品怡红院| 欧美成人免费观看| 欧美午夜a级限制福利片| 久久精品30| 老司机久久99久久精品播放免费| 亚洲成人原创| 亚洲午夜激情网页| 亚洲第一搞黄网站| 日韩天天综合| 精品成人免费| 一本到12不卡视频在线dvd| 国产亚洲免费的视频看| 亚洲国产高清自拍| 国产日韩视频| 一本色道久久综合狠狠躁篇的优点 | 激情伊人五月天久久综合| 免费欧美在线| 欧美午夜免费影院| 久久精品论坛| 欧美日韩亚洲高清| 久久久久久久一区二区| 欧美精品videossex性护士| 久久国产乱子精品免费女| 欧美日韩一级片在线观看| 亚洲欧洲日韩在线| 欧美一级在线亚洲天堂| 亚洲无线视频| 欧美激情一区二区三区全黄 | 久久天天狠狠| 欧美一区二区三区的| 欧美日本一区二区高清播放视频| 欧美一区二区精美| 亚洲精品国产精品乱码不99按摩| 国产精品美腿一区在线看| 亚洲精品日韩激情在线电影| 亚洲电影免费在线| 久久国产精品久久国产精品| 亚洲欧美成aⅴ人在线观看| 欧美精品一区二区在线观看| 欧美激情精品久久久久久| 在线电影院国产精品| 久久久久国产精品一区| 久久综合九色综合欧美就去吻| 欧美视频网址| 在线综合视频| 午夜激情一区| 国产伦精品一区二区三区免费迷 | 亚洲性图久久| 欧美日韩一区二区在线| 日韩一区二区免费看| 一本久久综合亚洲鲁鲁五月天| 久久久久久高潮国产精品视| 久久香蕉精品| 在线成人黄色| 蜜臀av一级做a爰片久久| 欧美18av| 日韩网站在线观看| 欧美喷水视频| 亚洲视频久久| 久久精品首页| 亚洲国产一区视频| 欧美日韩国产一级片| 亚洲午夜av电影| 久久综合久久综合久久| 亚洲国产精品小视频| 欧美精品一区二区三区一线天视频 | 亚洲国产高清在线观看视频| 国产最新精品精品你懂的| 亚洲一区二区综合| 欧美在线免费观看视频| 伊人蜜桃色噜噜激情综合| 欧美成人午夜免费视在线看片| 欧美肥婆bbw| 91久久精品国产91久久性色tv| 欧美成人免费大片| 中文成人激情娱乐网| 久久夜色精品国产欧美乱| 亚洲精品久久久久| 国产精品久在线观看| 久久黄色网页| 亚洲精品久久久久久一区二区| 一区二区三区.www| 国产一区二区丝袜高跟鞋图片| 久久精选视频| 亚洲美女诱惑| 麻豆精品一区二区av白丝在线| 狠狠色伊人亚洲综合成人| 欧美日本国产精品| 欧美一区二区日韩| 亚洲经典视频在线观看| 欧美亚洲视频在线观看| 亚洲高清自拍| 国产麻豆视频精品| 欧美黑人一区二区三区| 香蕉久久一区二区不卡无毒影院 | 夜夜嗨av一区二区三区四季av| 国产精品白丝jk黑袜喷水| 久久国产精品亚洲va麻豆| 日韩视频免费大全中文字幕| 久久久久这里只有精品| 夜夜嗨av一区二区三区 | 日韩视频在线一区二区| 国产欧美日韩亚洲| 欧美日韩日日骚| 久久人人97超碰人人澡爱香蕉 | 亚洲国产经典视频| 久久久精品国产一区二区三区| 亚洲精品视频在线播放| 好吊色欧美一区二区三区四区 | 欧美一区免费|