锘??xml version="1.0" encoding="utf-8" standalone="yes"?>伊人精品视频,日韩午夜电影在线观看,久久久欧美精品sm网站http://www.shnenglu.com/ivenher/category/3330.htmlzh-cnWed, 21 May 2008 13:30:05 GMTWed, 21 May 2008 13:30:05 GMT60娣卞叆嫻呭嚭MFC鏂囨。/瑙嗗浘鏋舵瀯涔嬬浉浜掑叧緋諱簩錛堣漿錛?/title><link>http://www.shnenglu.com/ivenher/archive/2007/01/21/17860.html</link><dc:creator>鐖遍キ鐩?/dc:creator><author>鐖遍キ鐩?/author><pubDate>Sun, 21 Jan 2007 07:04:00 GMT</pubDate><guid>http://www.shnenglu.com/ivenher/archive/2007/01/21/17860.html</guid><wfw:comment>http://www.shnenglu.com/ivenher/comments/17860.html</wfw:comment><comments>http://www.shnenglu.com/ivenher/archive/2007/01/21/17860.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivenher/comments/commentRss/17860.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivenher/services/trackbacks/17860.html</trackback:ping><description><![CDATA[<div class="hvzpftn" id=contitle twffan="done"> <h1>娣卞叆嫻呭嚭MFC鏂囨。/瑙嗗浘鏋舵瀯涔嬬浉浜掑叧緋?/h1> </div> <div class="hvzpftn" id=conauthor twffan="done"><span twffan="done">2006-03-21 14:20 </span><span twffan="done">浣滆咃細(xì) 瀹?huà)瀹濆?</span><span twffan="done">鍑哄錛?澶╂瀬寮鍙?</span><span twffan="done">璐d換緙栬緫錛?a title=鍚戞湰緙栬緫鎻愰棶 target=_blank>鏂硅垷</a></span> </div> <div id="hvzpftn" class=topadbg twffan="done"><span id=ad9 twffan="done"> <div class="hvzpftn" id=ad9ad twffan="done"></div> </span></div> <div class="hvzpftn" id=conneirong twffan="done"><span id=ad3 twffan="done"></span> <div id="hvzpftn" class=guanggao twffan="done"><span id=contentAdv twffan="done"><iframe src="http://media.yesky.com/adjs/iframe-column/dell-240200.htm" frameBorder=0 width=240 scrolling=no height=200> </iframe></span></div> 銆銆2. 娑堟伅嫻佸姩鏈哄埗<br><br>銆銆鍦ㄥ熀浜?鏂囨。/瑙嗗浘"鏋舵瀯鐨凪FC紼嬪簭涓紝鐢ㄦ埛娑堟伅錛堥紶鏍囥侀敭鐩樿緭鍏ョ瓑錛変細(xì)鍏堝彂寰瑙嗗浘錛屽鏋滆鍥炬湭澶勭悊鍒欎細(xì)鍙戝線妗嗘灦紿楀彛銆傛墍浠ワ紝涓鑸潵璇達(dá)紝娑堟伅鏄犲皠瀹滃畾涔夊湪瑙嗗浘涓傚彟澶栵紝濡傛灉涓涓簲鐢ㄥ悓鏃舵嫢鏈夊涓鍥捐屽綋鍓嶆椿鍔ㄨ鍥炬病鏈夊娑堟伅榪涜澶勭悊鍒欐秷鎭篃浼?xì)鍙戝線妗嗘灦紿楀彛銆?br><br>銆銆涓嬮潰鎴戜滑鏉ョ湅瀹炰緥錛屾垜浠埄鐢╒isual C++鍚戝鍒涘緩涓涓崟鏂囨。/瑙嗗浘鏋舵瀯鐨凪FC紼嬪簭錛屽湪鍏朵腑澧炲姞涓涓彍鍗曢」涓?鑷畾涔?錛圛D涓篒DM_SELF錛屽鍥?.4錛夈?br><br> <table width="90%" align=center border=0> <tbody> <tr> <td> <div align=center twffan="done"><img src="http://dev.yesky.com/imagelist/06/03/un43z6389e79.jpg" border=0 twffan="done"><br>鍥?.4 鍚?鑷畾涔?鑿滃崟鐨勫崟鏂囨。/瑙嗗浘鏋舵瀯MFC紼嬪簭</div> </td> </tr> </tbody> </table> <br>銆銆鎴戜滑鍒嗗埆鍦ㄨ鍥劇被鍜屾鏋剁獥鍙g被涓負(fù)"鑷畾涔?鑿滃崟娣誨姞娑堟伅鏄犲皠錛屼唬鐮佸涓嬶細(xì)<br><br> <table borderColor=#cccccc width="90%" align=center bgColor=#e3e3e3 border=1> <tbody> <tr> <td>//瑙嗗浘涓殑娑堟伅鏄犲皠鍜屽鐞嗗嚱鏁?br>BEGIN_MESSAGE_MAP(CExampleView, CView)<br>銆//{{AFX_MSG_MAP(CExampleView)<br>銆銆ON_COMMAND(IDM_SELF, OnSelf)<br>銆//}}AFX_MSG_MAP<br>END_MESSAGE_MAP() <br>void CExampleView::OnSelf() <br>{<br>銆// TODO: Add your command handler code here<br>銆AfxMessageBox("娑堟伅鍦ㄨ鍥句腑澶勭悊");<br>}<br><br>//妗嗘灦紿楀彛涓殑娑堟伅鏄犲皠鍜屽鐞嗗嚱鏁?br>BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)<br>銆//{{AFX_MSG_MAP(CMainFrame)<br>銆銆ON_COMMAND(IDM_SELF, OnSelf)<br>銆//}}AFX_MSG_MAP<br>END_MESSAGE_MAP()<br><br>void CMainFrame::OnSelf() <br>{<br>銆// TODO: Add your command handler code here<br>銆AfxMessageBox("娑堟伅鍦ㄦ鏋剁獥鍙d腑澶勭悊");<br>}</td> </tr> </tbody> </table> <br>銆銆榪欐椂鍊欙紝鎴戜滑鍗曞嚮"鑷畾涔?鑿滃崟錛屽脊鍑哄璇濇鏄劇ず"娑堟伅鍦ㄨ鍥句腑澶勭悊"錛涘鏋滄垜浠垹闄ゆ鏋剁獥鍙d腑鐨勬秷鎭槧灝勶紝鍐嶅崟鍑?鑷畾涔?鑿滃崟錛屽脊鍑哄璇濇涔熸樉紺?娑堟伅鍦ㄨ鍥句腑澶勭悊"錛涗絾鏄紝鑻ユ垜浠皢瑙嗗浘涓殑娑堟伅鏄犲皠鍒犻櫎浜?jiǎn)锛尀兗?xì)鏄劇ず"娑堟伅鍦ㄦ鏋剁獥鍙d腑澶勭悊"錛佽繖楠岃瘉浜?jiǎn)鎴戜滑鍏充簬娑堟伅澶勭悊椤哄簭璁簶q扮殑姝g‘鎬с?br><br>銆銆嬈叉繁鍏ョ悊瑙f秷鎭祦鍔ㄨ繃紼嬶紝榪橀渶璁ょ湡鍒嗘瀽CFrameWnd::OnCmdMsg銆丆View::OnCmdMsg鍑芥暟鐨勬簮浠g爜錛?br><br> <table borderColor=#cccccc width="90%" align=center bgColor=#e3e3e3 border=1> <tbody> <tr> <td>BOOL CFrameWnd::OnCmdMsg(UINT nID, int nCode, void* pExtra,<br>AFX_CMDHANDLERINFO* pHandlerInfo)<br>{<br>銆// pump through current view FIRST<br>銆CView* pView = GetActiveView();<br>銆if (pView != NULL && pView->OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))<br>銆銆return TRUE;<br><br>銆// then pump through frame<br>銆if (CWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))<br>銆銆return TRUE;<br><br>銆// last but not least, pump through app<br>銆CWinApp* pApp = AfxGetApp();<br>銆if (pApp != NULL && pApp->OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))<br>銆銆return TRUE;<br><br>銆return FALSE;<br>}<br><br>BOOL CView::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)<br>{<br>銆// first pump through pane<br>銆if (CWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))<br>銆銆return TRUE;<br><br>銆// then pump through document<br>銆BOOL bHandled = FALSE;<br>銆if (m_pDocument != NULL)<br>銆{<br>銆銆// special state for saving view before routing to document<br>銆銆_AFX_THREAD_STATE* pThreadState = AfxGetThreadState();<br>銆銆CView* pOldRoutingView = pThreadState->m_pRoutingView;<br>銆銆pThreadState->m_pRoutingView = this;<br>銆銆bHandled = m_pDocument->OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);<br>銆銆pThreadState->m_pRoutingView = pOldRoutingView;<br>銆}<br><br>銆return bHandled;<br>}</td> </tr> </tbody> </table> <br>銆銆鍒嗘瀽涓婅堪婧愪唬鐮佸彲鐭ワ紝W(xué)M_COMMAND娑堟伅鐨勫疄闄呮祦鍔ㄩ『搴忔瘮鍓嶆枃鍙欒堪鐨?鍏堣鍥撅紝鍚庢鏋剁獥鍙?瑕佸鏉傚緱澶氾紝鏂囨。鍜屽簲鐢ㄧ▼搴忛兘鍙備笌浜?jiǎn)娑堟伅鐨勫鐞啒q囩▼銆傚鏋滄垜浠啀涓烘枃妗e拰搴旂敤娣誨姞娑堟伅鏄犲皠鍜屽鐞嗗嚱鏁幫細(xì)<br><br> <table borderColor=#cccccc width="90%" align=center bgColor=#e3e3e3 border=1> <tbody> <tr> <td>//鏂囨。鐨勬秷鎭槧灝勫拰澶勭悊鍑芥暟<br>BEGIN_MESSAGE_MAP(CExampleDoc, CDocument)<br>銆//{{AFX_MSG_MAP(CExampleDoc)<br>銆銆ON_COMMAND(IDM_SELF, OnSelf)<br>銆//}}AFX_MSG_MAP<br>END_MESSAGE_MAP()<br><br>void CExampleDoc::OnSelf() <br>{<br>銆// TODO: Add your command handler code here<br>銆AfxMessageBox("娑堟伅鍦ㄦ枃妗d腑澶勭悊");<br>}<br><br>//搴旂敤鐨勬秷鎭槧灝勫拰澶勭悊鍑芥暟<br>BEGIN_MESSAGE_MAP(CExampleApp, CWinApp)<br>//{{AFX_MSG_MAP(CExampleApp) <br>ON_COMMAND(IDM_SELF, OnSelf)<br>//}}AFX_MSG_MAP<br>END_MESSAGE_MAP()<br><br>void CExampleApp::OnSelf() <br>{<br>銆// TODO: Add your command handler code here<br>銆AfxMessageBox("娑堟伅鍦ㄥ簲鐢ㄤ腑澶勭悊");<br>}</td> </tr> </tbody> </table> <br>銆銆灞忚斀鎺夎鍥懼拰妗嗘灦紿楀彛鐨勬秷鎭槧灝勶紝鍐嶅崟鍑?鑷畾涔?鑿滃崟錛屽脊鍑哄璇濇鏄劇ず"娑堟伅鍦ㄦ枃妗d腑澶勭悊"錛涘啀灞忚斀鎺夋枃妗d腑鐨勬秷鎭槧灝勶紝寮瑰嚭瀵硅瘽妗嗘樉紺?娑堟伅鍦ㄥ簲鐢ㄤ腑澶勭悊"錛佺敱姝ゅ彲瑙侊紝瀹屾暣鐨刉M_COMMAND娑堟伅鐨勫鐞嗛『搴忔槸"瑙嗗浘鈥曗曟枃妗b曗曟鏋剁獥鍙b曗曞簲鐢?錛?br><br>銆銆瀹為檯涓婏紝鍏充簬MFC鐨勬秷鎭祦鍔ㄦ槸涓涓緢澶嶆潅鐨勮棰橈紝闄蜂簬綃囧箙鐨勫師鍥狅紝鎴戜滑涓嶅彲鑳藉鍏惰繘琛屾洿璇﹀敖鐨勪粙緇嶏紝璇昏呭彲鑷瀵繪壘鐩稿叧璧勬枡銆? <div id="hvzpftn" class=right twffan="done">鍏?欏點(diǎn)?<a class=page target=_self><font face=Webdings>9</font></a><a class=page target=_self><font face=Webdings>7</font></a><a class=page target=_self><strong>1</strong></a><a class=page target=_self><font color=#666666><strong>2</strong></font></a></div> </div> <img src ="http://www.shnenglu.com/ivenher/aggbug/17860.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2007-01-21 15:04 <a href="http://www.shnenglu.com/ivenher/archive/2007/01/21/17860.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>VC涓嚜鍔ㄦ敼鍙樻帶浠朵綅緗拰澶у皬鐨勫璇濇綾伙紙杞級(jí)http://www.shnenglu.com/ivenher/archive/2007/01/21/17858.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Sun, 21 Jan 2007 06:25:00 GMThttp://www.shnenglu.com/ivenher/archive/2007/01/21/17858.htmlhttp://www.shnenglu.com/ivenher/comments/17858.htmlhttp://www.shnenglu.com/ivenher/archive/2007/01/21/17858.html#Feedback0http://www.shnenglu.com/ivenher/comments/commentRss/17858.htmlhttp://www.shnenglu.com/ivenher/services/trackbacks/17858.html鎴戠敤VC鍐欑殑涓涓彲浠ヨ嚜鍔ㄦ敼鍙樻帶浠朵綅緗拰澶у皬鐨勫璇濇綾匯備粠榪欎釜綾葷戶鎵跨殑瀵硅瘽妗嗙被錛屽彧瑕佸湪OnInitDialog()閲屽啓鍑犺綆鍗曠殑浠g爜錛屽璇濇涓婄殑鎺т歡灝變細(xì)闅忕潃瀵硅瘽妗嗗ぇ灝忕殑鏀瑰彉鑰屾敼鍙樿嚜宸辯殑浣嶇疆鍜屽ぇ灝忋?/p>

 

        鍦ㄧ敤VC寮鍙戝簲鐢ㄧ▼搴忔椂錛岀粡甯鎬細(xì)瑕佸仛涓浜涘彲浠ユ敼鍙樺ぇ灝忕殑瀵硅瘽妗嗭紝鑰岃繖涓椂鍊欏氨瑕佹眰瀵硅瘽妗嗕笂鐨勬帶浠朵細(xì)闅忕潃瀵硅瘽妗嗗ぇ灝忕殑鏀瑰彉鑰屾敼鍙樿嚜宸辯殑浣嶇疆鍜屽ぇ灝忋傚鏋滄帶浠舵瘮杈冨皯錛岄偅鍙互鍦ㄥ璇濇鐨凮nSize()浜嬩歡閲岄潰娣誨姞浠g爜錛岄氳繃璁$畻鏉ヨ皟鏁村悇涓帶浠剁殑浣嶇疆鍜屽ぇ灝忥紱浣嗘槸錛屽鏋滃璇濇涓婄殑鎺т歡姣旇緝澶氱殑璇濓紝閭h繖灝嗘槸涓浠墮潪甯哥棝鑻︾殑浜嬫儏錛佽鏄▼搴忎腑鍙堟湁寰堝鍙互鏀瑰彉澶у皬鐨勫璇濇錛岄偅涓涓竴涓殑OnSize()鍐欎笅鏉ワ紝閭d細(xì)浣跨▼搴忓憳宕╂簝鐨勶紒
        涓轟簡(jiǎn)瑙e喅榪欎釜闂錛屾垜鍐欎簡(jiǎn)涓涓嚜鍔ㄦ敼鍙樻帶浠朵綅緗拰澶у皬鐨勫璇濇綾籆lxDialog銆備粠榪欎釜綾葷戶鎵跨殑瀵硅瘽妗嗙被錛屽彧瑕佸湪OnInitDialog()閲屽鎺т歡鍋氫竴浜涚畝鍗曠殑璁劇疆錛屽璇濇涓婄殑鎺т歡灝變細(xì)闅忕潃瀵硅瘽妗嗗ぇ灝忕殑鏀瑰彉鑰屾敼鍙樿嚜宸辯殑浣嶇疆鍜屽ぇ灝忋?br>        涓轟簡(jiǎn)淇濆瓨鎺т歡淇℃伅錛屾垜瀹氫箟浜?jiǎn)涓涓粨鏋勶細(xì)

