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

萬(wàn)星星@豌豆莢 歡迎加入我們
一個(gè)吃軟飯的男人!!!!!我只想寫(xiě)程序####
微博:http://weibo.com/wanlianwen
posts - 172,  comments - 1253,  trackbacks - 0

存在的必是合理的,都值得我們學(xué)習(xí)。學(xué)什么不重要,重要的是有一技之長(zhǎng)。
如果你認(rèn)為MFC垃圾請(qǐng)不要繼續(xù)看。
如果你認(rèn)為文檔視圖結(jié)構(gòu)丑陋請(qǐng)不要繼續(xù)看。
如果你認(rèn)為ATL過(guò)時(shí)了請(qǐng)不要繼續(xù)看。

庖丁解牛的藝術(shù)
庖丁為文惠君解牛,分解牛體時(shí)手接觸的地方,肩靠著的地方,腳踩踏的地方,膝抵住的地方,都發(fā)出砉砉的聲響,快速進(jìn)刀時(shí)刷刷的聲音,無(wú)不像美妙的音樂(lè)旋律,符合桑林舞曲的節(jié)奏,又合于經(jīng)首樂(lè)曲的樂(lè)律。庖丁的解釋是:我所喜好的是摸索事物的規(guī)律,比起一般的技術(shù)、技巧又進(jìn)了一層。我開(kāi)始分解牛體的時(shí)候,所看見(jiàn)的沒(méi)有不是一頭整牛的。幾年之后,就不曾再看到整體的牛了。現(xiàn)在,我只用心神去接觸而不必用眼睛去觀察,眼睛的官能似乎停了下來(lái)而精神世界還在不停地運(yùn)行。最喜歡這句:以無(wú)厚入有間,恢恢乎其于游刃必有余地矣。

