锘??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩视频免费在线观看,欧美亚洲第一区,中国女人久久久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ì) 瀹嬪疂鍗?</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腑鐨勬秷鎭槧灝勶紝鍐嶅崟鍑?鑷畾涔?鑿滃崟錛屽脊鍑哄璇濇涔熸樉紺?娑堟伅鍦ㄨ鍥句腑澶勭悊"錛涗絾鏄紝鑻ユ垜浠皢瑙嗗浘涓殑娑堟伅鏄犲皠鍒犻櫎浜嗭紝灝變細(xì)鏄劇ず"娑堟伅鍦ㄦ鏋剁獥鍙d腑澶勭悊"錛佽繖楠岃瘉浜嗘垜浠叧浜庢秷鎭鐞嗛『搴忚榪扮殑姝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娑堟伅鐨勫疄闄呮祦鍔ㄩ『搴忔瘮鍓嶆枃鍙欒堪鐨?鍏堣鍥撅紝鍚庢鏋剁獥鍙?瑕佸鏉傚緱澶氾紝鏂囨。鍜屽簲鐢ㄧ▼搴忛兘鍙備笌浜嗘秷鎭殑澶勭悊榪囩▼銆傚鏋滄垜浠啀涓烘枃妗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涓嚜鍔ㄦ敼鍙樻帶浠朵綅緗拰澶у皬鐨勫璇濇綾伙紙杞級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ì)浣跨▼搴忓憳宕╂簝鐨勶紒
        涓轟簡瑙e喅榪欎釜闂錛屾垜鍐欎簡涓涓嚜鍔ㄦ敼鍙樻帶浠朵綅緗拰澶у皬鐨勫璇濇綾籆lxDialog銆備粠榪欎釜綾葷戶鎵跨殑瀵硅瘽妗嗙被錛屽彧瑕佸湪OnInitDialog()閲屽鎺т歡鍋氫竴浜涚畝鍗曠殑璁劇疆錛屽璇濇涓婄殑鎺т歡灝變細(xì)闅忕潃瀵硅瘽妗嗗ぇ灝忕殑鏀瑰彉鑰屾敼鍙樿嚜宸辯殑浣嶇疆鍜屽ぇ灝忋?br>        涓轟簡淇濆瓨鎺т歡淇℃伅錛屾垜瀹氫箟浜嗕竴涓粨鏋勶細(xì)

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

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

enum
{
    MOVEX = 0,  //  鎺т歡鍦╔鏂瑰悜錛堝乏鍙籌級縐誨姩
    MOVEY,  //  鎺т歡鍦╕鏂瑰悜錛堜笂涓嬶級縐誨姩
    MOVEXY,  //  鎺т歡鍦╔鏂瑰悜鍜孻鏂瑰悜鍚屾椂縐誨姩
    ELASTICX,  //  鎺т歡鍦╔鏂瑰悜錛堝搴︼級鏀瑰彉澶у皬
    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()鍑芥暟閲岄潰娣誨姞綾諱技涓嬮潰鐨勪唬鐮佸氨琛屼簡錛?/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>        鎴戣繕鎻愪緵浜嗕竴涓嚱鏁幫細(xì)

void ShowSizeIcon(BOOL bShow = TRUE);

        鏉ヨ緗槸鍚︽樉紺哄璇濇鍙充笅瑙掕〃紺哄彲浠ユ敼鍙樺ぇ灝忕殑鍥炬爣銆傝繖涓浘鏍囨槸浠庣郴緇熶腑璇誨彇鐨勶紝鎴戜笂闈㈢殑鎴浘鏄疻indows2000涓嬬殑錛屽湪WindowsXP涓氨浼?xì)鑷姩鍙樻垚XP椋庢牸鐨勩?br>        濂戒簡錛岄棽璇濅笉澶氳浜嗭紝涓嬮潰璐村嚭璇ュ璇濇綾籆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;  //  鏀懼浘鏍囩殑闈欐佹帶浠?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);

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