typedef struct _dlgControlTag
{
    int iId;  //  鎺т歡ID
    int iFlag;  //  鏍囧織錛岃〃紺烘庢牱鏀瑰彉鎺т歡鐨勪綅緗垨鑰呭ぇ灝?br>    int iPercent;  //  鏀瑰彉鍊煎崰瀵硅瘽妗嗘敼鍙樺肩殑鐧懼垎姣?br>} DLGCTLINFO, *PDLGCTLINFO;

        榪欓噷瑕佸緇撴瀯涓殑iFlag鍜宨Percent榪涜涓浜涜В閲娿傚叾涓璱Flag鏄笅闈㈢殑鏋氫婦鍊鹼細(xì)

enum
{
    MOVEX = 0,  //  鎺т歡鍦╔鏂瑰悜錛堝乏鍙籌級(jí)縐誨姩
    MOVEY,  //  鎺т歡鍦╕鏂瑰悜錛堜笂涓嬶級(jí)縐誨姩
    MOVEXY,  //  鎺т歡鍦╔鏂瑰悜鍜孻鏂瑰悜鍚屾椂縐誨姩
    ELASTICX,  //  鎺т歡鍦╔鏂瑰悜錛堝搴︼級(jí)鏀瑰彉澶у皬
    ELASTICY,  //  鎺т歡鍦╕鏂瑰悜鏀癸紙楂樺害錛夋敼鍙樺ぇ灝?/font>
    ELASTICXY  //  鎺т歡鍦╔鏂瑰悜鍜孻鏂瑰悜鍚屾椂鏀瑰彉澶у皬
};

        iPercent琛ㄧず鏀瑰彉鍊煎崰瀵硅瘽妗嗘敼鍙樺肩殑鐧懼垎姣斻備緥濡傦紝涓涓帶浠剁殑iPercent鍊間負(fù)100錛宨Flag鍊間負(fù)MOVEX錛岄偅涔堝綋瀵硅瘽妗嗙殑瀹藉害鏀瑰彉100涓崟浣嶇殑鏃跺欙紝榪欎釜鎺т歡灝卞湪X鏂瑰悜縐誨姩100涓崟浣嶏紱鍙堝錛屼竴涓帶浠剁殑iPercent鍊間負(fù)100錛宨Flag鍊間負(fù)ELASTICXY錛岄偅涔堝綋瀵硅瘽妗嗙殑瀹藉害鍜岄珮搴﹀垎鍒敼鍙?00涓崟浣嶇殑鏃跺欙紝鎺т歡鐨勯珮搴﹀拰瀹藉害涔熺浉搴旂殑鏀瑰彉100涓崟浣嶃?br>        涓嬮潰鏄緗帶浠朵俊鎭殑鍑芥暟錛?/p>

BOOL SetControlProperty(PDLGCTLINFO lp, int nElements);

        浣跨敤璧鋒潵闈炲父綆鍗曪紝鍦ㄥ璇濇鐨凮nInitDialog()鍑芥暟閲岄潰娣誨姞綾諱技涓嬮潰鐨勪唬鐮佸氨琛屼簡(jiǎn)錛?/p>

//  鎺т歡淇℃伅鏁扮粍
static DLGCTLINFO  dcMenuGroup[] =
{
    {IDOK, MOVEX, 100},
    {IDCANCEL, MOVEX, 100},
    {IDC_BUTTON1, MOVEX, 50},
    {IDC_BUTTON1, MOVEY, 100},
    {IDC_EDIT1, ELASTICX, 100},
    {IDC_EDIT2, ELASTICX, 50},
    {IDC_EDIT3, ELASTICX, 50},
    {IDC_EDIT3, MOVEX, 50},
    {IDC_EDIT4, ELASTICY, 100},
    {IDC_EDIT5, ELASTICX, 100},
    {IDC_EDIT5, ELASTICY, 50},
    {IDC_EDIT6, ELASTICX, 100},
    {IDC_EDIT6, ELASTICY, 50},
    {IDC_EDIT6, MOVEY, 50},
};

//  璁劇疆鎺т歡淇℃伅
SetControlProperty(dcMenuGroup, sizeof(dcMenuGroup)/sizeof(DLGCTLINFO));

        涓嬮潰灝辨槸浣跨敤涓婇潰榪欐浠g爜鐨勫璇濇鏀瑰彉澶у皬鍓嶅悗鐨勬晥鏋滃浘錛?/p>

 

  

        瀵逛袱寮犳埅鍥劇殑姣旇緝鎴戜滑鍙互寰堝鏄撶殑鐞嗚В涓婇潰閭f浠g爜銆?br>        鎴戣繕鎻愪緵浜?jiǎn)涓涓嚱鏁幫細(xì)

void ShowSizeIcon(BOOL bShow = TRUE);

        鏉ヨ緗槸鍚︽樉紺哄璇濇鍙充笅瑙掕〃紺哄彲浠ユ敼鍙樺ぇ灝忕殑鍥炬爣銆傝繖涓浘鏍囨槸浠庣郴緇熶腑璇誨彇鐨勶紝鎴戜笂闈㈢殑鎴浘鏄疻indows2000涓嬬殑錛屽湪WindowsXP涓氨浼?xì)鑷姩鍙樻垚XP椋庢牸鐨勩?br>        濂戒簡(jiǎn)錛岄棽璇濅笉澶氳浜?jiǎn)锛屼笅闈㈣创鍑鸿瀵硅瘽妗喚c籆lxDialog鐨勬簮浠g爜錛岄噷闈㈡湁璇︾粏鐨勬敞閲婏細(xì)
        lxDialog.h鏂囦歡錛?/p>

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//      鑷姩鏀瑰彉鎺т歡浣嶇疆鍜屽ぇ灝忕殑瀵硅瘽妗嗙被
//      鏂囦歡鍚嶏細(xì)lxDialog.h
//      浣滆咃細(xì)StarLee(
coolstarlee@sohu.com )
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

class ClxDialog : public CDialog
{
public:
    ClxDialog(UINT nID, CWnd* pParent = NULL);

    typedef struct _dlgControlTag
    {
        int iId;
        int iFlag;
        int iPercent;
    } DLGCTLINFO, *PDLGCTLINFO;