我的MFC經(jīng)歷
我的大學(xué)專業(yè)是軟件工程,作為一個(gè)C++開(kāi)發(fā)人員學(xué)習(xí)MFC是必然的。記得上大二的時(shí)候,有些課程和大三師哥們一起上,總能看到牛師哥們手里捧一本《深入淺出MFC》,羨慕不已。當(dāng)時(shí)數(shù)據(jù)結(jié)構(gòu)實(shí)習(xí),人家都基于Windows做,而自己只能在Console下做,十分尷尬,覺(jué)得自己很落后,現(xiàn)在想來(lái)有點(diǎn)可笑。
這里要說(shuō)的是MFC是對(duì)WIN32 API的封裝,為什么不從WIN32 API開(kāi)始學(xué)呢?很多人是這樣做,也見(jiàn)過(guò)一些人在這上面氣餒而放棄C++轉(zhuǎn)向Java。我是從MFC開(kāi)始的,當(dāng)我對(duì)MFC比較熟悉的時(shí)候,我心里就明白MFC是如何對(duì)WIN32 API封裝的,進(jìn)入MFC源碼,里面全部調(diào)用的API,自然明白了API的功能及用法。學(xué)習(xí)編程就得由簡(jiǎn)到難,對(duì)MFC深入后,WIN32 API自然淺出。
我是大三開(kāi)始接觸MFC的,當(dāng)時(shí)感覺(jué)是MFC是一個(gè)龐然大物,拿一些快速進(jìn)階之類的書(shū)籍東拼西湊學(xué)一點(diǎn)技巧,三個(gè)月后也沒(méi)有入門(mén)。VC6向?qū)傻囊粋€(gè)多文檔程序代碼比起自己寫(xiě)過(guò)的數(shù)據(jù)結(jié)構(gòu)代碼是一個(gè)天文數(shù)字,不知道如何下手。看著旁邊宿舍非計(jì)算機(jī)專業(yè)的學(xué)生用VB就能寫(xiě)一個(gè)時(shí)鐘,羨慕啊,自卑啊,氣憤之下開(kāi)始VB的學(xué)習(xí)。然而倔強(qiáng)的心里告訴自己怎么可以這樣認(rèn)輸呢?在一個(gè)星期過(guò)去后,我重新開(kāi)始了MFC的學(xué)習(xí)。MFC向?qū)Э梢陨扇N應(yīng)用工程:對(duì)話框、單文檔、多文檔。默認(rèn)的是微軟最為驕傲的多文檔,但是這個(gè)確實(shí)害人不淺。其他編程開(kāi)發(fā)環(huán)境沒(méi)有文檔視圖的概念,都是窗體、Form,這個(gè)結(jié)構(gòu)要簡(jiǎn)單不少,可以快速入門(mén),找到快感,不至于氣餒。我當(dāng)時(shí)就是從對(duì)話框開(kāi)始學(xué)習(xí)的,向?qū)傻念惐容^簡(jiǎn)單,一個(gè)App,一個(gè)Dlg。我開(kāi)始在對(duì)話框上學(xué)習(xí)各種控件,Button、Edit、ListCtrl等,終于算是Windows編程了。大概用了半年時(shí)間學(xué)習(xí)對(duì)話框,在對(duì)話框編程有一定了解的時(shí)候可以用它來(lái)做一些數(shù)據(jù)庫(kù)、Socket編程,經(jīng)典例子就是管理系統(tǒng)和聊天工具。對(duì)MFC有一些了解后開(kāi)始學(xué)習(xí)文檔視圖模型,開(kāi)始從單文檔入手,然后進(jìn)入到多文檔。文檔視圖主要是開(kāi)發(fā)企業(yè)應(yīng)用,要考慮菜單、工具欄、停靠條、文檔數(shù)據(jù)到視圖更新以及鼠標(biāo)鍵盤(pán)交互等,考慮很多消息事件處理,掌握起來(lái)確實(shí)要花不少功夫。
大四我進(jìn)入公司實(shí)習(xí),當(dāng)時(shí)以為對(duì)MFC很了解,覺(jué)得自己很了不起。當(dāng)遇到稍微深一點(diǎn)的問(wèn)題,斷點(diǎn)進(jìn)入MFC源碼的時(shí)候便手無(wú)所措,原來(lái)自己只是對(duì)MFC的輪廓有一點(diǎn)了解,并不解其內(nèi)部規(guī)律。當(dāng)時(shí)受了打擊,這使我靜下心來(lái)深入研究MFC,再一次看《深入淺出MFC》、操練各種類型應(yīng)用程序、分類學(xué)習(xí)WIN32 API、看MFC源碼(不敢說(shuō)很仔細(xì)看,至少比較細(xì)的瀏覽一邊),當(dāng)我可以進(jìn)入到MFC源碼調(diào)試的時(shí)候,我很高興,因?yàn)槲疫M(jìn)步了。當(dāng)我接觸到BCG庫(kù)和XTREME庫(kù)的時(shí)候,我都要進(jìn)入它的源代碼看,發(fā)現(xiàn)里面很多代碼和MFC源碼一樣,我想寫(xiě)庫(kù)的那些人對(duì)MFC應(yīng)該算是很了解。而后我又花了半年時(shí)間學(xué)習(xí)COM,用ATL做項(xiàng)目。
現(xiàn)在每當(dāng)我拿到一款軟件的時(shí)候,我總要用Spy++去看看它的構(gòu)造,想一下如果是自己能否做出這樣的軟件。軟件設(shè)計(jì)不是靠蠻力,而是靠技巧,懂得借力省力。軟件好比一頭牛,模塊之間的松耦合就像牛骨頭依靠筋皮肉連接一樣,當(dāng)你了解其構(gòu)造后,你看到的是每一個(gè)模塊具有什么功能,可以拿來(lái)做什么,一個(gè)軟件可以有那些模塊拼湊,彼此間如何通信。恢恢乎其于游刃必有余地矣!

文檔視圖的剝離(App平臺(tái) 文檔視圖插件)
軟件開(kāi)發(fā)講究分工合作,因?yàn)橐紤]開(kāi)發(fā)周期及市場(chǎng)。一個(gè)企業(yè)軟件有幾種業(yè)務(wù):三維瀏覽、二維數(shù)據(jù)編輯、網(wǎng)絡(luò)控制。作為企業(yè)軟件應(yīng)該有統(tǒng)一的框架,像.NET集成VB.NET、C#、VC.NET一樣,這樣就需要把框架和文檔視圖分離,在一個(gè)框架上,不同開(kāi)發(fā)部門(mén)開(kāi)發(fā)不同應(yīng)用最后集成到統(tǒng)一應(yīng)用框架。
首先來(lái)看看用向?qū)傻囊粋€(gè)多文檔程序,主框架和文檔視圖子框架的聯(lián)系其實(shí)只有很少代碼:

CMultiDocTemplate * ?pDocTemplate;
pDocTemplate?
= ? new ?CMultiDocTemplate(
?IDR_TESTTYPE,
?RUNTIME_CLASS(CTestDoc),
?RUNTIME_CLASS(CChildFrame),?
// ?custom?MDI?child?frame
?RUNTIME_CLASS(CTestView));
AddDocTemplate(pDocTemplate);

