锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲成年人啊啊aa在线观看,久久久亚洲精品国产,亚洲人成人无码.www石榴
http://m.tkk7.com/wangxinsh55/category/20256.htmlzh-cn Thu, 09 Aug 2007 16:02:46 GMT Thu, 09 Aug 2007 16:02:46 GMT 60 宸х敤Java紼嬪簭鎶奧ord杞崲鎴怘tml鏂囦歡 http://m.tkk7.com/wangxinsh55/archive/2007/08/09/135558.htmlSIMONE SIMONE Thu, 09 Aug 2007 09:21:00 GMT http://m.tkk7.com/wangxinsh55/archive/2007/08/09/135558.html http://m.tkk7.com/wangxinsh55/comments/135558.html http://m.tkk7.com/wangxinsh55/archive/2007/08/09/135558.html#Feedback 0 http://m.tkk7.com/wangxinsh55/comments/commentRss/135558.html http://m.tkk7.com/wangxinsh55/services/trackbacks/135558.html
浠ヤ笅鏄紩鐢ㄧ墖孌碉細 package com; /** * 銆坧銆塗itle:Word鏂囨。杞琱tml綾匯?p銆?br>* 銆坧銆塂escription: 銆?p銆?br>* 銆坧銆塁opyright:() 2002銆?p銆?br>* @author 鑸墊墜 * @version 1.0 */ import com.jacob.com.*; import com.jacob.activeX.*; public class WordtoHtml { /** *鏂囨。杞崲鍑芥暟 *@param docfile word鏂囨。鐨勭粷瀵硅礬寰勫姞鏂囦歡鍚?鍖呭惈鎵╁睍鍚? *@param htmlfile 杞崲鍚庣殑html鏂囦歡緇濆璺緞鍜屾枃浠跺悕(涓嶅惈鎵╁睍鍚? */ public static void change(String docfile, String htmlfile) { ActiveXComponent app = new ActiveXComponent("Word.Application"); // 鍚姩word try { app.setProperty("Visible", new Variant(false)); //璁劇疆word涓嶅彲瑙?br>Object docs = app.getProperty("Documents").toDispatch(); Object doc = Dispatch.invoke(docs,"Open",Dispatch.Method,new Object[] { docfile, new Variant(false),new Variant(true) }, new int[1]).toDispatch(); // 鎵撳紑word鏂囦歡 Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {htmlfile, new Variant(8) }, new int[1]); // 浣滀負html鏍煎紡淇濆瓨鍒頒復鏃舵枃浠?br>Variant f = new Variant(false); Dispatch.call(doc, "Close", f); } catch (Exception e) { e.printStackTrace(); } finally { app.invoke("Quit", new Variant[]{}); } } public static void main(String[] strs){ WordtoHtml.change("c:\a\榪愯緭綆$悊璋冨害緋葷粺鎬諱綋鏂規.doc", "c:\a\t"); } }
]]>浣跨敤MFC寮鍙慉ctiveX鎺т歡 http://m.tkk7.com/wangxinsh55/archive/2007/02/28/101152.htmlSIMONE SIMONE Wed, 28 Feb 2007 07:33:00 GMT http://m.tkk7.com/wangxinsh55/archive/2007/02/28/101152.html http://m.tkk7.com/wangxinsh55/comments/101152.html http://m.tkk7.com/wangxinsh55/archive/2007/02/28/101152.html#Feedback 0 http://m.tkk7.com/wangxinsh55/comments/commentRss/101152.html http://m.tkk7.com/wangxinsh55/services/trackbacks/101152.html 鎽樿錛?/b> 鏈枃瀵笴OM緇勪歡涓殑ActiveX鎺т歡鐨凪FC寮鍙戞柟娉曡繘琛屼簡浠嬬粛錛岃榪頒簡鐢ㄦ埛鑷畾涔夊拰搴撳瓨灞炴с佹柟娉曚互鍙婁簨浠剁殑娣誨姞鏂規硶鍜屽睘鎬ч〉鐨勫埗浣滆繃紼嬨備嬌璇昏呰兘澶熸帉鎻″熀鏈殑MFC ActiveX寮鍙戞柟娉曘?br /> 銆銆鍏抽敭璇嶏細 MFC錛汚ctiveX鎺т歡錛汣OM 銆銆闃呰鐩綍錛?/b> 銆銆涓銆佸墠璦 銆銆浜屻佸緩绔嬪伐紼嬫鏋?/a> 銆銆 涓夈佸睘鎬с佹柟娉曚互鍙婁簨浠剁殑娣誨姞 銆銆鍥涖佸疄鐜板睘鎬ц〃 銆銆浜斻佸湪鍖呭紼嬪簭涓嬌鐢ˋctiveX鎺т歡 銆銆鍏佸皬緇?/a> 銆銆鍓嶈█ 銆銆ActiveX鎺т歡鏄竴縐嶅疄鐜頒簡涓緋誨垪鐗瑰畾鎺ュ彛鑰屼嬌鍏跺湪浣跨敤鍜屽瑙備笂鏇磋薄涓涓帶浠剁殑COM緇勪歡銆侫ctiveX鎺т歡榪欑鎶鏈秹鍙婂埌浜嗗嚑涔庢墍鏈夌殑COM鍜孫LE鐨勬妧鏈簿鍗庯紝濡傚彲閾炬帴瀵硅薄銆佺粺涓鏁版嵁浼犺緭銆丱LE鏂囨。銆佸睘鎬ч〉銆佹案涔呭瓨鍌ㄤ互鍙奜LE鑷姩鍖栫瓑銆?br /> 銆銆ActiveX鎺т歡浣滀負鍩烘湰鐨勭晫闈㈠崟鍏冿紝蹇呴』鎷ユ湁鑷繁鐨勫睘鎬у拰鏂規硶浠ラ傚悎涓嶅悓鐗圭偣鐨勭▼搴忓拰鍚戝寘瀹瑰櫒紼嬪簭鎻愪緵鍔熻兘鏈嶅姟錛屽叾灞炴у拰鏂規硶鍧囩敱鑷姩鍖栨湇鍔$殑IDispatch鎺ュ彛鏉ユ敮鎸併傞櫎浜嗗睘鎬у拰鏂規硶澶栵紝ActiveX鎺т歡榪樺叿鏈夊尯鍒簬鑷姩鍖栨湇鍔$殑涓縐嶇壒鎬?-浜嬩歡銆備簨浠舵寚鐨勬槸浠庢帶浠跺彂閫佺粰鍏跺寘瀹圭▼搴忕殑涓縐嶉氱煡銆備笌紿楀彛鎺т歡閫氳繃鍙戦佹秷鎭氱煡鍏舵嫢鏈夎呯被浼鹼紝ActiveX鎺т歡鏄氳繃瑙﹀彂浜嬩歡鏉ラ氱煡鍏跺寘瀹瑰櫒鐨勩備簨浠剁殑瑙﹀彂閫氬父鏄氳繃鎺т歡鍖呭鍣ㄦ彁渚涚殑IDispatch鎺ュ彛鏉ヨ皟鐢ㄨ嚜鍔ㄥ寲瀵硅薄鐨勬柟娉曟潵瀹炵幇鐨勩傚湪璁捐ActiveX鎺т歡鏃跺氨搴斿綋鑰冭檻鎺т歡鍙兘浼氬彂鐢熷摢浜涗簨浠朵互鍙婂寘瀹瑰櫒紼嬪簭灝嗕細瀵瑰叾涓殑鍝簺浜嬩歡鎰熷叴瓚e茍灝嗚繖浜涗簨浠跺寘鍚繘鏉ャ備笌鑷姩鍖栨湇鍔′笉鍚岋紝ActiveX鎺т歡鐨勬柟娉曘佸睘鎬у拰浜嬩歡鍧囨湁鑷畾涔夛紙custom錛夊拰搴撳瓨錛坰tock錛変袱縐嶄笉鍚岀殑綾誨瀷銆傝嚜瀹氫箟鐨勬柟娉曞拰灞炴т篃灝辨槸鏄櫘閫氱殑鑷姩鍖栨柟娉曞拰灞炴э紝鑷畾涔変簨浠跺垯鏄嚜宸遍夊彇鍚嶅瓧鍜孌ispatch ID鐨勪簨浠躲傝屾墍璋撶殑搴撳瓨鏂規硶銆佸睘鎬у拰浜嬩歡鍒欐槸浣跨敤浜咥ctiveX鎺т歡瑙勫畾浜嗗悕瀛楀拰Dispatch ID鐨?鏍囧噯"鏂規硶銆佸睘鎬у拰浜嬩歡銆?br /> 銆銆ActiveX鎺т歡鍙互浣緾OM緇勪歡浠庡瑙傚拰浣跨敤涓婅兘涓庢櫘閫氱殑紿楀彛鎺т歡涓鏍鳳紝鑰屼笖榪樻彁渚涗簡綾諱技浜庤緗甒indows鏍囧噯鎺т歡灞炴х殑灞炴ч〉錛屼嬌鍏惰兘澶熷湪鍖呭鍣ㄧ▼搴忕殑璁捐闃舵瀵笰ctiveX鎺т歡鐨勫睘鎬ц繘琛屽彲瑙嗗寲璁劇疆銆侫ctiveX鎺т歡鎻愪緵鐨勮繖浜涘姛鑳戒嬌寰楀鍏剁殑浣跨敤灝嗘槸闈炲父鏂逛究鐨勩傛湰鏂囦笅闈㈠嵆浠FC涓哄伐鍏峰ActiveX鎺т歡鐨勫紑鍙戣繘琛屼粙緇嶃?br />銆銆寤虹珛宸ョ▼妗嗘灦 銆銆閫氳繃"MFC ActiveX ControlWizard"鍚戝鍙互闈炲父瀹規槗鐨勫緩绔嬩竴涓狹FC ActiveX鎺т歡宸ョ▼妗嗘灦銆傛寜鐓ч粯璁ょ殑閫夐」灝嗗緩绔嬪鍥?鎵紺虹殑宸ョ▼緇撴瀯錛?br /> 鍥? 浣跨敤緙虹渷閫夐」寤虹珛鐨凙ctiveX鎺т歡宸ョ▼緇撴瀯 銆銆鍏朵腑錛宊DSample68鍜宊DSample68Events榪欎袱涓帴鍙e皢涓哄鎴風▼搴忔彁渚涙湰鎺т歡鐨勫睘鎬с佹柟娉曚互鍙婂彲鑳藉搷搴旂殑浜嬩歡銆傚叏灞鍑芥暟DllRegisterServer錛堬級鍜孌llUnregisterServer錛堬級鍒嗗埆鐢ㄤ簬鎺т歡鍦ㄦ敞鍐岃〃鐨勬敞鍐屽拰娉ㄩ攢錛屼竴鑸笉闇瑕佸鍏惰繘琛屾敼鍔ㄣ?br /> 銆銆搴旂敤紼嬪簭綾諱粠COleControlModule緇ф壙銆傝孋OleControlModule鏈夋槸浠嶤WinApp媧劇敓錛屾彁渚涗簡鍒濆鍖栨帶浠舵ā鍧楃殑鍔熻兘銆侰Sample68PropPage鐨勫熀綾繪槸COlePropertyPage錛孋Dialog綾葷殑媧劇敓綾伙紝涓昏璐熻矗瀵瑰睘鎬ч〉涓鍥懼艦鐣岄潰涓嬬敤鎴鋒帶浠跺睘鎬х殑鏄劇ず銆傛帶浠剁被CSample68Ctrl綾繪槸榪欏嚑涓被涓瘮杈冮噸瑕佺殑涓涓被錛屽ぇ閮ㄥ垎瀹炶川鎬у伐浣滈兘鍦ㄨ綾誨畬鎴愶紝鍏跺熀綾諱負COleControl錛屼粠CWnd鍜孋CmdTarget緇ф壙錛屽洜姝よ兘澶熶負鎺т歡瀵硅薄鎻愪緵涓嶮FC紿楀彛瀵硅薄鐩稿悓鐨勫姛鑳藉悓鏃朵篃鎻愪緵浜嗕竴緋誨垪浜嬩歡瑙﹀彂鍑芥暟鍜屼竴涓垎鍙戞槧灝勮〃錛屼嬌ActiveX鎺т歡鑳藉鍚屽寘瀹瑰櫒紼嬪簭鏈夋晥鍦拌繘琛屼氦浜掋傝綾葷殑媧劇敓綾誨皢鍙互鍦ㄦ弧瓚崇壒瀹氱殑鏉′歡鏃跺悜鎺т歡鐨勫寘瀹瑰櫒鍙戦佹秷鎭垨鏄Е鍙戜簨浠訛紝浠ラ氱煡鍖呭鍣ㄧ▼搴忓湪鎺т歡鍐呮湁涓浜涢噸瑕佺殑浜嬩歡鍙戠敓銆傚垎鍙戞槧灝勮〃鏄叾涓緢閲嶈鐨勪竴涓儴鍒嗭紝璐熻矗鍚戝寘瀹瑰櫒紼嬪簭鏆撮湶鎺т歡鎻愪緵鐨勬柟娉曞拰灞炴с傚浘2灞曠ず浜咰OleControl綾誨湪鎺т歡涓庡寘瀹瑰櫒閫氫俊涓墍璧風殑浣滅敤銆傚彲浠ョ湅鍑猴紝ActiveX鎺т歡涓庡叾鍖呭鍣ㄤ箣闂寸殑鎵鏈夐氫俊榪囩▼閮芥槸鐢盋OleControl鏉ュ畬鎴愮殑錛?br /> 鍥? COleControl鍦ˋctiveX鎺т歡涓庡寘瀹瑰櫒閫氫俊涓殑浣滅敤 銆銆鎺т歡綾誨鍩虹被COleControl鐨凮nDraw錛堬級鍑芥暟榪涜浜嗛噸杞斤紝鍚戝鐢熸垚浜嗗涓嬬己鐪佷唬鐮侊紝鍏朵綔鐢ㄦ槸鍦ㄦ帶浠剁殑瀹㈡埛鍖虹粯鍒朵竴涓き鍦嗐傚湪緙栫▼榪囩▼涓氬父瑕佸鍏惰繘琛屾浛鎹細 void CSample68Ctrl::OnDraw( CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid) { 銆// TODO: Replace the following code with your own drawing code. 銆pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH))); 銆pdc->Ellipse(rcBounds); }
鍥? 鎻掑叆ActiveX鎺т歡 鍥? 鎻掑叆鐨勫緟嫻嬭瘯鎺т歡 銆銆瀵瑰悜瀵肩敓鎴愮殑浠g爜榪涜緙栬瘧鍚庯紝灝嗕駭鐢熸墿灞曞悕涓簅cx鐨凙ctiveX鎺т歡銆侫ctiveX鎺т歡騫朵笉鑳界嫭绔嬭繍琛岋紝鍙兘鍦ㄥ寘瀹瑰櫒紼嬪簭涓墠鑳藉榪愯銆傞氬父錛屼負浜嗚皟璇曟柟渚胯屽浣跨敤VC++闄勫甫鐨凙ctiveX Control Test Container宸ュ叿浠ュ湪嫻嬭瘯闃舵瀵笰ctiveX鎺т歡榪涜璋冭瘯銆傚湪嫻嬭瘯宸ュ叿鐨勫鎴峰尯鐐瑰嚮榧犳爣鍙抽敭錛屽茍閫変腑寮瑰嚭鑿滃崟鐨?Insert New Control鈥?鑿滃崟欏癸紝灝嗗脊鍑哄浘3鎵紺虹殑瀵硅瘽妗嗭紝宸︿晶鐨勫垪琛ㄦ涓垪鍑轟簡褰撳墠緋葷粺涓墍鏈夋敞鍐岀殑ActiveX鎺т歡錛岄変腑瑕佹祴璇曠殑鎺т歡騫跺皢鍏舵彃鍏ュ埌嫻嬭瘯紼嬪簭鍗沖彲閫氳繃"Control"鑿滃崟涓嬬殑鍚勮彍鍗曢」瀵規帶浠剁殑鏂規硶銆佸睘鎬т互鍙婁簨浠剁瓑榪涜嫻嬭瘯銆傚湪浣嶄簬涓嬫柟鐨勫垎鍓茶鍥句腑灝嗚窡韙樉紺哄嚭璋冭瘯璁板綍錛堝弬瑙佸浘4錛夈?br />銆銆灞炴с佹柟娉曚互鍙婁簨浠剁殑娣誨姞 鍥? 灞炴х殑娣誨姞 鍥? 鏂規硶鐨勬坊鍔?br /> 銆銆瀵笰ctiveX鎺т歡灞炴с佹柟娉曞拰浜嬩歡鐨勬坊鍔犲潎鏈夊簱瀛樺拰鑷畾涔変袱縐嶃傚叾涓灞炴у拰鏂規硶鐨勬坊鍔犲湪MFC ClassWizard瀵硅瘽妗嗙殑Automation欏典腑閫氳繃鎸夐挳"Add Property鈥?鍜?Add Method鈥?寮瑰嚭濡傚浘5鍜屽浘6鎵紺虹殑娣誨姞灞炴у拰娣誨姞鏂規硶鐨勫璇濇鏉ュ畬鎴愩傚浜庡簱瀛樺睘鎬у拰鏂規硶錛屽彲浠ョ洿鎺ヤ粠External name緇勫悎妗嗙殑涓嬫媺鍒楄〃涓夊彇錛孖mplementation欏瑰皢鑷姩璁劇疆涓篠tock銆傚浜庤嚜瀹氫箟灞炴у拰鏂規硶鐨勬坊鍔犱笌鍦ㄨ嚜鍔ㄥ寲瀵硅薄涓負鎺ュ彛娣誨姞灞炴у拰鏂規硶鐨勮繃紼嬩竴鏍鳳紝ClassWizard灝嗗湪.odl鏂囦歡鍜屾帶浠剁被鐢熸垚鐩稿簲鐨勪唬鐮侊紝涓嬮潰緇欏嚭鐨勬槸鍦ㄦ帶浠剁被涓疄鐜扮殑閮ㄥ垎鍒嗗彂鏄犲皠浠g爜錛?br />鈥︹?br />// Dispatch maps //{{AFX_DISPATCH(CSample68Ctrl) CString m_message; afx_msg void OnMessageChanged(); afx_msg short GetXPos(); afx_msg void SetXPos(short nNewValue); afx_msg short GetYPos(); afx_msg void SetYPos(short nNewValue); afx_msg short MessageLen(); //}}AFX_DISPATCH DECLARE_DISPATCH_MAP() // Dispatch and event IDs public: enum { //{{AFX_DISP_ID(CSample68Ctrl) dispidMessage = 1L, dispidXPos = 2L, dispidYPos = 3L, dispidMessageLen = 4L, //}}AFX_DISP_ID }; 鈥︹?br />BEGIN_DISPATCH_MAP(CSample68Ctrl, COleControl) //{{AFX_DISPATCH_MAP(CSample68Ctrl) DISP_PROPERTY_NOTIFY(CSample68Ctrl, "Message", m_message, OnMessageChanged, VT_BSTR) DISP_PROPERTY_EX(CSample68Ctrl, "XPos", GetXPos, SetXPos, VT_I2) DISP_PROPERTY_EX(CSample68Ctrl, "YPos", GetYPos, SetYPos, VT_I2) DISP_FUNCTION(CSample68Ctrl, "MessageLen", MessageLen, VT_I2, VTS_NONE) DISP_STOCKPROP_BACKCOLOR() DISP_STOCKPROP_CAPTION() DISP_STOCKPROP_FORECOLOR() //}}AFX_DISPATCH_MAP END_DISPATCH_MAP() 鈥︹?/td>
銆銆鍦ㄨ繖閲屽叡娣誨姞浜嗕竴涓嚜瀹氫箟鏂規硶MessageLen錛堬級鍜屼笁縐嶅簱瀛樺睘鎬ackColor銆丆aption鍜孎oreColor錛堝垎鍒〃紺烘帶浠剁殑鑳屾櫙鑹層佹爣棰樺拰鍓嶅彴鑹詫級銆佷袱涓互Get/Set鏂瑰紡鑾峰彇鐨勮嚜瀹氫箟灞炴Pos銆乊Pos鍜屼竴涓互鎴愬憳鍙橀噺鏂瑰紡瀹炵幇鐨勮嚜瀹氫箟灞炴essage銆傝繖鍑犱釜鑷畾涔夊睘鎬у垎鍒〃紺鴻鏄劇ず瀛楃涓茬殑x銆亂鍧愭爣鍜岃鏄劇ず鐨勫唴瀹廣傚浜庨噰鍙朑et/Set鏂瑰紡鑾峰彇鐨勫睘鎬э紝搴斿綋鍦ㄦ帶浠剁被涓負鍏舵坊鍔犵浉搴旂殑鎴愬憳鍑芥暟錛屽茍淇敼鍏禛et銆丼et鎴愬憳鍑芥暟鐨勫疄鐜拌繃紼嬶細short m_nYPos; short m_nXPos; 鈥︹?br />short CSample68Ctrl::GetXPos() { 銆return m_nXPos; } void CSample68Ctrl::SetXPos(short nNewValue) { 銆m_nXPos = nNewValue; 銆SetModifiedFlag(); } short CSample68Ctrl::GetYPos() { 銆return m_nYPos; } void CSample68Ctrl::SetYPos(short nNewValue) { 銆m_nYPos = nNewValue; 銆SetModifiedFlag(); }
銆銆瀵逛簬浠ユ垚鍛樺彉閲忔柟寮忓垱寤虹殑灞炴essage錛屽悜瀵艱繕涓哄叾鐢熸垚浜嗕竴涓秷鎭搷搴斿嚱鏁幫細void CSample68Ctrl::OnMessageChanged() { SetModifiedFlag(); }
銆銆鍙璇ュ睘鎬х殑鍊艱鏇存敼錛孫nMessageChanged錛堬級鍑芥暟鍗充細琚皟鐢ㄣ?br /> 銆銆涓轟簡浣夸笂榪板睘鎬ц緗鑳屾櫙鑹層佸墠鏅壊絳夎兘澶熶笌鎺т歡瀹為檯鑱旂郴璧鋒潵錛岄渶瑕佹浛鎹㈡帶浠剁被OnDraw錛堬級鍑芥暟涓敱鍚戝鐢熸垚鐨勯偅閮ㄥ垎浠g爜銆備緥濡傦紝涓嬮潰榪欐浠g爜鍗充互鍓嶉潰娣誨姞鐨勫睘鎬ц緗綔涓哄弬鏁板鹼紝鍦ㄦ帶浠朵腑鏄劇ず涓涓插瓧絎︼細// 鐢ㄨ儗鏅壊璁劇疆鐢誨埛 CBrush Brush(TranslateColor(GetBackColor())); // 鐢ㄥ墠鍙拌壊璁劇疆瀛椾綋棰滆壊 pdc->SetTextColor(TranslateColor(GetForeColor())); // 緇樺埗鑳屾櫙 pdc->FillRect(rcBounds, &Brush); // 璁劇疆瀛椾綋鑳屾櫙閫忔槑 pdc->SetBkMode(TRANSPARENT); // 鏄劇ず瀛楃 pdc->TextOut(m_nXPos, m_nYPos, m_message);
銆銆涓轟簡浣垮睘鎬ц緗洿鏀瑰悗錛屽叾鏁堟灉鑳藉绔嬪嵆鍦ㄦ帶浠朵笂鏄劇ず鍑烘潵錛屽簲褰撳湪涓庡睘鎬ц緗浉鍏崇殑鍑芥暟瀹炵幇涓皟鐢↖nvalidateControl錛堬級浠ユ洿鏂版帶浠剁殑鏄劇ず銆?br /> 銆銆鍙互緙栬瘧紼嬪簭騫跺湪ActiveX Control Test Container宸ュ叿涓鍏惰繘琛屾祴璇曘傚湪鎻掑叆鎺т歡鍚庯紝閫氳繃"Invoke Methods鈥?鑿滃崟欏瑰脊鍑哄鍥?鎵紺虹殑瀵硅瘽妗嗐傚湪Method Name緇勫悎妗嗕腑鍙互閫夋嫨瑕佹祴璇曠殑灞炴у拰鏂規硶銆傚叾涓紝瀵逛簬灞炴х殑嫻嬭瘯鍒嗗埆鏈塒rogGet鍜孭rogSet鐨勮鏄庝互鎸囧嚭鏄灞炴у肩殑鑾峰彇涓庤緗傚湪Parameter緙栬緫妗嗕腑杈撳叆瑕佽緗殑鍙傛暟鍙婂叾瀵瑰簲鐨勫弬鏁扮被鍨嬶紝鐐瑰嚮SetValue鎸夐挳灝嗘妸璇ュ弬鏁板兼坊鍔犲埌鍙傛暟鍒楄〃妗嗭紝鏈鍚庣偣鍑籌nvoke鎸夐挳灝嗗湪鎺т歡搴旂敤璁劇疆鐨勫睘鎬у茍鎵ц鎸囧畾鐨勬柟娉曘傚浜庢湁榪斿洖鍊肩殑鏂規硶錛屽叾鎵ц緇撴灉灝嗗湪Return緙栬緫妗嗕腑鏄劇ず銆傚鏋滃嚭鐜頒簡寮傚父鎿嶄綔錛屽湪Exception緙栬緫妗嗕腑灝嗕細鏄劇ず鍑虹浉搴旂殑寮傚父閿欒淇℃伅銆傚浘8緇欏嚭浜嗙粡榪囧睘鎬ц緗殑鎺т歡鐣岄潰銆?br /> 鍥? 瀵瑰睘鎬с佹柟娉曠殑嫻嬭瘯 鍥? 璁劇疆浜嗗睘鎬у悗鐨勬帶浠?br /> 銆銆瀵逛簬鎺т歡灞炴х殑娣誨姞錛屽湪MFC ClassWizard瀵硅瘽妗嗙殑ActiveX Events欏典腑閫氳繃"Add Event鈥?鎸夐挳寮瑰嚭濡傚浘9鎵紺虹殑"Add Event"浜嬩歡娣誨姞瀵硅瘽妗嗐備笌鏂規硶銆佸睘鎬х殑娣誨姞綾諱技錛屽湪External name緇勫悎妗嗕腑鍙互杈撳叆瑕佹坊鍔犵殑鑷畾涔変簨浠跺悕縐幫紝涔熷彲浠ヤ粠涓嬫媺鍒楄〃閫夋嫨搴撳瓨浜嬩歡銆侷mplementation欏瑰皢鏍規嵁鎵瑕佹坊鍔犵殑浜嬩歡綾誨瀷鑰岃嚜鍔ㄨ緗甋tock鎴朇ustom閫夐」銆侫ctiveX鎺т歡灝嗛氳繃娣誨姞鐨勪簨浠舵潵閫氱煡瀹瑰櫒紼嬪簭鏈夌壒瀹氱殑浜嬩歡鍙戠敓錛屽簱瀛樹簨浠跺涓洪敭鐩樸侀紶鏍囦簨浠訛紝灝嗙敱COleControl鑷姩榪涜澶勭悊銆傚浜庤嚜瀹氫箟浜嬩歡錛屽垯鍙槸鍦?odl鏂囦歡鍜屾帶浠剁被涓坊鍔犱簡浜嬩歡鏄犲皠琛ㄧ瓑蹇呰鐨勪唬鐮侊紙浠g爜闄勪笅錛夛紝鑷充簬搴斿綋鍦ㄤ綍縐嶆潯浠朵笅瑙﹀彂璇ヤ簨浠墮』鐢卞紑鍙戜漢鍛樿嚜琛岀紪鍐欎唬鐮併?br /> 鍥? 浜嬩歡鐨勬坊鍔?br />dispinterface _DSample68Events { 銆properties: 銆銆// Event interface has no properties 銆methods: 銆銆// NOTE - ClassWizard will maintain event information here. 銆銆// Use extreme caution when editing this section. 銆銆//{{AFX_ODL_EVENT(CSample68Ctrl) 銆銆[id(1)] void MsgOut(); 銆銆//}}AFX_ODL_EVENT }; 鈥︹?br />// Event maps //{{AFX_EVENT(CSample68Ctrl) void FireMsgOut() {FireEvent(eventidMsgOut,EVENT_PARAM(VTS_NONE));} //}}AFX_EVENT DECLARE_EVENT_MAP() // Dispatch and event IDs public: enum { 銆//{{AFX_DISP_ID(CSample68Ctrl) 銆鈥︹?br />銆eventidMsgOut = 1L, 銆//}}AFX_DISP_ID }; 鈥︹?br />BEGIN_EVENT_MAP(CSample68Ctrl, COleControl) //{{AFX_EVENT_MAP(CSample68Ctrl) EVENT_CUSTOM("MsgOut", FireMsgOut, VTS_NONE) //}}AFX_EVENT_MAP END_EVENT_MAP()
銆銆涓婅堪浠g爜娣誨姞浜嗕竴涓狹sgOut鐨勮嚜瀹氫箟浜嬩歡錛屽彲浠ュ湪閫氳繃璋冪敤FireMsgOut錛堬級鏉ユ縺鍙戙備笅闈㈠Message灞炴х殑OnMessageChanged錛堬級娑堟伅鍝嶅簲鍑芥暟榪涜淇敼錛屾瘡褰揗essage灞炴у唴瀹硅鏇存敼閮戒細璋冪敤璇ュ嚱鏁幫紝鍦ㄨ鍑芥暟涓皟鐢ㄦ鍓嶆坊鍔犵殑MessageLen錛堬級鏂規硶浠ョ‘瀹氭洿鏀瑰悗鐨凪essage灞炴х殑瀛楃涓查暱搴︼紝鍦ㄩ暱搴﹀ぇ浜?0鏃惰皟鐢‵ireMsgOut錛堬級瑙﹀彂MsgOut浜嬩歡錛?br />void CSample68Ctrl::OnMessageChanged() { 銆InvalidateControl(); 銆if (MessageLen() >= 10) 銆銆FireMsgOut(); 銆銆SetModifiedFlag(); }
鍥?0 閫夋嫨瑕佽褰曠殑浜嬩歡 銆銆鍦ㄧ敤ActiveX Control Test Container瀵瑰垰娣誨姞鐨勪簨浠惰繘琛屾祴璇曟椂錛岄鍏堥氳繃"Control"鑿滃崟涓嬬殑"Logging鈥?鑿滃崟欏瑰脊鍑哄鍥?0鎵紺虹殑瀵硅瘽妗嗭紝騫朵粠"Events"灞炴ч〉涓変腑瑕佽窡韙褰曠殑浜嬩歡銆傚綋閫氳繃Invoke Methods瀵硅瘽妗嗚緗甅essage灞炴х殑鍐呭瓚呰繃10涓瓧絎﹀悗錛屼綅浜庣▼搴忔鏋朵笅鏂圭殑鍒嗗壊瑙嗗浘灝嗚褰曟帶浠舵墍瑙﹀彂鐨凪sgOut浜嬩歡錛堝鍥?1鎵紺猴級銆?br /> 鍥?1 瀵逛簨浠剁殑嫻嬭瘯 銆銆瀹炵幇灞炴ц〃 銆銆灞炴ц〃鏄疉ctiveX鎺т歡鎵鐗規湁鐨勪竴縐嶆妧鏈紝鍙互鍦ㄥ寘瀹瑰櫒紼嬪簭澶勪簬璁捐闃舵鏃朵負鍏舵彁渚涗竴涓彲瑙嗗寲鐨勪漢鏈轟氦浜掔晫闈紝騫跺彲浠ラ氳繃鍏跺鎺т歡鐨勮嚜瀹氫箟灞炴у拰搴撳瓨灞炴ц繘琛岃緗傚湪鐢ㄥ悜瀵肩敓鎴愮▼搴忔鏋剁殑鍚屾椂鍗沖凡緇忕敓鎴愪簡涓涓┖鐨勭敤浜庣鐞嗚嚜瀹氫箟灞炴х殑灞炴ч〉銆傚湪浠g爜涓婇氳繃鎺т歡綾誨疄鐜版枃浠朵腑鐨勫睘鎬ч〉ID琛ㄥ鍏惰繘琛岀淮鎶わ細BEGIN_PROPPAGEIDS(CSample68Ctrl, 1) PROPPAGEID(CSample68PropPage::guid) END_PROPPAGEIDS(CSample68Ctrl)
銆銆榪欓噷鐨凜Sample68PropPage綾繪槸浠嶤OlePropertyPage媧劇敓鍑烘潵鐨勶紝鑰孋OlePropertyPage鐨勫熀綾誨張鏄疌Dialog錛屽洜姝や笉闅懼彂鐜癈Sample68PropPage涓庨氬父鐨勫璇濇綾繪槸姣旇緝鐩鎬技鐨勩傚彲浠ヨ薄澶勭悊瀵硅瘽妗嗕竴鏍峰湪璧勬簮瑙嗗浘涓負緙虹渷鐨勫睘鎬ч〉娣誨姞涓庤嚜瀹氫箟灞炴х浉鍏崇殑浜や簰鐢ㄦ帶浠訛紝騫墮氳繃ClassWizard灝嗚繖浜涙帶浠朵笌綾繪垚鍛樺彉閲忓緩绔嬬粦瀹氬叧緋匯備絾鏄湁涓鐐逛笉鍚岋紝灝辨槸鍦ㄧ粦瀹氭垚鍛樺彉閲忔椂榪樿涓庢帶浠朵腑鐨勭浉搴斿睘鎬у緩绔嬭搗瀵瑰簲鍏崇郴銆傚鍥?2鎵紺猴紝鍦∣ptional property name緇勫悎妗嗕腑杈撳叆鑷畾涔夊睘鎬у悕鎴栨槸鐩存帴浠庝笅鎷夊垪琛ㄩ夋嫨搴撳瓨灞炴у悕錛孋lassWizard鍚戝灝嗗湪灞炴ч〉綾葷殑DoDataExchange錛堬級鍑芥暟涓坊鍔犳帶浠躲佸彉閲忓拰灞炴х殑緇戝畾浠g爜錛?br />void CSample68PropPage::DoDataExchange(CDataExchange* pDX) { 銆//{{AFX_DATA_MAP(CSample68PropPage) 銆DDP_Text(pDX, IDC_MESSAGE, m_sMessage, _T("Message") ); 銆DDX_Text(pDX, IDC_MESSAGE, m_sMessage); 銆DDP_Text(pDX, IDC_TITLE, m_sCaption, _T("Caption") ); 銆DDX_Text(pDX, IDC_TITLE, m_sCaption); 銆DDP_Text(pDX, IDC_XPOS, m_nXPos, _T("XPos") ); 銆DDX_Text(pDX, IDC_XPOS, m_nXPos); 銆DDP_Text(pDX, IDC_YPOS, m_nYPos, _T("YPos") ); 銆DDX_Text(pDX, IDC_YPOS, m_nYPos); //}}AFX_DATA_MAP DDP_PostProcessing(pDX); }
鍥?2 鎴愬憳鍙橀噺銆佹帶浠朵笌灞炴х殑緇戝畾 銆銆榪欓噷鍙槸鍦ㄥ悜瀵肩敓鎴愮殑緙虹渷灞炴ч〉涓疄鐜頒簡鑷畾涔夊睘鎬х殑鍙鍖栬緗傝櫧鐒朵篃鍙互鐢ㄧ浉鍚岀殑鏂規硶涓哄簱瀛樺睘鎬ц繘琛岃緗紝浣嗘槸鏇村鐨勮繕鏄噰鐢ㄦ坊鍔犲簱瀛樺睘鎬ч〉ID鐨勬柟娉曟潵鐩存帴浣跨敤搴撳瓨灞炴ч〉鏉ュ鍏惰繘琛岀淮鎶ゃ備緥濡傦紝瀵逛簬搴撳瓨灞炴ackColor鍜孎oreColor錛屽彲浠ラ氳繃ID鍙蜂負CLSID_CcolorPropPage鐨勫簱瀛樺睘鎬ч〉鏉ヨ繘琛岃緗紝鍦ㄥ皢鍏舵坊鍔犲埌灞炴ч〉ID琛ㄧ殑鍚屾椂涓瀹氳娉ㄦ剰淇敼BEGIN_PROPPAGEIDS錛堬級瀹忕殑灞炴ч〉璁℃暟錛屽惁鍒欏皢浼氬紩璧風郴緇熺殑宕╂簝錛?br />BEGIN_PROPPAGEIDS(CSample68Ctrl, 2) PROPPAGEID(CSample68PropPage::guid) PROPPAGEID(CLSID_CColorPropPage) END_PROPPAGEIDS(CSample68Ctrl)
銆銆緇х畫鍦ˋctiveX Control Test Container涓祴璇曟帶浠訛紝灝嗗叾鎻掑叆鍚庨夋嫨"Edit"鑿滃崟鐨?Properties鈥?鑿滃崟欏癸紝灝嗗脊鍑哄叆鍥?3鎵紺虹殑灞炴ц〃銆傝灞炴ц〃鍏辨湁涓変釜灞炴ч〉錛屽叾涓涓涓睘鎬ч〉涓哄垰鎵嶇紪杈戠殑鑷畾涔夊睘鎬ч〉錛岀浜屼釜灞炴ч〉錛堝鍥?4鎵紺猴級鍗充負CLSID_CcolorPropPage鎵鎸囧畾鐨勯鑹插睘鎬ч〉錛堜負搴撳瓨灞炴ч〉錛夛紝鏈鍚庝竴涓睘鎬ч〉鍒欐槸鍚戝鑷姩娣誨姞鐨勬墿灞曞睘鎬ч〉銆傚湪灞炴ц〃涓緗簡鐩稿簲鐨勫睘鎬у悗錛岀偣鍑?搴旂敤"鎸夐挳鍗沖彲璁╂帶浠朵嬌鐢ㄦ柊鐨勫睘鎬с傝繖涓庡湪"Invoke Methods"瀵硅瘽妗嗕腑鎵瀹屾垚鐨勫姛鑳戒竴鏍鳳紝浣嗘樉鐒惰鏂逛究鐨勫銆傝屼笖鍦ㄥ寘瀹瑰櫒紼嬪簭鐨勮璁¢樁孌碉紝涔熸槸閫氳繃璇ュ睘鎬ц〃鏉ュ畬鎴愭帶浠朵笌瀹㈡埛鐨勫睘鎬ц緗氦浜掔殑銆?br /> 鍥?3 鎺т歡鐨勫睘鎬ц〃 鍥?4 棰滆壊灞炴ч〉 銆銆鍦ㄥ寘瀹圭▼搴忎腑浣跨敤ActiveX鎺т歡 銆銆瀵逛簬ActiveX鎺т歡鐨勫寘瀹瑰櫒紼嬪簭錛屽茍涓嶉渶瑕佽薄浣跨敤OLE鏂囨。鏈嶅姟鍣ㄦ垨ActiveX鏂囨。鏈嶅姟鍣ㄥ璞¢偅鏍風紪鍐欑壒瀹氱殑鍖呭鍣ㄧ▼搴忔鏋訛紝鐩存帴灝嗘帶浠舵坊鍔犲埌宸ョ▼騫跺湪瀵硅瘽妗嗕笂鍒涘緩鍗沖彲瀵瑰叾榪涜浣跨敤銆?br /> 銆銆閫氳繃"Project"鑿滃崟涓嬬殑"Add To Project"鑿滃崟欏瑰脊鍑虹殑"Components and Controls鈥?瀛愯彍鍗曢」鎵撳紑涓涓?Components and Controls Gallery"瀵硅瘽妗嗭紝榪涘叆鍒癛egistered ActiveX Controls鐩綍涓嬶紝閫夊彇鍓嶉潰鍒涘緩鐨凙ctiveX鎺т歡錛屽茍灝嗗叾娣誨姞鍒板伐紼嬨傚悜瀵煎皢浼氬湪宸ョ▼涓坊鍔犱竴涓叧浜庢ActiveX鎺т歡鐨勫寘瑁呯被錛屽茍鍦?Controls"宸ュ叿鏍忎腑娣誨姞涓涓〃紺烘鎺т歡鐨勫浘鏍囥傚彲浠ヨ薄浣跨敤鍏朵粬鐨勬爣鍑嗘帶浠朵竴鏍峰皢鍏舵斁緗埌瀵硅瘽妗嗚祫婧愪腑錛屽茍淇敼鍏剁己鐪佸睘鎬с傞櫎姝や箣澶栵紝榪樺彲浠ュ湪紼嬪簭涓氳繃瀵規帶浠跺寘瑁呯被鎴愬憳鍑芥暟鐨勪嬌鐢ㄦ潵鍔ㄦ佹洿鏀規帶浠剁殑灞炴ц緗備緥濡傦紝涓嬮潰榪欐浠g爜閫氳繃鍖呰綾誨璞_ctrlTest鍦ㄧ▼搴忚繍琛屾湡闂村姩鎬佽緗簡鎺т歡鐨刋Pos銆乊Pos 浠ュ強Message灞炴э細// 鏇存柊鏄劇ず UpdateData(); // 鍔ㄦ佹洿鏀規帶浠剁殑Message灞炴?br />m_ctrlTest.SetMessage(m_sInput); // 璁劇疆鏄劇ず鍧愭爣 m_ctrlTest.SetXPos(10); m_ctrlTest.SetYPos(10);
鍥?5 娣誨姞浜嬩歡鍝嶅簲鍑芥暟 銆銆鍦ㄨ祫婧愯鍥句腑鐢ㄩ紶鏍囧彸閿偣鍑繪斁緗簬瀵硅瘽妗嗕笂鐨凙ctiveX鎺т歡錛屽茍浠庡脊鍑鴻彍鍗曚腑閫夋嫨"Events鈥?鑿滃崟欏癸紝灝嗗脊鍑哄鍥?5鎵紺虹殑瀵硅瘽妗嗭紝鍦ㄥ乏杈圭殑鍒楄〃妗嗕腑鏄劇ず浜嗘帶浠舵彁渚涚殑浜嬩歡錛屽弻鍑諱簨浠跺皢鍦ㄥ寘瀹瑰櫒紼嬪簭涓坊鍔犵浉搴旂殑浜嬩歡澶勭悊鍑芥暟鍜屼簨浠舵槧灝勮〃錛屽茍鍙互鍦ㄥ搷搴旀帶浠跺彂鍑虹殑浜嬩歡鍚庤繘琛岀浉搴旂殑澶勭悊錛?br />BEGIN_EVENTSINK_MAP(CSample69Dlg, CDialog) //{{AFX_EVENTSINK_MAP(CSample69Dlg) ON_EVENT(CSample69Dlg, IDC_SAMPLE68CTRL1, 1 /* MsgOut */, OnMsgOutSample68ctrl1, VTS_NONE) //}}AFX_EVENTSINK_MAP END_EVENTSINK_MAP() 鈥︹?br />void CSample69Dlg::OnMsgOutSample68ctrl1() { 銆// 寰楀埌杈撳叆瀛楃鏁?br />銆int nNum = m_ctrlTest.MessageLen(); 銆// 鍥炴樉淇℃伅 銆m_sInput.Format("杈撳叆瀛楃澶錛屽叡杈撳叆浜?d涓瓧絎?, nNum); 銆// 鏄劇ず淇℃伅 銆UpdateData(FALSE); }
銆銆浠庝笂榪板ActiveX鎺т歡鐨勪嬌鐢ㄨ繃紼嬪彲浠ョ湅鍑哄叾涓庢爣鍑嗘帶浠剁殑浣跨敤騫舵病鏈変粈涔堝お澶х殑鍖哄埆錛岄氳繃鍖呰綾諱嬌寰楀湪瀹㈡埛紼嬪簭涓鎺т歡灞炴с佹柟娉曠殑浣跨敤鍙互璞′嬌鐢ㄦ櫘閫歁FC綾諱竴鏍風畝鍗曘傚彟澶栵紝鍦ㄦ帶浠剁殑鍖呰綾諱腑榪樻彁渚涙湁Create錛堬級鏂規硶錛屼嬌鍦ㄧ▼搴忚繍琛屾湡闂翠篃鑳藉鍔ㄦ佸垱寤烘帶浠躲?br /> 銆銆灝忕粨 銆銆灝界ActiveX鎺т歡浠庢妧鏈笂闆嗘垚浜咰OM鍜孫LE鐨勮澶氱簿鍗庢妧鏈紝浣嗙敱浜嶮FC瀵笰ctiveX鎺т歡鎻愪緵浜嗗己澶х殑鏀寔錛屼嬌寰楀ActiveX鎺т歡鐨勫紑鍙戞垚涓轟竴浠墮潪甯稿鏄撶殑浜嬫儏銆備絾瑕佹繁鍒葷悊瑙ctiveX鎺т歡鎶鏈紝榪樿瀵逛竴浜涘熀紜鎶鏈湁涓涓熀鏈殑姒傚康錛屾湰鏂囩殑鐩殑騫朵笉鍦ㄤ簬浠嬬粛濡備綍緙栧啓涓涓狝ctiveX鎺т歡錛岃屾槸閫氳繃瀵規帶浠剁殑鍒涘緩榪囩▼鐨勫垎鏋愯屼嬌璇昏呰兘澶熷ActiveX鎺т歡鐨勫紑鍙戞湁涓涓柊鐨勮璇嗐傛湰鏂囨墍榪頒唬鐮佸湪Windows 2000 Professional涓嬬敱Microsoft Visual C++ 6.0緙栬瘧閫氳繃銆?br /> ]]> 騫蟲椂縐瘡鐨勬湁鍏矼SDN 閲孉ctiveX寮鍙戞妧鏈殑涓浜涢摼鎺? http://m.tkk7.com/wangxinsh55/archive/2007/02/28/101150.htmlSIMONE SIMONE Wed, 28 Feb 2007 07:18:00 GMT http://m.tkk7.com/wangxinsh55/archive/2007/02/28/101150.html http://m.tkk7.com/wangxinsh55/comments/101150.html http://m.tkk7.com/wangxinsh55/archive/2007/02/28/101150.html#Feedback 0 http://m.tkk7.com/wangxinsh55/comments/commentRss/101150.html http://m.tkk7.com/wangxinsh55/services/trackbacks/101150.html http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vccore/html/_core_activex_control_containers.3a_.using_controls_in_a_non.2d.dialog_container.asp 2. BHO 緙栫▼鎸囧崡錛?br />ms-help://MS.MSDNQTR.2003FEB.2052/dnwebgen/html/bho.htm 3. 瀹氬埗嫻忚鍣ㄥ悜瀵鹼細 ms-help://MS.MSDNQTR.2003FEB.2052/progie/workshop/browser/hosting/wbcustomization.htm 4. 浣跨敤 ATL AXHost 鎵胯澆 ActiveX 鎺т歡 ms-help://MS.MSDNQTR.2003FEB.2052/vccore/html/vclrfHostingActiveXControlsUsingATLAXHost.htm 5. The Shell Drag/Drop Helper Object ms-help://MS.MSDNQTR.2003FEB.2052/dnwui/html/ddhelp_pt1.htm 6. Using ATL 3.0 to Host the Video Control ms-help://MS.MSDNQTR.2003FEB.2052/directshow_sp1/htm/hostingthevideocontrolinanatlbasedapplication.htm 7. HOWTO: Dynamically Add ActiveX Controls to ATL Composite Control ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q218442.htm 8. HOWTO: Control the Context Menu in an ATL HTML Control ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbie_dev/en-us/ie_dev/Q274202.htm 11.WebBrowser 涓嶅彲瑙佹椂涓嶈Е鍙?DocumentComplete BUG錛?br />http://support.microsoft.com/kb/q259935/ 12.閲嶆柊鍙戝竷 Visual C++ ActiveX 鎺т歡 http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vccore/html/_core_regular_dlls_dynamically_linked_to_mfc.3a_.overview.asp 13.浜嬩歡 ms-help://MS.MSDNQTR.2003FEB.2052/progie/workshop/browser/mshtml/tutorials/sink.htm 14. 鍗囩駭鐜版湁鐨?ActiveX 鎺т歡 ms-help://MS.MSDNQTR.2003FEB.2052/vccore/html/_core_Upgrading_an_Existing_ActiveX_Control_to_be_Used_on_the_Internet.htm 15.PRB: TranslateAccelerator() Not Called for ActiveX Controls ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q183167.htm 16.FIX: ActiveX Control Events Are Not Fired in ATL Dialog ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q190530.htm 17. Creating Custom Explorer Bars, Tool Bands, and Desk Bands ms-help://MS.MSDNQTR.2003FEB.2052/shellcc/platform/shell/programmersguide/shell_adv/bands.htm 23 Designing Secure ActiveX Controls ms-help://MS.MSDNQTR.2003FEB.2052/activex/workshop/components/activex/security.htm 24. Packaging ActiveX Controls ms-help://MS.MSDNQTR.2003FEB.2052/activex/workshop/components/activex/packaging.htm 25.COM Objects Overviews and Tutorials ms-help://MS.MSDNQTR.2003FEB.2052/icom/workshop/components/com/comobj.htm 26.The Windows Internet (WinINet) application programming interface (API) ms-help://MS.MSDNQTR.2003FEB.2052/wininet/wininet/about_wininet.htm 27. ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q150204.htm 28.HOWTO: Call a Script Method from an ActiveX Script Host ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q222966.htm 29. HOWTO: Add Toolbars and Tooltips to ActiveX Controls ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q194294.htm 30.HOWTO: Draw ActiveX Controls with Child Controls in Design Time ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q198732.htm 31.HOWTO: Adding Tooltips to ATL ActiveX Controls ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q201540.htm 32. PRB: MFC ActiveX Control BLOB Props Missing While Printing in Internet Explorer ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbie_dev/en-us/ie_dev/Q200932.htm 33.HOWTO: Enable ActiveX Control Event Handling on a Web Page ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbie_dev/en-us/ie_dev/Q200839.htm 34.PRB: ActiveX Control Window Is Not Created Until Visible in Internet Explorer ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbie_dev/en-us/ie_dev/Q195188.htm 35. HOWTO: Detect IE's STOP Button Click in ActiveX Control ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q167956.htm 36.HOWTO: Renaming an ActiveX Control After its Project Is Created ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbvisualc/en-us/visualc/Q185695.htm 37.HOWTO: Troubleshoot ActiveX Control Crashes in Internet Explorer ms-help://MS.MSDNQTR.2003FEB.2052/enu_kbie_dev/en-us/ie_dev/Q247845.htm 38.SAMPLE: AXSH.EXE Demonstrates Implementing ActiveX Script Hosts http://download.microsoft.com/download/vc60pro/sample3/1/WIN98/EN-US/Axsh.exe 39.OLE 綰跨▼妯″瀷鐨勮鏄庡拰宸ヤ綔鏂瑰紡 http://support.microsoft.com/kb/q150777/ 40.The COM Programmer's Cookbook ms-help://MS.MSDNQTR.2003FEB.2052/dncomg/html/msdn_com_co.htm 41. 鍒╃敤鏅氭湡緇戝畾鐨勫▉鍔涚紪鍐欐偍鑷繁鐨?COM 璋冪敤浼犺緭 ms-help://MS.MSDNQTR.2003FEB.2052/dntaloc/html/comleverage.htm 44. ActiveX Controls on the Internet http://msdn2.microsoft.com/en-us/library/d0d6f721.aspx 46. IContextMenu ms-help://MS.MSDNQTR.2003FEB.2052/shellcc/platform/shell/programmersguide/shell_int/shell_int_extending/extensionhandlers/contextmenuhandlers.htm ]]>
主站蜘蛛池模板:
亚洲成人午夜在线 |
精品国产亚洲男女在线线电影 |
亚洲国产成人久久精品动漫 |
久久国产精品免费一区二区三区 |
亚洲精品成人在线 |
一级女性全黄生活片免费看 |
免费国产a国产片高清网站 |
国产AV日韩A∨亚洲AV电影 |
亚洲精品成a人在线观看 |
一区二区在线免费视频 |
亚洲日韩中文无码久久 |
久久综合给合久久国产免费 |
97亚洲熟妇自偷自拍另类图片 |
xxxxwww免费 |
亚洲av无码偷拍在线观看 |
亚洲国产精品碰碰 |
国产午夜精品久久久久免费视 |
久久久久亚洲AV成人片 |
成人免费午夜视频 |
男女猛烈激情xx00免费视频 |
亚洲中文久久精品无码 |
18pao国产成视频永久免费 |
亚洲午夜成人精品无码色欲 |
丁香亚洲综合五月天婷婷 |
美女视频黄a视频全免费网站色窝 |
亚洲色图黄色小说 |
国产在线ts人妖免费视频 |
精品一区二区三区高清免费观看 |
图图资源网亚洲综合网站 |
四虎成人免费观看在线网址 |
产传媒61国产免费 |
亚洲精品不卡视频 |
免费jjzz在线播放国产 |
久久w5ww成w人免费 |
福利片免费一区二区三区 |
香蕉视频在线观看亚洲 |
性做久久久久免费看 |
99久久国产精品免费一区二区 |
亚洲国产最大av |
亚洲国产精品一区二区第一页
|
久久夜色精品国产噜噜亚洲a |