    enum
    {
        MOVEX = 0,
        MOVEY,
        MOVEXY,
        ELASTICX,
        ELASTICY,
        ELASTICXY
    };

    //  璁劇疆鎺т歡淇℃伅
    BOOL SetControlProperty(PDLGCTLINFO lp, int nElements);

    //  鏄惁鍦ㄥ璇濇鍙充笅瑙掓樉紺鴻〃紺哄彲鏀瑰彉澶у皬鐨勫浘鏍?br>    void ShowSizeIcon(BOOL bShow = TRUE);

protected:
    virtual BOOL OnInitDialog();
    afx_msg void OnSize(UINT nType, int cx, int cy);
    afx_msg void OnSizing(UINT nSide, LPRECT lpRect);
    DECLARE_MESSAGE_MAP()

private:
    int m_iClientWidth;  //  瀵硅瘽妗哻lient鍖哄煙鐨勫搴?br>    int m_iClientHeight;  //  瀵硅瘽妗哻lient鍖哄煙鐨勯珮搴?br>    int m_iMinWidth;  //  瀵硅瘽妗嗙殑鏈灝忓搴?br>    int m_iMinHeight;  //  瀵硅瘽妗嗙殑鏈灝忛珮搴?br>    PDLGCTLINFO m_pControlArray;  //  鎺т歡淇℃伅鏁扮粍鎸囬拡
    int m_iControlNumber;  //  璁劇疆鎺т歡淇℃伅鐨勬帶浠朵釜鏁?br>    BOOL m_bShowSizeIcon;  //  鏄惁鏄劇ず琛ㄧず鍙敼鍙樺ぇ灝忕殑鍥炬爣
    CStatic m_wndSizeIcon;  //  鏀懼浘鏍囩殑闈?rùn)鎬佹帶浠?br>    //  淇濆瓨鍥炬爣鐨刡itmap
    CBitmap m_bmpSizeIcon;
    BITMAP m_bitmap; 
};

        lxDialog.cpp鏂囦歡:

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//      鑷姩鏀瑰彉鎺т歡浣嶇疆鍜屽ぇ灝忕殑瀵硅瘽妗嗙被
//      鏂囦歡鍚嶏細(xì)lxDialog.cpp
//      浣滆咃細(xì)StarLee(
coolstarlee@sohu.com )
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "lxDialog.h"

//  琛ㄧず鍙敼鍙樺ぇ灝忕殑鍥炬爣ID
#ifndef OBM_SIZE
#define OBM_SIZE 32766
#endif

ClxDialog::ClxDialog(UINT nID, CWnd* pParent /*=NULL*/)
    : CDialog(nID, pParent)
    , m_iClientWidth(0)
    , m_iClientHeight(0)
    , m_iMinWidth(0)
    , m_iMinHeight(0)
    , m_pControlArray(NULL)
    , m_iControlNumber(0)
    , m_bShowSizeIcon(TRUE)
{}

BEGIN_MESSAGE_MAP(ClxDialog, CDialog)
    ON_WM_SIZE()
    ON_WM_SIZING()
END_MESSAGE_MAP()

BOOL ClxDialog::OnInitDialog()
{
    CDialog::OnInitDialog();

    //  璁劇疆瀵硅瘽妗嗕負(fù)鍙彉澶у皬鐨?br>    ModifyStyle(0, WS_SIZEBOX);

    //  浠ュ璇濇鐨勫垵濮嬪ぇ灝忎綔涓哄璇濇鐨勫搴﹀拰楂樺害鐨勬渶灝忓?br>    CRect rectDlg;
    GetWindowRect(rectDlg);
    m_iMinWidth = rectDlg.Width();
    m_iMinHeight = rectDlg.Height();

    //  寰楀埌瀵硅瘽妗哻lient鍖哄煙鐨勫ぇ灝?/font>
    CRect rectClient;
    GetClientRect(rectClient);
    m_iClientWidth = rectClient.Width();
    m_iClientHeight = rectClient.Height();

    //  Load鍥炬爣
    m_bmpSizeIcon.LoadOEMBitmap(OBM_SIZE);
    m_bmpSizeIcon.GetBitmap(&m_bitmap);

    //  鍒涘緩鏄劇ず鍥炬爣鐨勯潤(rùn)鎬佹帶浠跺茍鏀懼湪瀵硅瘽妗嗗彸涓嬭
    m_wndSizeIcon.Create(NULL, WS_CHILD | WS_VISIBLE | SS_BITMAP, CRect(0, 0, m_bitmap.bmWidth, m_bitmap.bmHeight), this, 0);
    m_wndSizeIcon.SetBitmap(m_bmpSizeIcon);
    m_wndSizeIcon.MoveWindow(m_iClientWidth - m_bitmap.bmWidth, m_iClientHeight - m_bitmap.bmHeight, m_bitmap.bmWidth, m_bitmap.bmHeight);

    //  鏄劇ず鍥炬爣
    m_wndSizeIcon.ShowWindow(m_bShowSizeIcon);

    return TRUE;
}

void ClxDialog::OnSize(UINT nType, int cx, int cy)
{
    CDialog::OnSize(nType, cx, cy);
 
    //  瀵硅瘽妗嗗搴﹀拰楂樺害鐨勫閲?nbsp;
    int iIncrementX = cx - m_iClientWidth;
    int iIncrementY = cy - m_iClientHeight;

    //  鏈灝忓寲鏃跺閲忎負(fù)0
    if (nType == SIZE_MINIMIZED)
    {
        iIncrementX = iIncrementY = 0;
    }

    for (int i = 0; i < m_iControlNumber; i++)
    {
        CWnd *pWndCtrl = NULL;

        int iId = m_pControlArray[i].iId;
        int iFlag = m_pControlArray[i].iFlag;
        int iPercent = m_pControlArray[i].iPercent;

        //  鏃犳晥鍊?br>        if ((iPercent < 0) || (iPercent > 100))
            continue;

        //  寰楀埌鎺т歡鎸囬拡
        pWndCtrl = GetDlgItem(iId);
        if ((NULL != pWndCtrl) && IsWindow(pWndCtrl->GetSafeHwnd()))
        {
            CRect rectCtrl;
            pWndCtrl->GetWindowRect(rectCtrl);

            ScreenToClient(rectCtrl);

            int iLeft = rectCtrl.left;
            int iTop = rectCtrl.top;
            int iWidth = rectCtrl.Width();
            int iHeight = rectCtrl.Height();

            switch (iFlag)
            {
            case MOVEX:  //  X鏂瑰悜縐誨姩
                iLeft += (iIncrementX * iPercent / 100);
                break;

            case MOVEY:  //  Y鏂瑰悜縐誨姩
                iTop += (iIncrementY * iPercent / 100);
                break;

            case MOVEXY:  //  X鏂瑰悜鍜孻鏂瑰悜鍚屾椂縐誨姩
                iLeft += (iIncrementX * iPercent / 100);
                iTop += (iIncrementY * iPercent / 100);
                break;

            case ELASTICX:  //  X鏂瑰悜鏀瑰彉澶у皬
                iWidth += (iIncrementX * iPercent / 100);
                break;

            case ELASTICY:  //  Y鏂瑰悜鏀瑰彉澶у皬
                iHeight += (iIncrementY * iPercent / 100);
                break;

            case ELASTICXY:  //  X鏂瑰悜鍜孻鏂瑰悜鍚屾椂鏀瑰彉澶у皬
                iWidth += (iIncrementX * iPercent / 100);
                iHeight += (iIncrementY * iPercent / 100);
                break;

            default:
                ;
            }

            //  鎶婃帶浠剁Щ鍔ㄥ埌鏂頒綅緗?br>            pWndCtrl->MoveWindow(iLeft, iTop, iWidth, iHeight);
            }
    }

    //  鎶婂浘鏍囩Щ鍔ㄥ埌瀵硅瘽妗嗗彸涓嬭
    if (IsWindow(m_wndSizeIcon.GetSafeHwnd()))
        m_wndSizeIcon.MoveWindow(cx - m_bitmap.bmWidth, cy - m_bitmap.bmHeight, m_bitmap.bmWidth, m_bitmap.bmHeight);

    //  璁板綍瀵硅瘽妗哻lient鍖哄煙鐨勫ぇ灝?br>    if (nType != SIZE_MINIMIZED)
    {
        m_iClientWidth = cx;
        m_iClientHeight = cy;
    }
}

void ClxDialog::OnSizing(UINT nSide, LPRECT lpRect)
{
    CDialog::OnSizing(nSide, lpRect);

    //  瀵硅瘽妗嗕笉鑳藉皬浜庡垵濮嬪ぇ灝?/font>

    int iWidth = lpRect->right - lpRect->left;
    int iHeight = lpRect->bottom - lpRect->top;

    if (iWidth <= m_iMinWidth)
        lpRect->right = lpRect->left + m_iMinWidth;
  
    if(iHeight <= m_iMinHeight)
        lpRect->bottom = lpRect->top + m_iMinHeight;
}

BOOL ClxDialog::SetControlProperty(PDLGCTLINFO lp, int nElements)
{
    //  璁劇疆鎺т歡鏁扮粍淇℃伅

    if (NULL == lp)
        return FALSE;

    if (nElements <= 0)
        return FALSE;

    m_pControlArray = lp;
    m_iControlNumber = nElements;

    return TRUE;
}

void ClxDialog::ShowSizeIcon(BOOL bShow /*=NULL*/)
{
    m_bShowSizeIcon = bShow;
}



]]>
CRichEditCtrl http://www.shnenglu.com/ivenher/archive/2007/01/13/17593.html鐖遍キ鐩?/dc:creator>鐖遍キ鐩?/author>Sat, 13 Jan 2007 09:15:00 GMThttp://www.shnenglu.com/ivenher/archive/2007/01/13/17593.htmlhttp://www.shnenglu.com/ivenher/comments/17593.htmlhttp://www.shnenglu.com/ivenher/archive/2007/01/13/17593.html#Feedback1http://www.shnenglu.com/ivenher/comments/commentRss/17593.htmlhttp://www.shnenglu.com/ivenher/services/trackbacks/17593.html鏁癈RichEditCtrl鐨勫厛澶╀笉瓚沖強(qiáng)榪涘寲鏂規(guī)硶

  1. 涓嶈兘澶熻嚜鍔ㄥ垵濮嬪寲
  2. 涓嶈兘澶熸帴鍙桾AB閿?
  3. 涓嶈兘澶熼氳繃灞炴ц緗嚜鍔ㄦ崲琛?
  4. 涓嶈兘鏄劇ず鍥劇墖絳夊叾浠朞LE瀵硅薄
  5. 涓嶈兘澶熶嬌鐢–trl+C鏉ュ疄鐜版嫹璐?

涓嶈兘澶熻嚜鍔ㄥ垵濮嬪寲

褰撴垜絎竴嬈″皢Rich Edit鎺т歡鏀懼湪璧勬簮紿椾綋涓婄殑鏃跺欙紝鍙戠幇紼嬪簭鏍規(guī)湰灝變笉鑳借繍琛屻傚悗鏉ユ墠鎵懼埌鍘熷洜錛屽師鏉ich Edit 鎺т歡鏄疧le綾誨瀷鐨勬帶浠躲傚湪鍔犺澆Rich Edit 鎺т歡鐨勬椂鍊欙紝蹇呴』榪涜鍒濆鍖栥備唬鐮佸涓嬶細(xì)
BOOLCTestApp::InitInstance(){

          .....
          AfxInitRichEdit();

}

 涓嶈兘澶熸帴鍙桾AB閿?/strong>

