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

隨筆 - 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>
            99国产麻豆精品| 国产精品毛片| 日韩一级欧洲| 亚洲精品网址在线观看| 亚洲激情视频在线播放| 亚洲国产精品第一区二区三区 | 9i看片成人免费高清| 久久久中精品2020中文| 久久高清一区| 欧美r片在线| 欧美猛交免费看| 国产精品一二三| 欧美高清在线观看| 国产麻豆精品theporn| 午夜精品在线看| 乱中年女人伦av一区二区| 亚洲国产一区二区视频 | 日韩一级大片| 欧美专区在线观看| 91久久在线播放| 久久精品一区二区三区中文字幕 | 在线精品一区二区| 亚洲欧美日韩在线综合| 亚洲电影免费在线观看| 亚洲一区二区三区在线| 国产精品试看| 午夜精品在线| 美日韩精品视频| 国产一区二区三区四区五区美女 | 亚洲国产精品一区二区三区| 亚洲美女尤物影院| 国内视频精品| 欧美在线啊v| 亚洲香蕉网站| 欧美日韩精品免费观看视频完整| 狠狠色丁香久久婷婷综合_中| 亚洲欧洲99久久| 免费不卡中文字幕视频| 亚洲欧美日韩直播| 欧美国产一区二区| 久久久久www| 国产精品久久久久久户外露出| 亚洲精品欧美精品| 久久综合伊人77777| 欧美美女喷水视频| 欧美sm视频| 久久视频这里只有精品| 在线观看视频一区二区| 久久人人爽爽爽人久久久| 夜夜嗨网站十八久久| 嫩草影视亚洲| 国产欧美日韩亚洲| 欧美在线视频日韩| 欧美日韩xxxxx| 欧美成在线观看| 欧美暴力喷水在线| 亚洲美女黄色片| 日韩视频免费观看| 在线日韩电影| 久久国产99| 欧美在线国产精品| 99一区二区| 美女图片一区二区| 久久九九国产精品| 国产欧美日韩精品专区| 99国产麻豆精品| 99这里只有久久精品视频| 久久久久久久综合| 久久亚洲免费| 欧美国产视频日韩| 欧美激情片在线观看| 欧美日本韩国一区二区三区| 免费91麻豆精品国产自产在线观看| 久久全球大尺度高清视频| 久久精选视频| 精品成人一区二区| 亚洲精品日韩精品| 99精品视频免费观看| 欧美国产日韩一区二区| 欧美激情 亚洲a∨综合| 亚洲激情网站免费观看| 亚洲永久在线观看| 欧美一区二区三区在线视频| 欧美日韩精品免费观看视频| 一本久久综合| 亚洲精品看片| 欧美日韩高清不卡| 一区二区三区 在线观看视频| 亚洲精品一区二区在线观看| 欧美国产日韩在线| 一区二区三区四区五区精品视频| 国产情人节一区| 欧美自拍偷拍午夜视频| 日韩亚洲视频| 欧美精品久久99久久在免费线| 欧美与黑人午夜性猛交久久久| 国产亚洲欧美日韩日本| 老鸭窝亚洲一区二区三区| 亚洲欧美国产精品专区久久| 国产精品入口66mio| 欧美一区二区三区婷婷月色| 9久re热视频在线精品| 欧美日韩在线直播| 农村妇女精品| 亚洲另类在线一区| 国产精品一区二区在线观看网站| 一区二区三区免费在线观看| 午夜精品短视频| 夜夜嗨av一区二区三区网站四季av| 国产精品超碰97尤物18| 亚洲欧洲在线播放| 校园激情久久| 欧美日韩免费一区| 亚洲日本va午夜在线影院| 国产亚洲一区二区在线观看| 欧美成人免费va影院高清| 亚洲午夜精品| 亚洲国产成人精品久久| 羞羞漫画18久久大片| 亚洲美女尤物影院| 狠狠综合久久| 国产麻豆精品在线观看| 欧美国产精品中文字幕| 香蕉成人啪国产精品视频综合网| 香蕉乱码成人久久天堂爱免费| 亚洲成人在线网| 国产精品丝袜91| 欧美日韩国产一级片| 免费欧美网站| 亚洲在线不卡| 久久国内精品视频| 久久久xxx| 久久夜色精品国产噜噜av| 亚洲色图自拍| 国产精品都在这里| 欧美成人伊人久久综合网| 久久精品人人做人人综合| 亚洲自啪免费| 久久亚洲综合网| 欧美在线三区| 亚洲一区二区三区色| 国产精品久久看| 欧美日韩精品在线视频| 欧美韩日高清| 欧美成人69| 欧美精品七区| 欧美欧美全黄| 欧美日韩裸体免费视频| 欧美国产日韩一区二区在线观看| 欧美成人高清| 欧美日韩国产成人在线91| 欧美片在线播放| 欧美日韩视频第一区| 欧美日韩一级黄| 国产精品久久国产精麻豆99网站| 欧美三级在线视频| 国产精品久久久久久久浪潮网站 | 农夫在线精品视频免费观看| 欧美搞黄网站| 欧美激情视频一区二区三区免费| 欧美激情五月| 亚洲伦理一区| 亚洲午夜视频在线观看| 亚洲欧美日韩国产综合精品二区| 亚洲欧美日本在线| 久久精品国产久精国产思思| 麻豆国产精品777777在线| 欧美精品久久99久久在免费线| 国产精品久久国产精品99gif| 国产视频一区免费看| 欧美aⅴ99久久黑人专区| 欧美日韩xxxxx| 国产精品综合视频| 黄色精品网站| 一本色道久久88综合日韩精品| 午夜日本精品| 欧美刺激性大交免费视频| 一本久道综合久久精品| 欧美与黑人午夜性猛交久久久| 欧美va天堂va视频va在线| 欧美三区美女| 亚洲黄色成人网| 性感少妇一区| 亚洲风情亚aⅴ在线发布| 亚洲视频中文字幕| 美女啪啪无遮挡免费久久网站| 国产精品高清在线| 亚洲成人在线视频播放| 亚洲欧美日韩一区在线观看| 欧美成人精品| 亚洲永久免费精品| 美女视频黄免费的久久| 国产精品一区二区黑丝| 亚洲另类一区二区| 久久综合九色综合久99| 一区二区三区黄色| 免费观看30秒视频久久| 国产欧美一区二区三区国产幕精品| 亚洲人体1000| 亚洲美女视频|