我們把這一段代碼刪除,并且刪除關(guān)聯(lián)的CTestDoc、CChildFrame、CTestView類。這時(shí)候我們得到一個(gè)空框架的應(yīng)用程序。
很明顯框架需要的只是文檔視圖子框架運(yùn)行時(shí)的類信息,我們的文檔視圖插件需要遵守這樣一個(gè)規(guī)則,于是我們定義一個(gè)插件接口:

interface ?IDocView?:?IUnknown
{
?[id(
1 ),?helpstring( " method?GetDocCls " ),?hidden]?HRESULT?GetDocCls([ out ,?retval] long * ?pDocCls);
?[id(
2 ),?helpstring( " method?GetViewCls " ),?hidden]?HRESULT?GetViewCls([ out ,?retval] long * ?pViewCls);
?[id(
3 ),?helpstring( " method?GetChldFrm " ),?hidden]?HRESULT?GetChldFrm([ out ,?retval] long * ?pChldFrm);

為了插件查找以及管理,需要一個(gè)類別,所有支持的插件都屬于這個(gè)類別:

BEGIN_CATEGORY_MAP(CManager)
?IMPLEMENTED_CATEGORY(CATID_DocViewCategory)
END_CATEGORY_MAP()

下面就可以實(shí)現(xiàn)文檔視圖插件了,生產(chǎn)一個(gè)ATL項(xiàng)目,添加文檔視圖子框架類,添加一個(gè)組件Manager,實(shí)現(xiàn)插件接口:

STDMETHODIMP?CManager::GetDocCls( long * ?pDocCls)
{
?
* pDocCls? = ?( long )RUNTIME_CLASS(CMyDocument);
?
return ?S_OK;
}


STDMETHODIMP?CManager::GetViewCls(
long * ?pViewCls)
{
?
* pViewCls? = ?( long )RUNTIME_CLASS(CMyFormView);
?
return ?S_OK;
}


STDMETHODIMP?CManager::GetChldFrm(
long * ?pChldFrm)
{
?
* pChldFrm? = ?( long )RUNTIME_CLASS(CChildFrame);
?
return ?S_OK;
}


這樣就主框架就可以遍歷組件類別下面所有文檔視圖插件,通過(guò)

pDocTemplate? = ? new ?CMultiDocTemplate(
??IDR_MAINFRAME,
??(CRuntimeClass
* )nDocCls,
??(CRuntimeClass
* )nChldFrm,
??(CRuntimeClass
* )nViewCls);
AddDocTemplate(pDocTemplate);

加入到主框架。
這里有一個(gè)問(wèn)題:一個(gè)應(yīng)用可能有20種文檔視圖,是不是應(yīng)用一起來(lái)就查找所有支持插件并加載呢?從內(nèi)存消耗和人的習(xí)慣思考來(lái)看都不應(yīng)該是這樣的。可能一個(gè)用戶打開(kāi)應(yīng)用只編輯一類文檔,這時(shí)候其他19種文檔就不需要加載。這就需要一點(diǎn)技巧來(lái)處理這類問(wèn)題。
簡(jiǎn)單做法可以這樣處理:應(yīng)用框架加載的時(shí)候便利所有插件,這時(shí)候不加載。當(dāng)新建文件的時(shí)候查找新建的插件是否已經(jīng)加載,如果沒(méi)有加載則先加載。打開(kāi)文件的時(shí)候做類似操作。有如下三個(gè)函數(shù)完成操作:

// ?遍歷所有文檔插件,不加載
void ?EnumAllDocViews();
// ?根據(jù)插件CLSID加載文檔視圖插件
CMultiDocTemplate * ?AddDocViewByCLSID(CLSID?clsid);
// ?根據(jù)CLSID查找插件是否加載
DocMgrData?FindDocByCLSID(CLSID?clsid);

插件管理之插件類別:

打開(kāi)界面:

打開(kāi)文檔:

代碼下載。里面有說(shuō)明文件。

posted on 2006-07-06 10:06 萬(wàn)連文 閱讀(2472) 評(píng)論(11)  編輯 收藏 引用 所屬分類: MFC

FeedBack:
# re: 庖丁解MFC--(一)文檔視圖與應(yīng)用框架剝離
2006-07-06 11:48 | LOGOS
呵呵.你的內(nèi)容不錯(cuò).
不過(guò)我發(fā)現(xiàn)留言比較少,所以給你留一個(gè),希望你能堅(jiān)持寫(xiě)blog,不然我就沒(méi)得欣賞了.  回復(fù)  更多評(píng)論
  
# re: 庖丁解MFC--(一)文檔視圖與應(yīng)用框架剝離
2006-07-06 12:47 | 問(wèn)題男
以下評(píng)論針對(duì)文中的編程感悟

感悟給自己看,沒(méi)什么意義,給別人看,沒(méi)什么幫助

在此推薦一網(wǎng)上流傳的短文,《Teach Yourself Programming in Ten Years》(http://www.norvig.com/21-days.html),簡(jiǎn)單深刻的描述了如何提高編程技能

除了保持興趣地學(xué)習(xí)至少十年,就沒(méi)有其他路可走了,中間的過(guò)程、方法真的沒(méi)有那么重要,積累到一定階段,自然會(huì)感覺(jué)越來(lái)越通透

btw:

在下絕非信口開(kāi)河,95-06,今年已是我學(xué)習(xí)編程的第十一個(gè)年頭了,所以,對(duì)此我感受頗深

另,文中提到mfc和win32sdk先學(xué)what的問(wèn)題,我個(gè)人與樓主看法不同,我認(rèn)為如果條件允許,先難后易比先易后難要好得多,想當(dāng)初(95年),為了修改游戲的代碼(實(shí)現(xiàn)無(wú)敵狀)自學(xué)了x86匯編(也是我學(xué)的第一門(mén)編程語(yǔ)言),之后學(xué)習(xí)c時(shí),指針什么的自然就融會(huì)貫通了,除了編程語(yǔ)言,對(duì)操作系統(tǒng)的理解也能上升到n個(gè)層次(如果學(xué)習(xí)硬件知識(shí)則更上層樓)

看樓主字里行間透露出很高的水平,故有此冒昧進(jìn)言,不當(dāng)之處,還望一笑了之  回復(fù)  更多評(píng)論
  
# re: 庖丁解MFC--(一)文檔視圖與應(yīng)用框架剝離
2006-07-06 13:30 | 萬(wàn)連文
部分贊成你的觀點(diǎn)。
我想我十年后能看到現(xiàn)在的思想,所以留下,凡走過(guò)必留下足跡。
由于我本身是2002年才才開(kāi)始接觸計(jì)算機(jī),第一門(mén)語(yǔ)言是C++,由于沒(méi)有C的基礎(chǔ)幾乎廢了。我2002年過(guò)年沒(méi)有回家一個(gè)人在學(xué)校寢室學(xué)習(xí)C語(yǔ)言,還記得當(dāng)時(shí)手凍的發(fā)腫。就是那之后我才可以在編程上穩(wěn)住。中國(guó)有中庸思想,學(xué)習(xí)也應(yīng)該如此,選擇中間然后上下開(kāi)壑。我們?cè)诓煌甏_(kāi)始接觸計(jì)算機(jī),不敢想象現(xiàn)在的人從匯編接觸編程會(huì)是什么結(jié)果,牛人除外。我沒(méi)有學(xué)過(guò)匯編,也曾經(jīng)拿起來(lái)過(guò),在VC6里面嘗一下,但是由于工作性質(zhì)緣由始終沒(méi)有仔細(xì)研究。
ps:謝謝你也留下你的學(xué)習(xí)感悟,畢竟你是編程前輩。  回復(fù)  更多評(píng)論
  
# re: 庖丁解MFC--(一)文檔視圖與應(yīng)用框架剝離
2006-07-06 18:01 | flyingxu
這篇文章,是為了強(qiáng)調(diào)doc view與frame的剝離,還是plugin的應(yīng)用?
doc view與frame的剝離我在實(shí)際應(yīng)用中,看不到太大的優(yōu)勢(shì),除了加載時(shí)資源的占用
plugin在mfc中的應(yīng)用,我倒是蠻感興趣的
  回復(fù)  更多評(píng)論
  
# re: 庖丁解MFC--(一)文檔視圖與應(yīng)用框架剝離
2006-07-06 18:12 | 萬(wàn)連文
未完待續(xù),用plugin技術(shù)剝離MFC框架,用APC集成剝離體到VBA,實(shí)現(xiàn)MFC ATL VBA結(jié)合。  回復(fù)  更多評(píng)論
  
# re: 庖丁解MFC--(一)文檔視圖與應(yīng)用框架剝離
2006-07-06 18:34 | 旁觀者
我發(fā)現(xiàn)你的文字表達(dá)能力很不錯(cuò),希望你能夠有精彩的延續(xù),同時(shí)也希望你能夠日漸成熟,軟件開(kāi)發(fā)需要有持久的耐力與迎接挑戰(zhàn)的信心,每天我都會(huì)關(guān)注你的進(jìn)展。另外,一定要處理好工作、生活與愛(ài)情之間的關(guān)系……  回復(fù)  更多評(píng)論
  
# re: 庖丁解MFC--(一)文檔視圖與應(yīng)用框架剝離
2006-07-09 01:46 | flyingxu
@萬(wàn)連文
那我慢慢等,等你寫(xiě)完
隨便問(wèn)一下,你對(duì)插件/主程序之間的消息映射/響應(yīng)有沒(méi)有什么要寫(xiě)的?我比較疑惑  回復(fù)  更多評(píng)論
  
# re: 庖丁解MFC--(一)文檔視圖與應(yīng)用框架剝離
2006-07-09 11:25 | 萬(wàn)連文
主框架所起的作用無(wú)外乎提供事件、命令、通知消息,只要按照Window消息機(jī)制制定接口就可以了,框架管理插件,通過(guò)接口傳遞消息驅(qū)動(dòng)插件。  回復(fù)  更多評(píng)論
  
# re: 庖丁解MFC--(一)文檔視圖與應(yīng)用框架剝離
2006-07-12 16:51 | Arcrest
文學(xué)表達(dá)很好,
侯捷的書(shū)籍受歡迎的原因除了深入淺處的分析外,就是文筆
樓主的技術(shù)鉆研精神也值得偶們學(xué)習(xí)
  回復(fù)  更多評(píng)論
  
# re: 庖丁解MFC--(一)文檔視圖與應(yīng)用框架剝離[未登錄](méi)
2008-03-10 10:28 | 風(fēng)語(yǔ)者
感謝提供源碼可以研究  回復(fù)  更多評(píng)論
  
# re: 庖丁解MFC--(一)文檔視圖與應(yīng)用框架剝離
2008-10-16 11:21 | rex
確實(shí)很不錯(cuò)!向你多多學(xué)習(xí)1  回復(fù)  更多評(píng)論
  
簡(jiǎn)歷下載
聯(lián)系我

<2006年11月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用鏈接

留言簿(66)

隨筆分類

隨筆檔案

相冊(cè)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            影音先锋日韩资源| 欧美高清hd18日本| 亚洲国产精品一区二区www在线 | 在线视频一区二区| 99国产麻豆精品| 在线视频亚洲| 久久久999精品免费| 美日韩精品免费| 欧美激情免费观看| 国产精品免费小视频| 国产日韩精品久久| 韩日在线一区| 99精品久久久| 欧美在线综合视频| 欧美成人福利视频| 一本色道久久综合| 欧美在线观看一区二区| 欧美成人一区二区三区| 国产精品久久777777毛茸茸| 永久91嫩草亚洲精品人人| 亚洲欧洲免费视频| 一本色道久久综合精品竹菊| 性8sex亚洲区入口| 免费亚洲一区二区| 日韩亚洲视频在线| 久久精品国产亚洲一区二区三区| 欧美激情女人20p| 黄页网站一区| 亚洲自拍都市欧美小说| 一区二区三区欧美亚洲| 久久久久欧美| 欧美精品麻豆| 国产日韩精品久久久| 最新国产成人在线观看| 小黄鸭精品aⅴ导航网站入口| 久久综合伊人77777| 一区二区三区国产在线| 美女精品视频一区| 国产伦精品一区二区三区在线观看| 亚洲国产精品传媒在线观看| 香蕉国产精品偷在线观看不卡| 亚洲欧洲一区二区天堂久久| 欧美一区二区三区四区高清| 欧美高清在线视频| 宅男66日本亚洲欧美视频| 久热精品视频在线免费观看| 国产日本精品| 亚洲一区日韩在线| 91久久午夜| 久久天堂国产精品| 韩国在线一区| 久久人人爽人人爽| 久久精品国产第一区二区三区| 国产精品综合| 午夜视频在线观看一区| 一级成人国产| 欧美三级电影精品| 亚洲图片你懂的| 亚洲毛片av| 欧美人与性动交cc0o| 最近中文字幕日韩精品| 欧美激情视频给我| 欧美国产激情| 宅男噜噜噜66一区二区| 亚洲精品四区| 欧美日韩网址| 亚洲欧美韩国| 午夜精品免费视频| 国产在线观看91精品一区| 久久久女女女女999久久| 久久久久国产精品午夜一区| 在线色欧美三级视频| 亚洲激情影院| 国产精品久久久99| 久久精品中文字幕一区二区三区| 香蕉av777xxx色综合一区| 国产精品日韩久久久久| 欧美一区亚洲一区| 久久久蜜桃一区二区人| 亚洲靠逼com| 一本色道久久88综合日韩精品| 国产精品乱子乱xxxx| 久久精品在线观看| 欧美大片在线观看一区二区| 一本色道久久综合精品竹菊| 亚洲男人av电影| 亚洲国产高清自拍| 日韩午夜激情| 国产亚洲精品久久久久婷婷瑜伽| 久久久久免费| 欧美大片一区二区| 久久成人资源| 欧美激情二区三区| 久久动漫亚洲| 久久中文欧美| 亚洲午夜日本在线观看| 久久成人国产| 一区二区三区四区五区精品| 欧美一区二区三区精品| 亚洲免费大片| 久久九九精品| 亚洲欧美国产77777| 久久人人爽爽爽人久久久| 亚洲欧美日韩第一区| 久久精品国产999大香线蕉| 亚洲国产成人久久综合一区| 国产精品久久久久久超碰| 蜜臀久久99精品久久久画质超高清| 欧美日本高清一区| 麻豆精品国产91久久久久久| 欧美视频在线免费看| 欧美jjzz| 国产精品日韩欧美一区| 亚洲欧洲在线播放| 亚洲第一精品夜夜躁人人躁 | 午夜宅男欧美| 欧美国产日韩一区| 裸体歌舞表演一区二区| 国产乱码精品一区二区三| 亚洲国产精品久久精品怡红院| 亚洲在线观看视频网站| 99亚洲精品| 欧美高清在线视频| 欧美国产成人精品| 激情国产一区二区| 欧美一区二区三区久久精品茉莉花| 99热免费精品在线观看| 美腿丝袜亚洲色图| 久久综合亚洲社区| 国产精品自在线| 亚洲视频在线观看| 亚洲作爱视频| 欧美大片免费观看| 91久久国产综合久久| 亚洲黄色三级| 久久婷婷久久| 久久人人爽爽爽人久久久| 国产日产欧美a一级在线| 亚洲一区影音先锋| 欧美一区二区三区四区夜夜大片 | 尤物网精品视频| 久久久久久日产精品| 老色鬼久久亚洲一区二区| 国语自产精品视频在线看8查询8| 欧美在线观看日本一区| 久久精品视频在线观看| 国产午夜精品美女毛片视频| 欧美在线视频二区| 久久婷婷色综合| 亚洲第一偷拍| 另类春色校园亚洲| 亚洲国产欧美一区二区三区同亚洲 | 亚洲一区二区三区中文字幕在线| 宅男在线国产精品| 国产精品v欧美精品∨日韩| 亚洲视频免费在线观看| 欧美亚洲日本国产| 国产一区二区三区日韩| 久久另类ts人妖一区二区| 久久免费国产精品| 亚洲黄色免费| 欧美无砖砖区免费| 欧美中文字幕在线| 美女主播一区| 亚洲视频999| 久久夜色精品国产亚洲aⅴ| 日韩亚洲欧美精品| 国产精品久久一卡二卡| 欧美一级在线播放| 欧美国内亚洲| 亚洲国产精品专区久久| 欧美日韩国产va另类| 亚洲综合精品四区| 美女视频黄a大片欧美| 在线视频一区二区| 精品1区2区3区4区| 欧美日韩成人一区二区| 亚洲欧美一区二区三区久久| 蜜臀99久久精品久久久久久软件 | 欧美三级资源在线| 午夜在线一区二区| 91久久精品一区二区三区| 亚洲欧洲99久久| 亚洲国产精品一区二区www| 国产精品扒开腿做爽爽爽软件 | 亚洲激情在线观看| 欧美自拍偷拍午夜视频| 亚洲精品孕妇| 黄色精品一二区| 欧美特黄一级| 免费观看在线综合色| 午夜精品一区二区三区电影天堂 | 亚洲小说欧美另类婷婷| 在线精品亚洲| 国产欧美日韩另类视频免费观看| 免费成人美女女| 久久久久久久一区| 欧美一区二区三区免费在线看| 在线一区二区三区做爰视频网站 | 99re66热这里只有精品3直播|