灝?RichEdit鎺т歡鏀懼埌璧勬簮紿椾綋涓婄殑鏃跺欙紝鍙戠幇瀹冪殑灞炴ч〉涓茍娌℃湁璁劇疆鎺ュ彈TAB閿殑璁劇疆錛屽鑷村綋鎶婄劍鐐規(guī)斁鍒癛ich Edit 鎺т歡涓婄殑鏃跺欙紝涓鎸塼ab閿紝鐒︾偣灝辯Щ鍔ㄥ埌涓嬩竴涓帶浠朵笂闈㈠幓浜?jiǎn)銆?br>鍏蜂綋瑙e喅鏂規(guī)硶灝辨槸閲嶈澆Rich Edit鎺т歡鐨凮nGetDlgCode錛?br>渚嬪瓙浠g爜錛?br>.h鏂囦歡錛?br>class CMyRichEdit : public CRichEditCtrl{

          ........
          afx_msg UINT OnGetDlgCode( );
          ........

}
.cpp鏂囦歡錛?br>BEGIN_MESSAGE_MAP(CMyRichEdit, CRichEditCtrl)
          ON_WM_GETDLGCODE( )
END_MESSAGE_MAP()


UINT COleRichEditCtrl::OnGetDlgCode( ){

          return DLGC_WANTTAB;


}

 涓嶈兘澶熼氳繃灞炴ц緗嚜鍔ㄦ崲琛?/strong>

褰撴妸Rich Edit鎺т歡鏀懼埌璧勬簮紿椾綋涓婄殑鏃跺欙紝鍙戠幇鍦ㄥ畠鐨勫睘鎬х獥浣撲腑騫舵病鏈夎緗甊ich Edit鎺т歡鑷姩鎹㈣鐨勫睘鎬ц緗傝杈懼埌榪欎竴鐩殑錛屼緥瀛愪唬鐮佸涓嬶細(xì)
BOOL CTestDlg::InitDialog(){

          .............
          //m_RichEdit涓虹獥浣撶被鐨勬垚鍛樺彉閲?br>          this->m_RichEdit.SetTargetDevice(NULL,0);
          ............

}

涓嶈兘鏄劇ず鍥劇墖絳夊叾浠朞LE瀵硅薄

MFC鎻愪緵鐨凜RichEditCtrl娌℃湁鎻愪緵鐩存帴鏄劇ず鍥劇墖絳塐LE瀵硅薄鐨勫睘鎬ф垨鏂規(guī)硶璁劇疆錛屼絾鏄彁渚涗簡(jiǎn)涓涓帴鍙?strong>SetOLECallback( IRichEditOleCallback* pCallback );
瑕佽CRichEditCtrl鏄劇ず鍥劇墖錛屽氨寰楀湪IRichEditOleCallback涓婁笅鍔熷か銆?br>IRichEditOleCallback鏄痺indows涓殑鎺ュ彛錛屽畠鐨勫畾涔夊涓嬶細(xì)
ContextSensitiveHelp:
    閫氳繃璇ユ柟娉曢氱煡搴旂敤紼嬪簭瀹冨皢浠ヤ笂涓嬫枃鍏寵仈鏂瑰紡璋冨害甯姪銆?/font>
DeleteObject:
    閫氳繃璇ユ柟娉曞彂鍑洪氱煡錛氫竴涓璞″嵆灝嗕粠RichEdit鎺т歡涓垹闄?br>GetClipboardData:
    閫氳繃璇ユ柟娉?/font>鍏佽RichEdit鐨勫鎴風(fēng)錛堣皟鐢ㄧ▼搴忥級(jí)鎻愪緵鑷繁鐨勭矘璐村璞?br>GetContextMenu:
    閫氳繃璇ユ柟娉曞悜搴旂敤紼嬪簭鎻愬嚭閫氳繃榧犳爣鍙抽敭浜嬩歡鏉ヨ幏鍙栦笂涓嬫枃鑿滃崟鐨勮姹?br>GetDragDropEffect:
    閫氳繃璇ユ柟娉曞厑璁窻ichEdit鐨勫鎴風(fēng)錛堣皟鐢ㄧ▼搴忥級(jí)璁劇疆鎷栧姩鎿嶄綔鐨勬晥鏋?br>GetInPlaceContext:
    閫氳繃璇ユ柟娉曟彁渚涗簡(jiǎn)搴旂敤紼嬪簭綰у拰鏂囨。綰ф帴鍙o紝浠ュ強(qiáng)蹇呰鐨勬敮鎸両n-place嬋媧葷殑淇℃伅
GetNewStrorage:
    閫氳繃璇ユ柟娉曞瓨鍌ㄤ粠綺樿創(chuàng)鏉挎垨瓚呮枃鏈祦(RTF)涓鍙栫殑鏂板璞?br>QueryAcceptData:
    閫氳繃璇ユ柟娉曞喅瀹氬湪綺樿創(chuàng)鎿嶄綔鎴栨嫋鏀炬搷浣滀腑寮曞叆鐨勬暟鎹槸鍚﹀彲浠ヨ鎺ュ彈銆?br>QueryInsertObject:
    閫氳繃璇ユ柟娉曞悜搴旂敤紼嬪簭璇㈤棶鏌愪釜瀵硅薄鏄惁鍙互琚彃鍏?br>ShowContainerUI:
   
閫氳繃璇ユ柟娉曞憡鐭ュ簲鐢ㄧ▼搴忔槸鍚︽樉紺鴻嚜宸辯殑鎿嶄綔鐣岄潰

澶ц嚧浜?jiǎn)瑙d簡(jiǎn)IRichEditOleCallback鎺ュ彛鍚庯紝灝卞簲璇ユ竻妤氾紝瑕佹樉紺哄浘鐗囩瓑ole瀵硅薄錛岃嚦灝戝簲璇ュ疄鐜癎etNewStorage鏂規(guī)硶錛屽洜涓鴻鏂規(guī)硶鏄瓨鍌╫le瀵硅薄鐨勬帴鍙f柟娉曘?br>
浠ヤ笅鏄帴鍙e0鏄庣殑浠g爜錛?br>interface IExRichEditOleCallback : IRichEditOleCallback
{

public:
  IExRichEditOleCallback();
  virtual ~IExRichEditOleCallback();
  int m_iNumStorages;
  IStorage* pStorage;
  DWORD m_dwRef;

  virtual HRESULT STDMETHODCALLTYPE GetNewStorage(LPSTORAGE* lplpstg);
  virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void ** ppvObject);
  virtual ULONG STDMETHODCALLTYPE AddRef();
  virtual ULONG STDMETHODCALLTYPE Release();
  virtual HRESULT STDMETHODCALLTYPE GetInPlaceContext(LPOLEINPLACEFRAME FAR *lplpFrame,
   LPOLEINPLACEUIWINDOW FAR *lplpDoc, LPOLEINPLACEFRAMEINFO lpFrameInfo);
  virtual HRESULT STDMETHODCALLTYPE ShowContainerUI(BOOL fShow);
  virtual HRESULT STDMETHODCALLTYPE QueryInsertObject(LPCLSID lpclsid, LPSTORAGE lpstg, LONG cp);
  virtual HRESULT STDMETHODCALLTYPE DeleteObject(LPOLEOBJECT lpoleobj);
  virtual HRESULT STDMETHODCALLTYPE QueryAcceptData(LPDATAOBJECT lpdataobj, CLIPFORMAT FAR *lpcfFormat,   DWORD reco, BOOL fReally, HGLOBAL hMetaPict);
  virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode);
  virtual HRESULT STDMETHODCALLTYPE GetClipboardData(CHARRANGE FAR *lpchrg, DWORD reco, LPDATAOBJECT FAR *lplpdataobj);
   virtual HRESULT STDMETHODCALLTYPE GetDragDropEffect(BOOL fDrag, DWORD grfKeyState, LPDWORD pdwEffect);
  virtual HRESULT STDMETHODCALLTYPE GetContextMenu(WORD seltyp, LPOLEOBJECT lpoleobj, CHARRANGE FAR *lpchrg,   HMENU FAR *lphmenu);

}
鍏充簬鎺ュ彛鐨勫疄鐜幫紝灝嗚闄勫湪鏈鍚庣殑闄勫綍涓?/p>


涓嶈兘澶熶嬌鐢–trl+C鏉ュ疄鐜版嫹璐?/strong>

瀹為檯涓婏紝CRichEditCtrl鏈韓鏄敮鎸丆trl+C瀹炵幇鎷瘋礉鍔熻兘鐨勶紝浣嗘槸褰撴垜鍦–RichiEditCtrl鐨勭戶鎵跨被涓嬌鐢ㄤ簡(jiǎn)IRichiEditCallback鎺ュ彛鍚庯紝瀹冨氨涓嶅湪鏀寔Ctrl+C瀹炵幇鎷瘋礉鍔熻兘浜?jiǎn)銆傛垜鎯抽棶棰樺氨鍑哄湪IRichEditCallback鎺ュ彛涓娿?br>浠旂粏鐪嬩簡(jiǎn)涓閬嶅畠鐨勫府鍔╂枃妗o紝鎴戝彂鐜伴棶棰樺氨鍑哄湪GetClipboardData涓婏紝鎴戞病鏈夊湪瀹冪殑瀹炵幇鏂規(guī)硶涓啓浠g爜錛屽彧鏄繑鍥炰簡(jiǎn)S_OK錛屽鏋滆澶勭悊Ctrl+C錛屽氨蹇呴』榪斿洖E_NOTIMPL銆?br>
浠ヤ笂鏄垜榪戝嚑澶╃殑寮鍙戠粡鍘嗭紝涓庡ぇ瀹跺垎浜紝榪樺笇鏈涜礬榪囩殑楂樻墜澶氬鎸囨暀銆?br>鍦ㄤ互涓嬪叧浜嶳ichEdit鐨勪唬鐮佷緥瀛愪腑錛屾垜鍙傝冧簡(jiǎn)Mike O'Neill 鐨勪唬鐮侊紝鍐嶆璋㈣阿浠栫殑璐$尞銆?br>

闄勫綍
.h鏂囦歡

 

#if  !defined(AFX_OLERICHEDITCTRL_H__3DFF15EE_7336_4297_9620_7F00B611DAA1__INCLUDED_)
#define  AFX_OLERICHEDITCTRL_H__3DFF15EE_7336_4297_9620_7F00B611DAA1__INCLUDED_

#if  _MSC_VER > 1000
#pragma once
#endif   //  _MSC_VER > 1000
//  OleRichEditCtrl.h : header file
//


錛僫 nclude 
< richole.h >


/////////////////////////////////////////////////////////////////////////// //
//  COleRichEditCtrl window

class  COleRichEditCtrl :  public  CRichEditCtrl
{
//  Construction
public :
 COleRichEditCtrl();
 
virtual   ~ COleRichEditCtrl();

 
long  StreamInFromResource( int  iRes, LPCTSTR sType);



protected :
 
 
static  DWORD CALLBACK readFunction(DWORD dwCookie,
   LPBYTE lpBuf,   
//  the buffer to fill
   LONG nCount,    //  number of bytes to read
   LONG *  nRead);    //  number of bytes actually read

 
interface  IExRichEditOleCallback;  //  forward declaration (see below in this header file)