澶ц嚧浜嗚В浜咺RichEditOleCallback鎺ュ彛鍚庯紝灝卞簲璇ユ竻妤氾紝瑕佹樉紺哄浘鐗囩瓑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鐨勭戶鎵跨被涓嬌鐢ㄤ簡IRichiEditCallback鎺ュ彛鍚庯紝瀹冨氨涓嶅湪鏀寔Ctrl+C瀹炵幇鎷瘋礉鍔熻兘浜嗐傛垜鎯抽棶棰樺氨鍑哄湪IRichEditCallback鎺ュ彛涓娿?br>浠旂粏鐪嬩簡涓閬嶅畠鐨勫府鍔╂枃妗o紝鎴戝彂鐜伴棶棰樺氨鍑哄湪GetClipboardData涓婏紝鎴戞病鏈夊湪瀹冪殑瀹炵幇鏂規(guī)硶涓啓浠g爜錛屽彧鏄繑鍥炰簡S_OK錛屽鏋滆澶勭悊Ctrl+C錛屽氨蹇呴』榪斿洖E_NOTIMPL銆?br>
浠ヤ笂鏄垜榪戝嚑澶╃殑寮鍙戠粡鍘嗭紝涓庡ぇ瀹跺垎浜紝榪樺笇鏈涜礬榪囩殑楂樻墜澶氬鎸囨暀銆?br>鍦ㄤ互涓嬪叧浜嶳ichEdit鐨勪唬鐮佷緥瀛愪腑錛屾垜鍙傝冧簡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://nbpacking.com" target="_blank">亚洲欧美国产高清va在线播</a>| <a href="http://9113c.com" target="_blank">亚洲精品资源美女情侣酒店</a>| <a href="http://www-77537.com" target="_blank">欧美欧美天天天天操</a>| <a href="http://aass22.com" target="_blank">亚洲男人的天堂在线aⅴ视频</a>| <a href="http://www433ad.com" target="_blank">毛片精品免费在线观看</a>| <a href="http://xhamtube.com" target="_blank">亚洲小视频在线观看</a>| <a href="http://xashp.com" target="_blank">亚洲黄页一区</a>| <a href="http://www520590.com" target="_blank">国内精品视频在线观看</a>| <a href="http://xingzhiyin85.com" target="_blank">欧美日韩中文字幕</a>| <a href="http://www62265.com" target="_blank">女生裸体视频一区二区三区</a>| <a href="http://3531888.com" target="_blank">性欧美xxxx视频在线观看</a>| <a href="http://xingcheny.com" target="_blank">99精品欧美一区二区三区综合在线 </a>| <a href="http://98tangav.com" target="_blank">99热免费精品在线观看</a>| <a href="http://gzxyh88.com" target="_blank">国语对白精品一区二区</a>| <a href="http://3233328.com" target="_blank">国产精品青草久久</a>| <a href="http://a6a3.com" target="_blank">国产精品av久久久久久麻豆网</a>| <a href="http://csmdjs.com" target="_blank">麻豆成人精品</a>| <a href="http://5252bnet.com" target="_blank">久久精品视频免费</a>| <a href="http://www62265.com" target="_blank">午夜亚洲激情</a>| <a href="http://dsjgqc.com" target="_blank">亚洲一区二区在</a>| <a href="http://2343ww.com" target="_blank">一本大道av伊人久久综合</a>| <a href="http://xunlei520.com" target="_blank">亚洲国产精品欧美一二99</a>| <a href="http://444al.com" target="_blank">久久在精品线影院精品国产</a>| <a href="http://idc0558.com" target="_blank">欧美一区二区观看视频</a>| <a href="http://ipx758.com" target="_blank">亚洲视频在线视频</a>| <a href="http://xhs015.com" target="_blank">一本色道久久综合亚洲精品小说</a>| <a href="http://56lin.com" target="_blank">在线观看一区二区精品视频</a>| <a href="http://dfrllaser.com" target="_blank">国产视频久久久久久久</a>| <a href="http://cbb188.com" target="_blank">国产精自产拍久久久久久</a>| <a href="http://ztsctgs.com" target="_blank">欧美日韩综合</a>| <a href="http://884v.com" target="_blank">欧美性猛交xxxx乱大交蜜桃</a>| <a href="http://2996611.com" target="_blank">欧美日韩免费一区</a>| <a href="http://hongmoyi.com" target="_blank">欧美日韩亚洲高清一区二区</a>| <a href="http://cz-hongbangfloor.com" target="_blank">欧美精品大片</a>| <a href="http://www-833898.com" target="_blank">欧美日本网站</a>| <a href="http://7234hh.com" target="_blank">欧美日韩黄色大片</a>| <a href="http://kxm6868.com" target="_blank">欧美日韩在线视频观看</a>| <a href="http://3333577.com" target="_blank">欧美日韩综合在线</a>| <a href="http://www-tk3333.com" target="_blank">国产精品久久久久久久午夜片</a>| <a href="http://www901aaa.com" target="_blank">欧美日韩一区综合</a>| <a href="http://www55avav.com" target="_blank">国产精品家庭影院</a>| <a href="http://xxx6688.com" target="_blank">国产精品视屏</a>| <a href="http://wslsp.com" target="_blank">国产午夜精品理论片a级探花</a>| <a href="http://9906w.com" target="_blank">国产日韩欧美制服另类</a>| <a href="http://787282.com" target="_blank">好吊妞**欧美</a>| <a href="http://9uu91.com" target="_blank">亚洲国产高清高潮精品美女</a>| <a href="http://zz9876.com" target="_blank">在线日韩视频</a>| <a href="http://7885888.com" target="_blank">亚洲精品亚洲人成人网</a>| <a href="http://yjizzdizhigmail.com" target="_blank">一本色道久久综合</a>| <a href="http://www-440450.com" target="_blank">亚洲夜晚福利在线观看</a>| <a href="http://0000zz.com" target="_blank">欧美一区=区</a>| <a href="http://szjyf668.com" target="_blank">久久爱www</a>| <a href="http://116016.com" target="_blank">美女图片一区二区</a>| <a href="http://qibilly.com" target="_blank">亚洲国产精品激情在线观看</a>| <a href="http://342008.com" target="_blank">亚洲美女中出</a>| <a href="http://710477.com" target="_blank">亚洲一区观看</a>| <a href="http://eee285.com" target="_blank">久久九九国产精品怡红院</a>| <a href="http://sese135.com" target="_blank">久久综合久久美利坚合众国</a>| <a href="http://mengmujia.com" target="_blank">欧美韩日一区二区</a>| <a href="http://cao2014.com" target="_blank">欧美视频一区二区在线观看</a>| <a href="http://482896.com" target="_blank">国产麻豆综合</a>| <a href="http://laodaohang.com" target="_blank">在线电影院国产精品</a>| <a href="http://668www.com" target="_blank">亚洲精品久久久久久下一站</a>| <a href="http://jinlijun.com" target="_blank">国产精品99久久久久久有的能看</a>| <a href="http://shno1steel.com" target="_blank">亚洲欧美视频一区二区三区</a>| <a href="http://xmzszx.com" target="_blank">久久久久国产一区二区三区四区</a>| <a href="http://wnboke.com" target="_blank">免费在线亚洲欧美</a>| <a href="http://www-662553.com" target="_blank">亚洲精品乱码久久久久久蜜桃91 </a>| <a href="http://78gde.com" target="_blank">一区二区日韩精品</a>| <a href="http://320ur.com" target="_blank">午夜视频一区</a>| <a href="http://yyds16.com" target="_blank">免费成人网www</a>| <a href="http://baoyu1313.com" target="_blank">欧美日韩一区二区三区四区五区</a>| <a href="http://ganmabook.com" target="_blank">国产精品久久久久久久久免费樱桃 </a>| <a href="http://668334.com" target="_blank">欧美日韩另类综合</a>| <a href="http://nvpuow.com" target="_blank">国产精品一区二区久久精品 </a>| <a href="http://dh03.com" target="_blank">亚洲欧美日韩国产一区</a>| <a href="http://viwasmart.com" target="_blank">久久久国产精品亚洲一区 </a>| <a href="http://hbshwx.com" target="_blank">午夜亚洲伦理</a>| <a href="http://605012.com" target="_blank">你懂的网址国产 欧美</a>| <a href="http://www473333.com" target="_blank">欧美日韩爆操</a>| <a href="http://iietao.com" target="_blank">国产一区二区在线观看免费</a>| <a href="http://mmmm57.com" target="_blank">亚洲三级毛片</a>| <a href="http://569658.com" target="_blank">欧美在线免费观看视频</a>| <a href="http://dkmcjc.com" target="_blank">亚洲国产精品成人综合</a>| <a href="http://www-90567.com" target="_blank">中日韩在线视频</a>| <a href="http://223533.com" target="_blank">久久综合九色九九</a>| <a href="http://378682.com" target="_blank">国产精品国内视频</a>| <a href="http://tareandshare.com" target="_blank">永久免费精品影视网站</a>| <a href="http://ycpeixun.com" target="_blank">亚洲视频二区</a>| <a href="http://592xyy.com" target="_blank">麻豆精品一区二区av白丝在线</a>| <a href="http://royaljinma.com" target="_blank">欧美成人免费全部</a>| <a href="http://81ffff.com" target="_blank">亚洲欧美激情视频</a>| <a href="http://lucky5888.com" target="_blank">欧美激情国产日韩精品一区18</a>| <a href="http://www-49hk.com" target="_blank">国产农村妇女毛片精品久久莱园子 </a>| <a href="http://pfpf66.com" target="_blank">国产九九精品视频</a>| <a href="http://6767673.com" target="_blank">亚洲免费成人</a>| <a href="http://gg5gg.com" target="_blank">久久在线免费视频</a>| <a href="http://wwwsfsf11.com" target="_blank">亚洲午夜精品17c</a>| <a href="http://777888789.com" target="_blank">欧美暴力喷水在线</a>| <a href="http://www3344xz.com" target="_blank">国产一区在线观看视频</a>| <a href="http://7ccdd.com" target="_blank">亚洲无线一线二线三线区别av</a>| <a href="http://ssis378.com" target="_blank">牛人盗摄一区二区三区视频</a>| <a href="http://126900.com" target="_blank">亚洲欧美日本国产有色</a>| <a href="http://sp106.com" target="_blank">欧美日韩精品不卡</a>| <a href="http://szth186.com" target="_blank">亚洲日韩欧美一区二区在线</a>| <a href="http://www101804.com" target="_blank">亚洲欧美国产高清</a>| <a href="http://www-34909.com" target="_blank">亚洲人成小说网站色在线</a>| <a href="http://91ymz.com" target="_blank">久久久久久欧美</a>| <a href="http://caopanjia.com" target="_blank">国产欧美日韩视频一区二区三区</a>| <a href="http://72avav.com" target="_blank">中日韩午夜理伦电影免费</a>| <a href="http://xxmh686.com" target="_blank">欧美激情一区二区三区在线视频 </a>| <a href="http://naturalgiftfashion.com" target="_blank">久久精品中文字幕免费mv</a>| <a href="http://wy77777.com" target="_blank">国产精品国产</a>| <a href="http://042455.com" target="_blank">99这里有精品</a>| <a href="http://5177jy.com" target="_blank">欧美激情一区二区三区在线</a>| <a href="http://22400com.com" target="_blank">久久精品国产亚洲精品</a>| <a href="http://7885888.com" target="_blank">国产精品夜夜夜一区二区三区尤</a>| <a href="http://44ie.com" target="_blank">亚洲最新在线视频</a>| <a href="http://www353488.com" target="_blank">亚洲国产成人porn</a>| <a href="http://327099.com" target="_blank">久久免费黄色</a>| <a href="http://6666785.com" target="_blank">伊人久久男人天堂</a>| <a href="http://guanghezixun.com" target="_blank">久久国产精彩视频</a>| <a href="http://889028.com" target="_blank">亚洲欧美日韩精品久久奇米色影视 </a>| <a href="http://royaljinma.com" target="_blank">一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 </a>| <a href="http://www280999.com" target="_blank">国产色综合网</a>| <a href="http://456dv.com" target="_blank">欧美一区影院</a>| <a href="http://baoxiniao666.com" target="_blank">亚洲一区二区视频在线</a>| <a href="http://ylsnuha.com" target="_blank">国产精品yjizz</a>| <a href="http://69jp.com" target="_blank">亚洲欧洲av一区二区</a>| <a href="http://360inns.com" target="_blank">一区二区三区www</a>| <a href="http://www123hao.com" target="_blank">欧美先锋影音</a>| <a href="http://114499com.com" target="_blank">亚洲色图综合久久</a>| <a href="http://845821.com" target="_blank">亚洲美女在线观看</a>| <a href="http://www8888803.com" target="_blank">欧美日韩在线视频一区</a>| <a href="http://ks180.com" target="_blank">亚洲天堂成人在线观看</a>| <a href="http://xxxbobba.com" target="_blank">99精品欧美一区二区三区综合在线</a>| <a href="http://w3e8.com" target="_blank">欧美精品乱人伦久久久久久</a>| <a href="http://spvicarb.com" target="_blank">亚洲精品乱码久久久久久蜜桃麻豆</a>| <a href="http://118936.com" target="_blank">欧美高清成人</a>| <a href="http://tjpzgs.com" target="_blank">欧美精品观看</a>| <a href="http://131397.com" target="_blank">亚洲无线视频</a>| <a href="http://gbandal.com" target="_blank">亚洲综合丁香</a>| <a href="http://xajtyd.com" target="_blank">国产一区二区中文字幕免费看</a>| <a href="http://2456yo.com" target="_blank">久久久综合网站</a>| <a href="http://e7w2.com" target="_blank">巨乳诱惑日韩免费av</a>| <a href="http://ccc982.com" target="_blank">亚洲精品久久久久久久久</a>| <a href="http://wce-expo.com" target="_blank">亚洲欧洲综合另类在线</a>| <a href="http://339254.com" target="_blank">欧美色123</a>| <a href="http://wo6wo.com" target="_blank">欧美一区二区三区在线看</a>| <a href="http://mfgun.com" target="_blank">午夜影视日本亚洲欧洲精品</a>| <a href="http://chunshanketang.com" target="_blank">国产一区二区在线免费观看</a>| <a href="http://kakatok.com" target="_blank">另类av导航</a>| <a href="http://www-893333.com" target="_blank">欧美成人中文字幕</a>| <a href="http://9931111.com" target="_blank">中日韩高清电影网</a>| <a href="http://598327.com" target="_blank">亚洲一级二级</a>| <a href="http://cnxwlm.com" target="_blank">国内精品久久久久伊人av</a>| <a href="http://cao3636.com" target="_blank">农村妇女精品</a>| <a href="http://y65v.com" target="_blank">欧美日韩专区在线</a>| <a href="http://www-116036.com" target="_blank">欧美一区午夜精品</a>| <a href="http://wwzz3.com" target="_blank">久久一区中文字幕</a>| <a href="http://583775.com" target="_blank">夜夜嗨av一区二区三区免费区</a>| <a href="http://o3xo.com" target="_blank">亚洲性人人天天夜夜摸</a>| <a href="http://hhhh19.com" target="_blank">国产在线乱码一区二区三区</a>| <a href="http://hwgjcm.com" target="_blank">欧美高清在线一区二区</a>| <a href="http://22abb.com" target="_blank">欧美视频国产精品</a>| <a href="http://by2565.com" target="_blank">久久精品国产久精国产思思</a>| <a href="http://filark.com" target="_blank">老**午夜毛片一区二区三区</a>| <a href="http://hjersqc.com" target="_blank">一本色道综合亚洲</a>| <a href="http://988tz.com" target="_blank">欧美一区二区三区婷婷月色 </a>| <a href="http://7282789.com" target="_blank">欧美在线资源</a>| <a href="http://www-23918.com" target="_blank">久久综合五月</a>| <a href="http://www-kj777.com" target="_blank">亚洲性视频网站</a>| <a href="http://taikonghua.com" target="_blank">性做久久久久久久免费看</a>| <a href="http://b46n.com" target="_blank">亚洲人成人一区二区三区</a>| <a href="http://holotu.com" target="_blank">一区二区三区四区五区精品视频</a>| <a href="http://9955377.com" target="_blank">国产一区免费视频</a>| <a href="http://belerbb.com" target="_blank">日韩天堂在线观看</a>| <a href="http://writeingo.com" target="_blank">国内精品久久久久久 </a>| <a href="http://haose23.com" target="_blank">夜夜嗨av一区二区三区四区</a>| <a href="http://xprinter3d.com" target="_blank">亚洲一区观看</a>| <a href="http://xiangshi888.com" target="_blank">亚洲欧洲三级电影</a>| <a href="http://shanghaijiagu.com" target="_blank">亚洲一区影音先锋</a>| <a href="http://dd8uau0ncu.com" target="_blank">亚洲人成精品久久久久</a>| <a href="http://y7y7s.com" target="_blank">亚洲欧美一区二区三区在线</a>| <a href="http://xshgwy.com" target="_blank">亚洲日韩成人</a>| <a href="http://342008.com" target="_blank">久久av最新网址</a>| <a href="http://jilcool.com" target="_blank">一区二区三区视频在线</a>| <a href="http://592xyy.com" target="_blank">久久久久综合</a>| <a href="http://www218999.com" target="_blank">亚洲欧美一区二区三区在线</a>| <a href="http://344230.com" target="_blank">蜜桃精品久久久久久久免费影院</a>| <a href="http://08xxxc.com" target="_blank">午夜免费在线观看精品视频</a>| <a href="http://topjavhd.com" target="_blank">毛片一区二区三区</a>| <a href="http://7770790.com" target="_blank">欧美一区二区三区四区夜夜大片</a>| <a href="http://tao62bao.com" target="_blank">欧美国产日产韩国视频</a>| <a href="http://mes-dvd.com" target="_blank">久久久久成人精品免费播放动漫</a>| <a href="http://2cc8.com" target="_blank">欧美日韩国产123区</a>| <a href="http://www369cf.com" target="_blank">欧美aaaaaaaa牛牛影院</a>| <a href="http://yashikeji.com" target="_blank">国产九色精品成人porny</a>| <a href="http://zjkgjt.com" target="_blank">亚洲免费成人av</a>| <a href="http://gaobb52.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>