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

隨筆 - 181  文章 - 15  trackbacks - 0
<2007年6月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用鏈接

留言簿(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 閱讀(629) 評論(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>
            欧美一区二区精品在线| 小嫩嫩精品导航| 久久精品国产久精国产爱| 在线看片欧美| 欧美一区二区私人影院日本| 一区二区国产精品| 国产亚洲第一区| 亚洲精品欧美日韩专区| 亚洲在线1234| 国产精品亚洲美女av网站| 欧美激情va永久在线播放| 欧美日一区二区在线观看| 亚洲尤物精选| 亚洲欧美激情诱惑| 亚洲精品永久免费精品| 日韩视频在线一区二区三区| 激情久久久久久久| 亚洲午夜一区二区| 99热免费精品| 最新国产成人在线观看| 欧美三级在线播放| 欧美激情一区二区三区不卡| 国产亚洲精品久久久| 日韩网站在线观看| 亚洲人成网站在线观看播放| 一区二区三区|亚洲午夜| 亚洲人成在线免费观看| 久久久久一本一区二区青青蜜月| 亚洲天堂成人在线观看| 香蕉久久一区二区不卡无毒影院 | 欧美日韩免费看| 亚洲精品国产视频| 另类亚洲自拍| 在线观看日韩www视频免费| 香蕉久久夜色精品| 亚洲欧美资源在线| 欧美国产日本高清在线| 欧美国产综合视频| 亚洲人久久久| 亚洲欧美日韩国产中文 | 亚洲黄色影院| 999在线观看精品免费不卡网站| 韩国av一区二区| 久久久亚洲国产天美传媒修理工 | 亚洲人成亚洲人成在线观看| 久久久青草青青国产亚洲免观| 一区二区三区视频免费在线观看| 欧美大片在线看| 亚洲永久在线观看| 欧美精品18+| 欧美一级免费视频| 国产在线不卡精品| 麻豆成人精品| 欧美中文在线免费| 国产在线高清精品| 久久久综合视频| 亚洲欧美视频在线观看视频| 欧美片在线观看| 麻豆亚洲精品| 国产精品久久久久天堂| 性久久久久久久久久久久| 亚洲综合色丁香婷婷六月图片| 国产伦精品一区| 亚洲毛片在线| 亚洲福利专区| 99re6这里只有精品| 欧美一区二区在线播放| 亚洲黄色在线观看| 国产精品一区免费在线观看| 久久成人精品无人区| 亚洲激情欧美| 亚洲国产欧美不卡在线观看| 久久久久久国产精品mv| 久久午夜色播影院免费高清| 亚洲欧洲日本国产| 国产老肥熟一区二区三区| 久久综合电影| 免费欧美在线视频| 亚洲欧美国产视频| 在线播放中文字幕一区| 欧美色网在线| 免费观看成人| 狠狠色综合网| 久久久久一本一区二区青青蜜月| aa日韩免费精品视频一| 毛片基地黄久久久久久天堂| 亚洲视频一二三| 性欧美xxxx视频在线观看| 久久久久高清| 国产主播在线一区| 国产精品进线69影院| 欧美va天堂| 亚洲日本成人女熟在线观看| 久久午夜激情| 在线播放视频一区| 欧美成年人视频| 亚洲国产美女精品久久久久∴| 一区二区三区毛片| 亚洲国产欧美国产综合一区| 国产一区视频在线观看免费| 欧美特黄一区| 亚洲午夜小视频| 一区二区精品| 欧美午夜视频网站| 欧美久久电影| 亚洲小说欧美另类社区| 亚洲日本在线观看| 亚洲国产精品久久人人爱蜜臀| 欧美一区国产二区| 亚洲福利国产| 欧美日韩影院| 亚洲精品孕妇| 午夜久久影院| 国产婷婷色综合av蜜臀av| 欧美日韩国产综合视频在线观看| 久久综合狠狠综合久久激情| 中文在线资源观看视频网站免费不卡| 亚洲国产精品女人久久久| 欧美黄色免费网站| 亚洲成色999久久网站| 欧美女激情福利| 亚洲啪啪91| 1769国内精品视频在线播放| 国产欧美日韩亚洲精品| 狼人天天伊人久久| 蜜桃久久av| 一本色道久久综合精品竹菊 | 亚洲性夜色噜噜噜7777| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲高清在线| 欧美激情bt| 亚洲高清不卡在线观看| 久久综合色一综合色88| 蜜臀av国产精品久久久久| 亚洲福利视频在线| 一区二区三区国产盗摄| 亚洲欧美日本视频在线观看| 久久国产一二区| 一级成人国产| 久久国产精品毛片| 欧美多人爱爱视频网站| 日韩一二三在线视频播| 午夜一级在线看亚洲| 免播放器亚洲| 久久国产黑丝| 亚洲视频播放| 久久免费视频一区| 亚洲毛片一区| 亚洲第一在线视频| 亚洲国产成人在线视频| 亚洲一区二区网站| 蜜臀av性久久久久蜜臀aⅴ| 国产精品av久久久久久麻豆网| 欧美午夜在线视频| 欧美午夜剧场| 欧美日韩在线亚洲一区蜜芽| 激情成人亚洲| 国产综合久久| 国产一区二区视频在线观看| 一本色道久久综合亚洲精品不| 欧美一级久久| 激情偷拍久久| 1024精品一区二区三区| 亚洲欧美日韩精品久久久久| 欧美激情导航| 亚洲第一在线| 亚洲欧洲在线一区| 香蕉国产精品偷在线观看不卡| 久久成人免费网| 欧美影院一区| 久久精品99国产精品酒店日本| 欧美日韩在线三级| 国产亚洲精品美女| 亚洲一区二区三区四区中文 | 亚洲电影激情视频网站| 亚洲经典在线| 亚洲精品视频在线看| 老**午夜毛片一区二区三区| 国产午夜精品全部视频播放| 国产精品99久久久久久久vr | 一区二区三区www| 亚洲国产精品久久久久| 欧美国产先锋| 亚洲精品日产精品乱码不卡| 久久久亚洲欧洲日产国码αv | 一区二区视频免费在线观看| 欧美一级欧美一级在线播放| 中文网丁香综合网| 欧美国产一区在线| 国产在线观看精品一区二区三区 | 一本色道久久综合亚洲精品不 | aⅴ色国产欧美| 亚洲精品视频二区| 免费高清在线一区| 亚洲精品在线电影| 欧美激情四色| 91久久精品一区二区别| 欧美大片免费观看| 亚洲视频在线观看免费| 在线亚洲免费视频|