 IExRichEditOleCallback
*  m_pIRichEditOleCallback;
 BOOL m_bCallbackSet;
 
 
 
interface  IExRichEditOleCallback :  public  IRichEditOleCallback
 {
 
public :
  IExRichEditOleCallback();
  
virtual   ~ IExRichEditOleCallback();
  
int  m_iNumStorages;
  IStorage
*  pStorage;
  DWORD m_dwRef;

  
virtual  HRESULT STDMETHODCALLTYPE GetNewStorage(LPSTORAGE *  lplpstg);
  
virtual  HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid,  void   **  ppvObject);
  
virtual  ULONG STDMETHODCALLTYPE AddRef();
  
virtual  ULONG STDMETHODCALLTYPE Release();
  
virtual  HRESULT STDMETHODCALLTYPE GetInPlaceContext(LPOLEINPLACEFRAME FAR  * lplpFrame,
   LPOLEINPLACEUIWINDOW FAR 
* lplpDoc, LPOLEINPLACEFRAMEINFO lpFrameInfo);
   
virtual  HRESULT STDMETHODCALLTYPE ShowContainerUI(BOOL fShow);
   
virtual  HRESULT STDMETHODCALLTYPE QueryInsertObject(LPCLSID lpclsid, LPSTORAGE lpstg, LONG cp);
   
virtual  HRESULT STDMETHODCALLTYPE DeleteObject(LPOLEOBJECT lpoleobj);
   
virtual  HRESULT STDMETHODCALLTYPE QueryAcceptData(LPDATAOBJECT lpdataobj, CLIPFORMAT FAR  * lpcfFormat,
   DWORD reco, BOOL fReally, HGLOBAL hMetaPict);
   
virtual  HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode);
   
virtual  HRESULT STDMETHODCALLTYPE GetClipboardData(CHARRANGE FAR  * lpchrg, DWORD reco, LPDATAOBJECT FAR  * lplpdataobj);
   
virtual  HRESULT STDMETHODCALLTYPE GetDragDropEffect(BOOL fDrag, DWORD grfKeyState, LPDWORD pdwEffect);
   
virtual  HRESULT STDMETHODCALLTYPE GetContextMenu(WORD seltyp, LPOLEOBJECT lpoleobj, CHARRANGE FAR  * lpchrg,
   HMENU FAR 
* lphmenu);
 };
 

public :

//  Overrides
 
//  ClassWizard generated virtual function overrides
 
// {{AFX_VIRTUAL(COleRichEditCtrl)
  protected :
 
virtual   void  PreSubclassWindow();
 
// }}AFX_VIRTUAL

//  Implementation
public :


 
//  Generated message map functions
protected :
 
// {{AFX_MSG(COleRichEditCtrl)
 afx_msg  int  OnCreate(LPCREATESTRUCT lpCreateStruct);
 
 
// }}AFX_MSG
 afx_msg UINT OnGetDlgCode( );
 DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////// //

// {{AFX_INSERT_LOCATION}}
//  Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif   //  !defined(AFX_OLERICHEDITCTRL_H__3DFF15EE_7336_4297_9620_7F00B611DAA1__INCLUDED_)






.cpp鏂囦歡

 

//  OleRichEditCtrl.cpp : implementation file
//

錛僫 nclude 
" stdafx.h "
錛僫 nclude 
" OleRichEditCtrl.h "

#ifdef _DEBUG
#define  new DEBUG_NEW
#undef  THIS_FILE
static   char  THIS_FILE[]  =  __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////// //
//  COleRichEditCtrl

COleRichEditCtrl::COleRichEditCtrl()
{
 m_bCallbackSet 
=  FALSE;
}

COleRichEditCtrl::
~ COleRichEditCtrl()
{
 
//  IExRichEditOleCallback class is a reference-counted class  
 
//  which deletes itself and for which delete should not be called

 
//  delete m_pIRichEditOleCallback;
}


BEGIN_MESSAGE_MAP(COleRichEditCtrl, CRichEditCtrl)
 
// {{AFX_MSG_MAP(COleRichEditCtrl)
 ON_WM_CREATE()
 
// }}AFX_MSG_MAP
 ON_WM_GETDLGCODE( )
END_MESSAGE_MAP()
//


int  COleRichEditCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
  
if  (CRichEditCtrl::OnCreate(lpCreateStruct)  ==   - 1 )
   
return   - 1 ;
  
 
//  m_pIRichEditOleCallback should have been created in PreSubclassWindow

  ASSERT( m_pIRichEditOleCallback 
!=  NULL ); 

 
//  set the IExRichEditOleCallback pointer if it wasn't set 
 
//  successfully in PreSubclassWindow

 
if  (  ! m_bCallbackSet )
 {
  SetOLECallback( m_pIRichEditOleCallback );
 }
  
  
return   0 ;
}

void  COleRichEditCtrl::PreSubclassWindow() 
{
 
//  base class first
 CRichEditCtrl::PreSubclassWindow(); 

 m_pIRichEditOleCallback 
=  NULL;
 m_pIRichEditOleCallback 
=   new  IExRichEditOleCallback;
 ASSERT( m_pIRichEditOleCallback 
!=  NULL );

 m_bCallbackSet 
=  SetOLECallback( m_pIRichEditOleCallback );
}


long  COleRichEditCtrl::StreamInFromResource( int  iRes, LPCTSTR sType)
{
 HINSTANCE hInst 
=  AfxGetInstanceHandle();
 HRSRC hRsrc 
=  ::FindResource(hInst,
  MAKEINTRESOURCE(iRes), sType);
 
 DWORD len 
=  SizeofResource(hInst, hRsrc); 
 BYTE
*  lpRsrc  =  (BYTE * )LoadResource(hInst, hRsrc); 
 ASSERT(lpRsrc); 
 
 CMemFile mfile;
 mfile.Attach(lpRsrc, len); 

 EDITSTREAM es;
 es.pfnCallback 
=  readFunction;
 es.dwError 
=   0 ;
 es.dwCookie 
=  (DWORD)  & mfile;

 
return  StreamIn( SF_RTF, es );
}


 

/*  static  */
DWORD CALLBACK COleRichEditCtrl::readFunction(DWORD dwCookie,
   LPBYTE lpBuf,   
//  the buffer to fill
   LONG nCount,    //  number of bytes to read
   LONG *  nRead)    //  number of bytes actually read
{
 CFile
*  fp  =  (CFile  * )dwCookie;
 
* nRead  =  fp -> Read(lpBuf,nCount);
 
return   0 ;
}

/////////////////////////////////////////////////////////////////////////// //


 

COleRichEditCtrl::IExRichEditOleCallback::IExRichEditOleCallback()
{
 pStorage 
=  NULL;
 m_iNumStorages 
=   0 ;
 m_dwRef 
=   0 ;

 
//  set up OLE storage

 HRESULT hResult 
=  ::StgCreateDocfile(NULL,
  STGM_TRANSACTED 
|  STGM_READWRITE  |  STGM_SHARE_EXCLUSIVE  /* | STGM_DELETEONRELEASE  */ | STGM_CREATE ,
  
0 & pStorage );

 
if  ( pStorage  ==  NULL  ||
  hResult 
!=  S_OK )
 {
  AfxThrowOleException( hResult );
 }
}

COleRichEditCtrl::IExRichEditOleCallback::
~ IExRichEditOleCallback()
{
}


 

HRESULT STDMETHODCALLTYPE 
COleRichEditCtrl::IExRichEditOleCallback::GetNewStorage(LPSTORAGE
*  lplpstg)
{
 m_iNumStorages
++ ;
 WCHAR tName[
50 ];
 swprintf(tName, L
" REOLEStorage%d " , m_iNumStorages);

 HRESULT hResult 
=  pStorage -> CreateStorage(tName, 
  STGM_TRANSACTED 
|  STGM_READWRITE  |  STGM_SHARE_EXCLUSIVE  |  STGM_CREATE ,
  
0 0 , lplpstg );

 
if  (hResult  !=  S_OK )
 {
  ::AfxThrowOleException( hResult );
 }

 
return  hResult;
}

HRESULT STDMETHODCALLTYPE 
COleRichEditCtrl::IExRichEditOleCallback::QueryInterface(REFIID iid, 
void   **  ppvObject)
{

 HRESULT hr 
=  S_OK;
 
* ppvObject  =  NULL;
 
 
if  ( iid  ==  IID_IUnknown  ||
  iid 
==  IID_IRichEditOleCallback )
 {
  
* ppvObject  =   this ;
  AddRef();
  hr 
=  NOERROR;
 }
 
else
 {
  hr 
=  E_NOINTERFACE;
 }

 
return  hr;
}



ULONG STDMETHODCALLTYPE 
COleRichEditCtrl::IExRichEditOleCallback::AddRef()
{
 
return   ++ m_dwRef;
}

 

 

ULONG STDMETHODCALLTYPE 
COleRichEditCtrl::IExRichEditOleCallback::Release()
{
 
if  (  -- m_dwRef  ==   0  )
 {
  delete 
this ;
  
return   0 ;
 }

 
return  m_dwRef;
}


HRESULT STDMETHODCALLTYPE 
COleRichEditCtrl::IExRichEditOleCallback::GetInPlaceContext(LPOLEINPLACEFRAME FAR 
* lplpFrame,
 LPOLEINPLACEUIWINDOW FAR 
* lplpDoc, LPOLEINPLACEFRAMEINFO lpFrameInfo)
{
 
return  S_OK;
}


HRESULT STDMETHODCALLTYPE 
COleRichEditCtrl::IExRichEditOleCallback::ShowContainerUI(BOOL fShow)
{
 
return  S_OK;
}



HRESULT STDMETHODCALLTYPE 
COleRichEditCtrl::IExRichEditOleCallback::QueryInsertObject(LPCLSID lpclsid, LPSTORAGE lpstg, LONG cp)
{
 
return  S_OK;
}


HRESULT STDMETHODCALLTYPE 
COleRichEditCtrl::IExRichEditOleCallback::DeleteObject(LPOLEOBJECT lpoleobj)
{
 
return  S_OK;
}



HRESULT STDMETHODCALLTYPE 
COleRichEditCtrl::IExRichEditOleCallback::QueryAcceptData(LPDATAOBJECT lpdataobj, CLIPFORMAT FAR 
* lpcfFormat,
 DWORD reco, BOOL fReally, HGLOBAL hMetaPict)
{
 
return  S_OK;
}



HRESULT STDMETHODCALLTYPE 
COleRichEditCtrl::IExRichEditOleCallback::ContextSensitiveHelp(BOOL fEnterMode)
{
 
return  S_OK;
}



HRESULT STDMETHODCALLTYPE 
COleRichEditCtrl::IExRichEditOleCallback::GetClipboardData(CHARRANGE FAR 
* lpchrg, DWORD reco, LPDATAOBJECT FAR  * lplpdataobj)
{
 
return  E_NOTIMPL;
}


HRESULT STDMETHODCALLTYPE 
COleRichEditCtrl::IExRichEditOleCallback::GetDragDropEffect(BOOL fDrag, DWORD grfKeyState, LPDWORD pdwEffect)
{
 
return  S_OK;
}

HRESULT STDMETHODCALLTYPE 
COleRichEditCtrl::IExRichEditOleCallback::GetContextMenu(WORD seltyp, LPOLEOBJECT lpoleobj, CHARRANGE FAR 
* lpchrg,
 HMENU FAR 
* lphmenu)
{
 
return  S_OK;
}

//  TabRichEditCtrl 娑堟伅澶勭悊紼嬪簭
UINT COleRichEditCtrl::OnGetDlgCode( ){

 
return  DLGC_WANTTAB;
}



]]>
鍦╒C涓皟鐢╓ORD錛堟樉紺猴紝淇敼錛屽瓨鐩橈紝榪愯瀹?錛堣漿錛?/title><link>http://www.shnenglu.com/ivenher/archive/2007/01/13/17592.html</link><dc:creator>鐖遍キ鐩?/dc:creator><author>鐖遍キ鐩?/author><pubDate>Sat, 13 Jan 2007 08:52:00 GMT</pubDate><guid>http://www.shnenglu.com/ivenher/archive/2007/01/13/17592.html</guid><wfw:comment>http://www.shnenglu.com/ivenher/comments/17592.html</wfw:comment><comments>http://www.shnenglu.com/ivenher/archive/2007/01/13/17592.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ivenher/comments/commentRss/17592.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ivenher/services/trackbacks/17592.html</trackback:ping><description><![CDATA[<span id=ArticleContent1_ArticleContent1_lblContent twffan="done">  <p>錛?錛変嬌鐢ˋppWizard鍒涘緩涓涓柊鐨凪FC AppWizard(EXE)宸ョ▼錛屽懡鍚嶄負(fù)"office"  <br>錛?錛夐夋嫨鍗曟枃妗h鍥?SDI)緇撴瀯錛屽湪絎?姝ヤ腑闇瑕侀変腑Container,浠ユ彁渚涘鍣ㄦ敮鎸?騫朵笖閫変腑active document container 鍏跺畠閮戒負(fù)榛樿</p> <p>錛?錛夊湪View鑿滃崟涓紝閫塁lassWizard,閫堿utomation閫夐」鍗?閫堿dd Class,閫夋嫨From a TypeLibrary, 鍦∣ffice鐩綍涓変腑Microsoft Word 97/2000 綾誨瀷搴揥ord8.olb鎴朩ord9.olb錛岄変腑application,document,_document銆傚崟鍑籵k</p> <p>(4)緇機(jī)OfficeCntrItem娣誨姞涓鏂規(guī)硶銆侴etIDispatch()</p> <p>鍏舵簮鐮佸涓嬶細(xì)</p> <p>  ASSERT_VALID(this);  <br> ASSERT(m_lpObject != NULL);   <br> LPUNKNOWN lpUnk = m_lpObject;   <br> Run();   <br> LPOLELINK lpOleLink = NULL;  <br> if (m_lpObject->QueryInterface(IID_IOleLink, (LPVOID FAR*)&lpOleLink) == NOERROR)   <br> {   <br>  ASSERT(lpOleLink != NULL);   <br>  lpUnk = NULL;       <br>  if (lpOleLink->GetBoundSource(&lpUnk) != NOERROR)    <br>  {    <br>   TRACE0("Warning: Link is not connected!\n");    <br>   lpOleLink->Release();    <br>   return NULL;    <br>  }   <br>  ASSERT(lpUnk != NULL);   <br> }    <br> LPDISPATCH lpDispatch = NULL;  <br> if (lpUnk->QueryInterface(IID_IDispatch, (LPVOID FAR*)&lpDispatch)!=NOERROR)   <br> { <br>    TRACE0("Warning: does not support IDispatch!\n");   <br>  return NULL; <br>  <br> } <br> ASSERT(lpDispatch != NULL);  <br> return lpDispatch; <br>錛?錛夈傚湪officeView.h娣誨姞#include "msword8.h"</p> <p>錛?錛夈備慨鏀箆oid COfficeView::OnInsertObject()錛屾簮鐮佸涓嬶細(xì)</p> <p> BeginWaitCursor();</p> <p> COfficeCntrItem* pItem = NULL;<br> TRY<br> {<br>  // Create new item connected to this document.<br>  COfficeDoc* pDoc = GetDocument();<br>  ASSERT_VALID(pDoc);<br>  pItem = new COfficeCntrItem(pDoc);<br>  ASSERT_VALID(pItem);</p> <p>  // Initialize the item from the dialog data.<br> /* if (!dlg.CreateItem(pItem))<br>   AfxThrowMemoryException();  // any exception will do<br>  ASSERT_VALID(pItem);*/<br>   CLSID clsid; //<br>  if(FAILED(::CLSIDFromProgID(L"Word.document",&clsid))) <br>   AfxThrowMemoryException(); <br>  <br>  if(!pItem->CreateNewItem(clsid)) <br>  /*<a href="file://if/">if</a>(!pItem->CreateFromFile (filename,clsid)) */<br>   AfxThrowMemoryException(); <br>  ASSERT_VALID(pItem); <br>  <br>  pItem->Activate (OLEIVERB_SHOW,this);<br>  <br> </p> <p>  ASSERT_VALID(pItem);<br>         m_pSelection = pItem;   // set selection to last inserted item<br>  pDoc->UpdateAllViews(NULL);<br>  // As an arbitrary user interface design, this sets the selection<br>  //  to the last item inserted.</p> <p>  // TODO: reimplement selection as appropriate for your application</p> <p>  m_pSelection = pItem;   // set selection to last inserted item<br>  pDoc->UpdateAllViews(NULL);<br> }<br> CATCH(CException, e)<br> {<br>  if (pItem != NULL)<br>  {<br>   ASSERT_VALID(pItem);<br>   pItem->Delete();<br>  }<br>  AfxMessageBox(IDP_FAILED_TO_CREATE);<br> }<br> END_CATCH</p> <p> EndWaitCursor();</p> <p>錛?錛夐噸杞絀D鈥擣ILE鈥擲AVE錛?/p> <p>void COfficeView::OnFileSave() <br>{<br> // TODO: Add your command handler code here<br>  TRY{<br>     LPDISPATCH lpDisp; <br>  <br>  lpDisp = m_pSelection->GetIDispatch(); </p> <p>    Documents docs;<br>  <br>  _Application app; <br>  <br>  _Document mydoc;<br>  Documents my;</p> <p>  mydoc.AttachDispatch (lpDisp,TRUE);<br>  app=mydoc.GetApplication ();<br>    /*   <a href="file://app.run/">app.Run</a> ("Macro3");*/<br>     mydoc.Activate ();<br>  BOOL password=mydoc.GetHasPassword ();<br>  mydoc.SetPassword ("love");<br>  password=mydoc.GetHasPassword ();  <br>  COleVariant vFalse((short)FALSE);<br>  mydoc.SaveAs (COleVariant("c:\\love.doc"),vFalse,vFalse, COleVariant(""),vFalse,<br>   COleVariant(""),vFalse,vFalse,vFalse,vFalse,vFalse);<br>  <br> }<br> CATCH(CException, e)<br> {<br>        }<br> END_CATCH<br>}<br><br>bulid,click insert object,and edit ,and save.maybe run macro.</p> </span> <img src ="http://www.shnenglu.com/ivenher/aggbug/17592.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ivenher/" target="_blank">鐖遍キ鐩?/a> 2007-01-13 16:52 <a href="http://www.shnenglu.com/ivenher/archive/2007/01/13/17592.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <a href="http://www.shnenglu.com/">青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品</a> <div style="position:fixed;left:-9000px;top:-9000px;"><font id="pjuwb"></font><button id="pjuwb"><pre id="pjuwb"></pre></button><sub id="pjuwb"></sub><tbody id="pjuwb"><var id="pjuwb"><address id="pjuwb"></address></var></tbody><listing id="pjuwb"><label id="pjuwb"><strong id="pjuwb"></strong></label></listing><wbr id="pjuwb"><small id="pjuwb"><tbody id="pjuwb"></tbody></small></wbr><ins id="pjuwb"><xmp id="pjuwb"></xmp></ins><style id="pjuwb"></style><label id="pjuwb"><em id="pjuwb"><li id="pjuwb"></li></em></label><samp id="pjuwb"></samp><menu id="pjuwb"><input id="pjuwb"></input></menu><pre id="pjuwb"><tbody id="pjuwb"><tfoot id="pjuwb"><button id="pjuwb"></button></tfoot></tbody></pre><form id="pjuwb"></form><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"><sup id="pjuwb"></sup></label></style></i><li id="pjuwb"><table id="pjuwb"><abbr id="pjuwb"></abbr></table></li><video id="pjuwb"></video><dfn id="pjuwb"></dfn><progress id="pjuwb"></progress><strong id="pjuwb"></strong><mark id="pjuwb"></mark><em id="pjuwb"></em><tbody id="pjuwb"><p id="pjuwb"><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike></p></tbody><option id="pjuwb"></option><strike id="pjuwb"></strike><u id="pjuwb"></u><td id="pjuwb"><center id="pjuwb"><tr id="pjuwb"></tr></center></td><em id="pjuwb"><mark id="pjuwb"><em id="pjuwb"><tt id="pjuwb"></tt></em></mark></em><strong id="pjuwb"></strong><wbr id="pjuwb"></wbr><s id="pjuwb"></s><strong id="pjuwb"></strong><legend id="pjuwb"></legend><nav id="pjuwb"></nav><dl id="pjuwb"><th id="pjuwb"><dl id="pjuwb"></dl></th></dl><noframes id="pjuwb"><ins id="pjuwb"></ins></noframes><font id="pjuwb"></font><strike id="pjuwb"><i id="pjuwb"><style id="pjuwb"><label id="pjuwb"></label></style></i></strike><output id="pjuwb"></output><thead id="pjuwb"><pre id="pjuwb"></pre></thead><source id="pjuwb"></source><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem><pre id="pjuwb"><span id="pjuwb"><pre id="pjuwb"><big id="pjuwb"></big></pre></span></pre><cite id="pjuwb"><fieldset id="pjuwb"><s id="pjuwb"><rt id="pjuwb"></rt></s></fieldset></cite><big id="pjuwb"><progress id="pjuwb"><big id="pjuwb"></big></progress></big><samp id="pjuwb"><delect id="pjuwb"></delect></samp><dl id="pjuwb"></dl><strike id="pjuwb"><nav id="pjuwb"><dl id="pjuwb"><strong id="pjuwb"></strong></dl></nav></strike><tbody id="pjuwb"><b id="pjuwb"><optgroup id="pjuwb"><rp id="pjuwb"></rp></optgroup></b></tbody><em id="pjuwb"></em><xmp id="pjuwb"><blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote></xmp> <i id="pjuwb"><abbr id="pjuwb"><i id="pjuwb"><abbr id="pjuwb"></abbr></i></abbr></i><center id="pjuwb"><acronym id="pjuwb"><center id="pjuwb"></center></acronym></center><pre id="pjuwb"></pre><ul id="pjuwb"><thead id="pjuwb"></thead></ul><blockquote id="pjuwb"><pre id="pjuwb"><sup id="pjuwb"></sup></pre></blockquote><acronym id="pjuwb"></acronym><big id="pjuwb"><s id="pjuwb"></s></big><th id="pjuwb"></th><th id="pjuwb"></th><tbody id="pjuwb"></tbody><thead id="pjuwb"><strike id="pjuwb"></strike></thead><th id="pjuwb"><dl id="pjuwb"><wbr id="pjuwb"></wbr></dl></th><dl id="pjuwb"><strong id="pjuwb"></strong></dl><abbr id="pjuwb"><noframes id="pjuwb"><noscript id="pjuwb"></noscript></noframes></abbr><td id="pjuwb"><ol id="pjuwb"></ol></td><li id="pjuwb"><noscript id="pjuwb"><abbr id="pjuwb"></abbr></noscript></li><small id="pjuwb"><bdo id="pjuwb"><nav id="pjuwb"></nav></bdo></small><style id="pjuwb"></style><optgroup id="pjuwb"><table id="pjuwb"></table></optgroup><center id="pjuwb"><tr id="pjuwb"><dfn id="pjuwb"></dfn></tr></center><th id="pjuwb"></th><u id="pjuwb"></u><tfoot id="pjuwb"><legend id="pjuwb"><i id="pjuwb"></i></legend></tfoot><mark id="pjuwb"></mark><meter id="pjuwb"></meter><nav id="pjuwb"></nav><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><acronym id="pjuwb"><pre id="pjuwb"><acronym id="pjuwb"><ul id="pjuwb"></ul></acronym></pre></acronym><nobr id="pjuwb"></nobr><sub id="pjuwb"><th id="pjuwb"><menuitem id="pjuwb"><wbr id="pjuwb"></wbr></menuitem></th></sub><thead id="pjuwb"><sub id="pjuwb"></sub></thead><ul id="pjuwb"><address id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></address></ul><dfn id="pjuwb"></dfn><pre id="pjuwb"></pre><input id="pjuwb"><cite id="pjuwb"><fieldset id="pjuwb"></fieldset></cite></input><u id="pjuwb"><form id="pjuwb"><u id="pjuwb"></u></form></u><kbd id="pjuwb"><em id="pjuwb"><mark id="pjuwb"></mark></em></kbd><tr id="pjuwb"></tr><del id="pjuwb"><form id="pjuwb"><address id="pjuwb"></address></form></del><tfoot id="pjuwb"><legend id="pjuwb"><ol id="pjuwb"><dl id="pjuwb"></dl></ol></legend></tfoot><menu id="pjuwb"><nobr id="pjuwb"><th id="pjuwb"><nobr id="pjuwb"></nobr></th></nobr></menu><fieldset id="pjuwb"></fieldset><pre id="pjuwb"><blockquote id="pjuwb"><samp id="pjuwb"></samp></blockquote></pre><xmp id="pjuwb"><sup id="pjuwb"><pre id="pjuwb"></pre></sup></xmp><span id="pjuwb"><progress id="pjuwb"></progress></span><font id="pjuwb"></font><var id="pjuwb"><abbr id="pjuwb"></abbr></var><strong id="pjuwb"><label id="pjuwb"><i id="pjuwb"><legend id="pjuwb"></legend></i></label></strong><tr id="pjuwb"><em id="pjuwb"><em id="pjuwb"><output id="pjuwb"></output></em></em></tr><thead id="pjuwb"><strike id="pjuwb"></strike></thead> <acronym id="pjuwb"></acronym><i id="pjuwb"></i><tt id="pjuwb"></tt><rt id="pjuwb"><source id="pjuwb"><rt id="pjuwb"></rt></source></rt><strike id="pjuwb"><acronym id="pjuwb"></acronym></strike><del id="pjuwb"></del><font id="pjuwb"><output id="pjuwb"><ins id="pjuwb"><output id="pjuwb"></output></ins></output></font><kbd id="pjuwb"><tr id="pjuwb"><kbd id="pjuwb"></kbd></tr></kbd><pre id="pjuwb"><sup id="pjuwb"><delect id="pjuwb"><samp id="pjuwb"></samp></delect></sup></pre><samp id="pjuwb"></samp><track id="pjuwb"></track><tr id="pjuwb"></tr><center id="pjuwb"></center><fieldset id="pjuwb"></fieldset><i id="pjuwb"></i><td id="pjuwb"></td><rt id="pjuwb"></rt><object id="pjuwb"></object><pre id="pjuwb"><progress id="pjuwb"><sub id="pjuwb"><thead id="pjuwb"></thead></sub></progress></pre><kbd id="pjuwb"><tr id="pjuwb"><option id="pjuwb"></option></tr></kbd><output id="pjuwb"><ins id="pjuwb"></ins></output><ol id="pjuwb"></ol><source id="pjuwb"></source><strong id="pjuwb"></strong><ruby id="pjuwb"></ruby><sub id="pjuwb"><meter id="pjuwb"><menuitem id="pjuwb"><meter id="pjuwb"></meter></menuitem></meter></sub><pre id="pjuwb"></pre><center id="pjuwb"></center><tr id="pjuwb"><tbody id="pjuwb"><xmp id="pjuwb"><dd id="pjuwb"></dd></xmp></tbody></tr><video id="pjuwb"></video><pre id="pjuwb"></pre><form id="pjuwb"><optgroup id="pjuwb"></optgroup></form><samp id="pjuwb"></samp><kbd id="pjuwb"></kbd><strong id="pjuwb"><option id="pjuwb"></option></strong><object id="pjuwb"></object><abbr id="pjuwb"><noframes id="pjuwb"><abbr id="pjuwb"></abbr></noframes></abbr><ul id="pjuwb"><del id="pjuwb"><button id="pjuwb"><pre id="pjuwb"></pre></button></del></ul><abbr id="pjuwb"></abbr><strong id="pjuwb"><code id="pjuwb"><strong id="pjuwb"></strong></code></strong><option id="pjuwb"></option><optgroup id="pjuwb"><bdo id="pjuwb"><code id="pjuwb"></code></bdo></optgroup><mark id="pjuwb"><em id="pjuwb"><font id="pjuwb"></font></em></mark><acronym id="pjuwb"><code id="pjuwb"></code></acronym><dl id="pjuwb"></dl><em id="pjuwb"></em><object id="pjuwb"><input id="pjuwb"><object id="pjuwb"></object></input></object><output id="pjuwb"><dd id="pjuwb"></dd></output><option id="pjuwb"><button id="pjuwb"><option id="pjuwb"></option></button></option><small id="pjuwb"></small></div> <a href="http://www38ccc.com" target="_blank">国产精品一区二区在线观看不卡</a>| <a href="http://xuanxuan88.com" target="_blank">一区二区高清在线观看</a>| <a href="http://toomicsvip.com" target="_blank">欧美一区日韩一区</a>| <a href="http://dk13studio.com" target="_blank">国产精品一卡二卡</a>| <a href="http://9911444.com" target="_blank">久久精品国产亚洲a</a>| <a href="http://filmcameralibrary.com" target="_blank">欧美一区二区在线免费播放</a>| <a href="http://278263.com" target="_blank">国产一区二区三区在线免费观看</a>| <a href="http://jiyixitong.com" target="_blank">久久爱www.</a>| <a href="http://chukewang.com" target="_blank">久久久国产精品一区二区三区</a>| <a href="http://filmcameralibrary.com" target="_blank">国模叶桐国产精品一区</a>| <a href="http://ybshg.com" target="_blank">欧美成人免费在线观看</a>| <a href="http://am3757.com" target="_blank">欧美精品在线一区二区三区</a>| <a href="http://8xyxs1.com" target="_blank">亚洲视频日本</a>| <a href="http://1x118.com" target="_blank">欧美中文在线免费</a>| <a href="http://9966k.com" target="_blank">亚洲卡通欧美制服中文</a>| <a href="http://7776701.com" target="_blank">亚洲一级网站</a>| <a href="http://32tun.com" target="_blank">亚洲精品1区</a>| <a href="http://88848885.com" target="_blank">亚洲视频精选在线</a>| <a href="http://www-tk3333.com" target="_blank">精品成人在线视频</a>| <a href="http://zxxx3.com" target="_blank">一本色道久久精品</a>| <a href="http://yyypdq.com" target="_blank">国内精品久久久久影院 日本资源</a>| <a href="http://xkm663y.com" target="_blank">欧美大胆a视频</a>| <a href="http://444398.com" target="_blank">国产乱码精品一区二区三区五月婷 </a>| <a href="http://avicpharm.com" target="_blank">亚洲欧美国产日韩天堂区</a>| <a href="http://changjiucf.com" target="_blank">亚洲香蕉网站</a>| <a href="http://choaoxing.com" target="_blank">亚洲激情在线视频</a>| <a href="http://278538.com" target="_blank">亚洲女爱视频在线</a>| <a href="http://621762.com" target="_blank">亚洲欧洲精品一区二区三区 </a>| <a href="http://7a7d.com" target="_blank">欧美在线网站</a>| <a href="http://96ykm.com" target="_blank">欧美精品综合</a>| <a href="http://7213523.com" target="_blank">久热国产精品视频</a>| <a href="http://www-136445.com" target="_blank">国产精品久久久久久久久久免费看</a>| <a href="http://youminwang.com" target="_blank">久久高清国产</a>| <a href="http://hs045.com" target="_blank">欧美色播在线播放</a>| <a href="http://1397979.com" target="_blank">亚洲第一主播视频</a>| <a href="http://5101h.com" target="_blank">国产私拍一区</a>| <a href="http://naturalgiftfashion.com" target="_blank">日韩视频一区二区在线观看 </a>| <a href="http://chukewang.com" target="_blank">欧美三级电影精品</a>| <a href="http://www66617.com" target="_blank">欧美影院久久久</a>| <a href="http://chuangke168.com" target="_blank">欧美日韩国产123区</a>| <a href="http://9906w.com" target="_blank">亚洲一区二区毛片</a>| <a href="http://www-438686.com" target="_blank">欧美大片免费</a>| <a href="http://kkwwxx.com" target="_blank">午夜精品久久</a>| <a href="http://hnspygxjscyfwzx.com" target="_blank">欧美激情在线播放</a>| <a href="http://sese135.com" target="_blank">久久九九精品99国产精品</a>| <a href="http://by3180.com" target="_blank">久久国内精品自在自线400部</a>| <a href="http://by5263.com" target="_blank">亚洲欧洲三级电影</a>| <a href="http://994745.com" target="_blank">欧美第一黄网免费网站</a>| <a href="http://kittybob.com" target="_blank">国产一区二区日韩精品欧美精品</a>| <a href="http://621767.com" target="_blank">欧美寡妇偷汉性猛交</a>| <a href="http://yc7878.com" target="_blank">国内精品写真在线观看</a>| <a href="http://pfpf662.com" target="_blank">亚洲区欧美区</a>| <a href="http://yjdm296.com" target="_blank">亚洲精品综合</a>| <a href="http://302262.com" target="_blank">久久婷婷久久</a>| <a href="http://www-136445.com" target="_blank">免费成人在线视频网站</a>| <a href="http://149155.com" target="_blank">国产精品久久久久久久久久久久 </a>| <a href="http://4tobi.com" target="_blank">一区二区欧美日韩视频</a>| <a href="http://ccnn33.com" target="_blank">亚洲精品一区二区三区樱花</a>| <a href="http://91chaopron.com" target="_blank">亚洲欧美成人一区二区三区</a>| <a href="http://fulong-tj.com" target="_blank">亚洲午夜在线视频</a>| <a href="http://287975.com" target="_blank">男人的天堂亚洲在线</a>| <a href="http://unrealcopgmail.com" target="_blank">欧美aa在线视频</a>| <a href="http://97gaoba.com" target="_blank">国产一区视频在线看</a>| <a href="http://77427xyz.com" target="_blank">亚洲影院一区</a>| <a href="http://621762.com" target="_blank">亚洲欧美中文字幕</a>| <a href="http://www134rr.com" target="_blank">欧美经典一区二区三区</a>| <a href="http://151545.com" target="_blank">欧美国产日韩亚洲一区</a>| <a href="http://799858.com" target="_blank">欧美午夜在线一二页</a>| <a href="http://wawabt.com" target="_blank">亚洲视频电影图片偷拍一区</a>| <a href="http://8868866.com" target="_blank">亚洲福利小视频</a>| <a href="http://haochen072.com" target="_blank">免费日韩av</a>| <a href="http://xissy.com" target="_blank">欧美a级一区</a>| <a href="http://www993997.com" target="_blank">亚洲三级电影全部在线观看高清</a>| <a href="http://xxx6688.com" target="_blank">亚洲欧美美女</a>| <a href="http://83wn.com" target="_blank">亚洲国产欧美不卡在线观看</a>| <a href="http://994745.com" target="_blank">亚洲大胆人体视频</a>| <a href="http://482896.com" target="_blank">欧美在线亚洲综合一区</a>| <a href="http://w7727.com" target="_blank">久久这里有精品视频</a>| <a href="http://k82net.com" target="_blank">国产亚洲一区二区三区在线观看</a>| <a href="http://132653.com" target="_blank">久久国内精品视频</a>| <a href="http://www559955.com" target="_blank">久久久精品视频成人</a>| <a href="http://707377c.com" target="_blank">亚洲第一视频</a>| <a href="http://dsjgqc.com" target="_blank">久久人人97超碰国产公开结果</a>| <a href="http://rosi2030.com" target="_blank">女生裸体视频一区二区三区</a>| <a href="http://liandezhi.com" target="_blank">雨宫琴音一区二区在线</a>| <a href="http://7345jj.com" target="_blank">欧美国产日韩在线</a>| <a href="http://5b6c.com" target="_blank">亚洲卡通欧美制服中文</a>| <a href="http://sikixixw12.com" target="_blank">午夜精品久久</a>| <a href="http://1188188.com" target="_blank">国产亚洲a∨片在线观看</a>| <a href="http://www-663345.com" target="_blank">久久久久国产精品午夜一区</a>| <a href="http://376524.com" target="_blank">久久这里只有</a>| <a href="http://saobitv.com" target="_blank">99国产精品私拍</a>| <a href="http://18cgh.com" target="_blank">欧美日韩中文字幕在线</a>| <a href="http://www-136hk.com" target="_blank">久久成人精品</a>| <a href="http://lao64.com" target="_blank">欧美国产精品中文字幕</a>| <a href="http://456985.com" target="_blank">亚洲一区二区成人</a>| <a href="http://xccp4888.com" target="_blank">国产精品日韩欧美</a>| <a href="http://alio-ai.com" target="_blank">另类激情亚洲</a>| <a href="http://4448884.com" target="_blank">日韩视频永久免费</a>| <a href="http://free18teen.com" target="_blank">久久综合给合久久狠狠狠97色69</a>| <a href="http://10669p.com" target="_blank">尤物九九久久国产精品的分类</a>| <a href="http://ayxchc.com" target="_blank">欧美激情五月</a>| <a href="http://687989.com" target="_blank">亚洲一区欧美二区</a>| <a href="http://chunhuigk.com" target="_blank">久久在线免费观看</a>| <a href="http://6556h.com" target="_blank">日韩亚洲欧美成人一区</a>| <a href="http://394141.com" target="_blank">麻豆久久精品</a>| <a href="http://lukushe.com" target="_blank">一本色道久久综合亚洲精品婷婷</a>| <a href="http://www278999.com" target="_blank">久久riav二区三区</a>| <a href="http://cdcpt.com" target="_blank">亚洲黄色毛片</a>| <a href="http://74va.com" target="_blank">国产亚洲一区二区三区</a>| <a href="http://yjizzdizhigmail.com" target="_blank">久久久久久一区二区三区</a>| <a href="http://300618.com" target="_blank">一区二区日韩精品</a>| <a href="http://430390.com" target="_blank">久久永久免费</a>| <a href="http://aimashe.com" target="_blank">久久av红桃一区二区小说</a>| <a href="http://chunhuigk.com" target="_blank">亚洲国产精品ⅴa在线观看</a>| <a href="http://7811c.com" target="_blank">国产精品亚洲综合天堂夜夜</a>| <a href="http://iotbzw.com" target="_blank">久久精品一区二区三区不卡</a>| <a href="http://456dv.com" target="_blank">中日韩美女免费视频网站在线观看</a>| <a href="http://saomm18.com" target="_blank">香蕉成人伊视频在线观看</a>| <a href="http://www40255.com" target="_blank">亚洲精品网站在线播放gif</a>| <a href="http://3bmmxyz.com" target="_blank">国产精品乱码</a>| <a href="http://329374.com" target="_blank">欧美日韩伦理在线</a>| <a href="http://21bridal.com" target="_blank">欧美主播一区二区三区美女 久久精品人 </a>| <a href="http://www72227.com" target="_blank">中文欧美日韩</a>| <a href="http://123lifenet.com" target="_blank">免费在线观看成人av</a>| <a href="http://cc28256.com" target="_blank">欧美一区二区日韩</a>| <a href="http://9kkkb.com" target="_blank">亚洲国产欧美在线</a>| <a href="http://nnnn34.com" target="_blank">亚洲福利在线观看</a>| <a href="http://ju255.com" target="_blank">国产精品视频99</a>| <a href="http://shyihegu.com" target="_blank">国产精品高潮呻吟久久</a>| <a href="http://hznaja.com" target="_blank">另类激情亚洲</a>| <a href="http://www-293456.com" target="_blank">久久午夜影视</a>| <a href="http://c7lc.com" target="_blank">午夜精品久久久久</a>| <a href="http://baixinlocal.com" target="_blank">亚洲女与黑人做爰</a>| <a href="http://868482.com" target="_blank">99re6热在线精品视频播放速度</a>| <a href="http://www442222.com" target="_blank">欧美激情导航</a>| <a href="http://91chaopron.com" target="_blank">久久综合中文字幕</a>| <a href="http://ca88tv.com" target="_blank">六月天综合网</a>| <a href="http://ccc36-com.com" target="_blank">久久精品99无色码中文字幕</a>| <a href="http://yanuoxun.com" target="_blank">欧美一区二区日韩</a>| <a href="http://yeyesaoqi.com" target="_blank">亚洲精品美女久久久久</a>| <a href="http://628155.com" target="_blank">亚洲国产精品一区在线观看不卡</a>| <a href="http://lorgou.com" target="_blank">一本大道久久a久久综合婷婷</a>| <a href="http://wzxjzx.com" target="_blank">亚洲永久精品国产</a>| <a href="http://ks180.com" target="_blank">亚洲黄色一区</a>| <a href="http://xiphosoft.com" target="_blank">亚洲精品国精品久久99热</a>| <a href="http://uu6623.com" target="_blank">国产视频一区欧美</a>| <a href="http://cczm4.com" target="_blank">国内精品久久久久久久影视蜜臀 </a>| <a href="http://haole081.com" target="_blank">亚洲性图久久</a>| <a href="http://wwwhhh396.com" target="_blank">亚洲一区二区欧美</a>| <a href="http://jm1688e.com" target="_blank">欧美国产视频在线</a>| <a href="http://fsxinruiph.com" target="_blank">亚洲激情在线观看</a>| <a href="http://avse69.com" target="_blank">欧美 亚欧 日韩视频在线</a>| <a href="http://www35177.com" target="_blank">香蕉久久a毛片</a>| <a href="http://cxjzcl.com" target="_blank">午夜精品久久99蜜桃的功能介绍</a>| <a href="http://pourporn.com" target="_blank">一本在线高清不卡dvd</a>| <a href="http://236664.com" target="_blank">国产一区二区三区免费观看 </a>| <a href="http://2061826.com" target="_blank">亚洲欧美清纯在线制服</a>| <a href="http://derinsolar.com" target="_blank">在线一区二区三区做爰视频网站</a>| <a href="http://jzsp94.com" target="_blank">亚洲视频在线观看三级</a>| <a href="http://jiangnanmm.com" target="_blank">亚洲卡通欧美制服中文</a>| <a href="http://www-35777.com" target="_blank">一区二区三区你懂的</a>| <a href="http://4008166177.com" target="_blank">日韩视频在线一区二区</a>| <a href="http://848585.com" target="_blank">亚洲在线视频观看</a>| <a href="http://xhamster0.com" target="_blank">亚洲欧美日韩国产成人精品影院</a>| <a href="http://hkbsi.com" target="_blank">久久久777</a>| <a href="http://xw4433.com" target="_blank">亚洲欧美日韩一区</a>| <a href="http://ycpeixun.com" target="_blank">欧美18av</a>| <a href="http://jsydjxgs.com" target="_blank">一区二区三区产品免费精品久久75 </a>| <a href="http://www5566szy.com" target="_blank">亚洲黄色性网站</a>| <a href="http://jlkcjz.com" target="_blank">亚洲伦理在线观看</a>| <a href="http://jsgf444.com" target="_blank">亚洲综合三区</a>| <a href="http://o6186.com" target="_blank">久久狠狠亚洲综合</a>| <a href="http://yw1396.com" target="_blank">欧美久久视频</a>| <a href="http://b1768.com" target="_blank">国产精品热久久久久夜色精品三区 </a>| <a href="http://eshop999.com" target="_blank">一本色道久久88综合日韩精品</a>| <a href="http://zj-jufeng.com" target="_blank">亚洲欧美日韩电影</a>| <a href="http://www225011.com" target="_blank">久久久精品一品道一区</a>| <a href="http://cp3824.com" target="_blank">欧美日韩免费高清一区色橹橹</a>| <a href="http://988tz.com" target="_blank">国产精品久久国产三级国电话系列</a>| <a href="http://wanmajc.com" target="_blank">国产一区 二区 三区一级</a>| <a href="http://88844401.com" target="_blank">影音先锋久久精品</a>| <a href="http://aiqianfang.com" target="_blank">亚洲影院色在线观看免费</a>| <a href="http://bjayj.com" target="_blank">久久爱www.</a>| <a href="http://34ak.com" target="_blank">日韩午夜在线视频</a>| <a href="http://www24822.com" target="_blank">欧美亚洲视频在线观看</a>| <a href="http://chunshanketang.com" target="_blank">欧美91精品</a>| <a href="http://9881600.com" target="_blank">国产精品午夜久久</a>| <a href="http://iietao.com" target="_blank">99视频在线精品国自产拍免费观看</a>| <a href="http://227002.com" target="_blank">黄色一区二区在线观看</a>| <a href="http://www-222304.com" target="_blank">亚洲一区激情</a>| <a href="http://246767.com" target="_blank">久久噜噜噜精品国产亚洲综合</a>| <a href="http://music444.com" target="_blank">欧美国产在线电影</a>| <a href="http://maokk88.com" target="_blank">欧美一区二区三区在线视频</a>| <a href="http://439368.com" target="_blank">欧美暴力喷水在线</a>| <a href="http://zd-jm.com" target="_blank">一区二区在线视频观看</a>| <a href="http://yyds16.com" target="_blank">一区二区电影免费观看</a>| <a href="http://916969.com" target="_blank">欧美黄在线观看</a>| <a href="http://submro.com" target="_blank">亚洲女人天堂av</a>| <a href="http://4254888.com" target="_blank">欧美精品成人</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>