锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精一区二区三区,国产精品网曝门,亚洲精品美女久久久久http://m.shnenglu.com/tx7do/category/1514.html涓ヤ互寰嬪繁,瀹戒互寰呬漢. 涓夋濊屽悗琛?</br> GMail/GTalk: yanglinbo#google.com;</br> MSN/Email: tx7do#yahoo.com.cn;</br> QQ: 3 0 3 3 9 6 9 2 0 .zh-cnFri, 08 Jun 2012 03:32:31 GMTFri, 08 Jun 2012 03:32:31 GMT60寮婧愭棩蹇楃郴緇焞og4cplus(涓?http://m.shnenglu.com/tx7do/articles/11721.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Fri, 25 Aug 2006 20:51:00 GMThttp://m.shnenglu.com/tx7do/articles/11721.htmlhttp://m.shnenglu.com/tx7do/comments/11721.htmlhttp://m.shnenglu.com/tx7do/articles/11721.html#Feedback3http://m.shnenglu.com/tx7do/comments/commentRss/11721.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/11721.html 

緇忚繃鐭殏鐨勭啛鎮夎繃紼嬶紝log4cplus宸茬粡琚垚鍔熷簲鐢ㄥ埌浜嗘垜鐨勯」鐩腑鍘諱簡錛屾晥鏋滆繕涓嶉敊錛岋細錛夐櫎浜嗕笂鏂囨彁鍙婄殑
鍔熻兘涔嬪錛屼笅闈㈠皢浠嬬粛log4cplus鎻愪緵鐨勭嚎紼嬪拰濂楁帴瀛楃殑浣跨敤鎯呭喌銆?br>

### NDC ###
棣栧厛鎴戜滑鍏堜簡瑙d竴涓媗og4cplus涓祵鍏ヨ瘖鏂笂涓嬫枃錛圢ested Diagnostic Context錛夛紝鍗砃DC銆傚log緋葷粺鑰岃█錛?br>褰撹緭鍏ユ簮鍙兘涓嶆涓涓紝鑰屽彧鏈変竴涓緭鍑烘椂錛屽線寰闇瑕佸垎杈╂墍瑕佽緭鍑烘秷鎭殑鏉ユ簮錛屾瘮濡傛湇鍔″櫒澶勭悊鏉ヨ嚜涓嶅悓
瀹㈡埛绔殑娑堟伅鏃跺氨闇瑕佷綔姝ゅ垽鏂紝NDC鍙互涓轟氦閿欐樉紺虹殑淇℃伅鎵撲笂涓涓爣璁?stamp)錛?浣垮緱杈ㄨ宸ヤ綔鐪嬭搗鏉?br>姣旇緝瀹規槗浜涳紝鍛靛懙銆傝繖涓爣璁版槸綰跨▼鐗規湁鐨勶紝鍒╃敤浜嗙嚎紼嬪眬閮ㄥ瓨鍌ㄦ満鍒訛紝縐頒負綰跨▼縐佹湁鏁版嵁錛圱hread-specific
 Data錛屾垨TSD錛夈?鐪嬩簡涓涓嬫簮浠g爜錛岀浉鍏沖畾涔夊涓嬶紝鍖呮嫭瀹氫箟銆佸垵濮嬪寲銆佽幏鍙栥佽緗拰娓呴櫎鎿嶄綔錛?/pre>
linux pthread
#   define LOG4CPLUS_THREAD_LOCAL_TYPE pthread_key_t*
#   define LOG4CPLUS_THREAD_LOCAL_INIT ::log4cplus::thread::createPthreadKey()
#   define LOG4CPLUS_GET_THREAD_LOCAL_VALUE( key ) pthread_getspecific(
*key)
#   define LOG4CPLUS_SET_THREAD_LOCAL_VALUE( key, value ) pthread_setspecific(
*key, value)
#   define LOG4CPLUS_THREAD_LOCAL_CLEANUP( key ) pthread_key_delete(
*key)

win32
#   define LOG4CPLUS_THREAD_LOCAL_TYPE DWORD
#   define LOG4CPLUS_THREAD_LOCAL_INIT TlsAlloc()
#   define LOG4CPLUS_GET_THREAD_LOCAL_VALUE( key ) TlsGetValue(key)
#   define LOG4CPLUS_SET_THREAD_LOCAL_VALUE( key, value ) \       TlsSetValue(key, static_cast(value))
#   define LOG4CPLUS_THREAD_LOCAL_CLEANUP( key ) TlsFree(key)
				
浣跨敤璧鋒潵姣旇緝綆鍗曪紝鍦ㄦ煇涓嚎紼嬩腑錛?/pre>
    NDC& ndc = log4cplus::getNDC();
    ndc.push(
"ur ndc string");
    LOG4CPLUS_DEBUG(logger, 
"this is a NDC test");
     
    ndc.pop();
        
    LOG4CPLUS_DEBUG(logger, 
"There should be no NDC");
    ndc.remove();


   
褰撹瀹氳緭鍑烘牸寮?Layout)涓篢TCCLayout鏃訛紝杈撳嚭濡備笅錛?/pre>
10-21-04 21:32:58, [3392] DEBUG test  - this is a NDC test
10-21-04 21:32:58, [3392] DEBUG test <> - There should be no NDC...
涔熷彲浠ュ湪鑷畾涔夌殑杈撳嚭鏍煎紡涓嬌鐢∟DC(鐢?x) 錛屾瘮濡傦細
     
  std::
string pattern = "NDC:[%x]  - %m %n";
  std::auto_ptr _layout(
new PatternLayout(pattern));
     
 LOG4CPLUS_DEBUG(_logger, 
"This is the FIRST log message")
  NDC
& ndc = log4cplus::getNDC();
  ndc.push(
"ur ndc string"); 
  LOG4CPLUS_WARN(_logger, 
"This is the SECOND log message")
  ndc.pop();
 ndc.remove(); 
    

   
杈撳嚭濡備笅錛?/pre>
NDC:[]  - This is the FIRST log message...
NDC:[ur ndc string]  - This is the SECOND log message...
				
鍙﹀涓縐嶆洿綆鍗曠殑浣跨敤鏂規硶鏄湪綰跨▼涓洿鎺ョ敤NDCContextCreator錛?/pre>
    NDCContextCreator _first_ndc("ur ndc string");
    LOG4CPLUS_DEBUG(logger, 
"this is a NDC test")

   
涓嶅繀鏄懼紡鍦拌皟鐢╬ush/pop浜嗭紝鑰屼笖褰撳嚭鐜板紓甯告椂錛岃兘澶熺‘淇漰ush涓巔op鐨勮皟鐢ㄦ槸鍖歸厤鐨勩?/pre>
    
### 綰跨▼ ###
綰跨▼鏄痩og4cplus涓殑鍓駭鍝侊紝 鑰屼笖浠呬綔浜嗘渶鍩烘湰鐨勫疄鐜幫紝浣跨敤璧鋒潵涔熷紓甯哥畝鍗曪紝鍙涓斿繀欏昏
鍦ㄦ淳鐢熺被涓噸杞絩un鍑芥暟鍗沖彲錛?/pre>
class TestThread : public AbstractThread
{
public:
    
virtual void run();
}
;
                
void TestThread::run()

   
/* do sth. */ 
    
}

log4cplus鐨勭嚎紼嬫病鏈夎冭檻鍚屾銆佹閿侊紝鏈変簰鏂ワ紝瀹炵幇綰跨▼鍒囨崲鐨勫皬鍑芥暟鎸哄埆鑷寸殑錛?/pre>
void log4cplus::thread::yield()
{
#if defined(LOG4CPLUS_USE_PTHREADS)
    ::sched_yield();
#elif defined(LOG4CPLUS_USE_WIN32_THREADS)
    ::Sleep(
0);
#endif
}
				
### 濂楁帴瀛?###
濂楁帴瀛椾篃鏄痩og4cplus涓殑鍓駭鍝侊紝鍦╪amespace log4cplus::helpers涓紝瀹炵幇浜咰/S鏂瑰紡鐨勬棩蹇楄褰曘?/pre>
1. 瀹㈡埛绔▼搴忛渶瑕佸仛鐨勫伐浣滐細
/* 瀹氫箟涓涓猄ocketAppender綾誨瀷鐨勬寕鎺ュ櫒 */SharedAppenderPtr _append(new SocketAppender(host, 8888"ServerName"));
/* 鎶奯append鍔犲叆鍒發ogger涓?nbsp;*/Logger::getRoot().addAppender(_append);
/*  SocketAppender綾誨瀷涓嶉渶瑕丩ayout, 鐩存帴璋冪敤瀹忓氨鍙互灝嗕俊鎭彂寰loggerServer浜?nbsp;*/LOG4CPLUS_INFO(Logger::getRoot(), "This is a test: ")

銆愭敞銆?榪欓噷瀵瑰畯鐨勮皟鐢ㄥ叾瀹炴槸璋冪敤浜哠ocketAppender::append錛岄噷闈㈡湁涓涓暟鎹紶杈撶害瀹氾紝鍗沖厛鍙戦?br>涓涓悗緇暟鎹殑鎬婚暱搴︼紝鐒跺悗鍐嶅彂閫佸疄闄呯殑鏁版嵁錛?/pre>
     
    SocketBuffer buffer 
= convertToBuffer(event, serverName);
    SocketBuffer msgBuffer(LOG4CPLUS_MAX_MESSAGE_SIZE);
    msgBuffer.appendSize_t(buffer.getSize());
    msgBuffer.appendBuffer(buffer);        
				
2. 鏈嶅姟鍣ㄧ紼嬪簭闇瑕佸仛鐨勫伐浣滐細
/* 瀹氫箟涓涓猄erverSocket */ServerSocket serverSocket(port);
 
/* 璋冪敤accept鍑芥暟鍒涘緩涓涓柊鐨剆ocket涓庡鎴風榪炴帴 */Socket sock = serverSocket.accept();
				
姝ゅ悗鍗沖彲鐢ㄨsock榪涜鏁版嵁read/write浜?褰㈠錛?/pre>
SocketBuffer msgSizeBuffer(sizeof(unsigned int));
if(!clientsock.read(msgSizeBuffer))
{
    
return;
}

unsigned 
int msgSize = msgSizeBuffer.readInt();
SocketBuffer buffer(msgSize);
if(!clientsock.read(buffer))
{
    
return;
}

涓轟簡灝嗚鍒扮殑鏁版嵁姝e父鏄劇ず鍑烘潵錛岄渶瑕佸皢SocketBuffer瀛樻斁鐨勫唴瀹硅漿鎹㈡垚InternalLoggingEvent鏍煎紡錛?/pre>
spi::InternalLoggingEvent event = readFromBuffer(buffer);
鐒跺悗杈撳嚭錛?br>
Logger logger = Logger::getInstance(event.getLoggerName());
logger.callAppenders(
event);
				
銆愭敞銆?read/write鏄寜鐓ч樆濉炴柟寮忓疄鐜扮殑錛屾剰鍛崇潃瀵瑰叾璋冪敤鐩村埌婊¤凍浜嗘墍鎺ユ敹鎴栧彂閫佺殑涓暟鎵嶈繑鍥炪?/pre>

]]>寮婧愭棩蹇楃郴緇焞og4cplus(鍏?http://m.shnenglu.com/tx7do/articles/11720.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Fri, 25 Aug 2006 20:50:00 GMThttp://m.shnenglu.com/tx7do/articles/11720.htmlhttp://m.shnenglu.com/tx7do/comments/11720.htmlhttp://m.shnenglu.com/tx7do/articles/11720.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/11720.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/11720.htmllog4cplus鍦ㄥ緢澶氭柟闈㈠仛鐨勯兘寰堝嚭鑹詫紝浣嗘槸浣跨敤榪囩▼鏈変簺鍦版柟鎰熻涓嶇埥銆傚湪緇х畫鍚規崸涔嬪墠鎴戝厛鎶婁笉鐖戒箣澶?br />紼嶅井鎻愪竴鎻愶紝鐒跺悗緇х畫浠嬬粛鍏充簬綰跨▼鍜屽鎺ュ瓧鐨勭煡璇嗐?br />

### 涓浜涘彲浠ユ敼榪涗箣澶?###
1. 鐢ㄦ埛鑷畾涔塋ogLevel鐨勫疄鐜版満鍒朵笉澶熷紑鏀?/pre>
		
鍦ㄧ浜旂瘒涓浘緇忎粙緇嶈繃濡備綍瀹炵幇鐢ㄦ埛鑷瀹氫箟LogLevel錛屼負浜嗗疄鐜版瘮杈冪悊鎯崇殑鏁堟灉錛岀敋鑷寵繕闇瑕佹敼log4cplus
鐨勬簮浠g爜銆傦細錛?/pre>
2. 鐢熸垚Logger瀵硅薄鐨勬満鍒跺彲浠ユ敼榪?/pre>
		
鎴戝湪浣跨敤鏃跺欙紝緇忓父闇瑕佸湪涓嶅悓鐨勬枃浠躲佸嚱鏁頒腑鎿嶄綔鍚屼竴涓猯ogger錛岃櫧鐒秎og4cplus瀹炵幇浜嗘爲鐘跺瓨鍌ㄤ互鍙婃牴鎹?br />鍚嶇О鐢熸垚Logger錛屽嵈娌℃湁鍏呭垎鍒╃敤榪欐牱鐨勭壒鐐圭‘淇濆悓涓涓悕縐板搴旂殑logger瀵硅薄鐨勫敮涓鎬э紝姣斿浠ヤ笅浠g爜錛?/pre>
		
聽聽聽 ... ...
聽聽聽
聽聽聽 Logger logger1 = Logger::getInstance("test");
聽聽聽 Logger logger2 = Logger::getInstance("test");
聽聽聽 Logger * plogger1 = &logger1;
聽聽聽 Logger * plogger2 = &logger2;
聽聽聽 std::cout << "plogger1: " << plogger1 << std::endl << "plogger2: " << plogger2 << std::endl;
聽聽聽
聽聽聽 ... ...
聽聽聽
聽聽聽
榪愯緇撴灉錛?/pre>
plogger1: 0xbfffe5a0
plogger2: 0xbfffe580
				
浠庣粨鏋滃彲浠ョ湅鍑猴紝鏄庢槑鏄悓涓涓狶ogger錛屼絾姣忔璋冪敤閮戒細浜х敓涓涓狶ogger鍓湰錛岃櫧鐒剁粨鏋滄槸姝g‘鐨勶紙鍥犱負灝嗗瓨
鍌ㄥ拰鎿嶄綔鍒嗗紑浜嗭級錛屼絾鏄祫婧愭湁浜涙氮璐癸紝鎴戠湅浜嗕竴涓媗og4cplus鐨勪唬鐮侊紝鍏跺疄鍙互鎸夌収濡備笅鏂瑰紡瀹炵幇錛堢ず鎰忔?br />鐨勶級錛?/pre>
#include <iostream>
#include <string>
#include <map>
/* forward declaration */
class Logger;
class LoggerContainer
{
public:
聽聽聽 ~LoggerContainer();
聽聽聽 Logger * getinstance(const std::string & strLogger);
private:
聽聽聽 typedef std::map<:string,> LoggerMap;
聽聽聽 LoggerMap loggerPtrs;
};
class Logger
{
public:
聽聽聽聽 Logger() {std::cout << "ctor of Logger " << std::endl; }
聽聽聽 ~Logger() {std::cout << "dtor of Logger " << std::endl; }
聽聽聽 static Logger * getInstance( const std::string & strLogger)
聽聽聽 {
聽聽聽聽聽聽聽 static LoggerContainer defaultLoggerContainer;
聽聽聽聽聽聽聽 return defaultLoggerContainer.getinstance(strLogger);
聽聽聽 }
};
LoggerContainer::~LoggerContainer()
{
聽聽聽 /* release all ptr in LoggerMap */
聽聽聽 LoggerMap::iterator itr = loggerPtrs.begin();
聽聽聽 for( ; itr != loggerPtrs.end(); ++itr )
聽{
聽聽聽聽 delete (*itr).second;
聽}
}
Logger * LoggerContainer::getinstance(const std::string & strLogger)
{
聽聽 LoggerMap::iterator itr = loggerPtrs.find(strLogger);
聽聽 if(itr != loggerPtrs.end())
聽聽 {
聽聽聽聽聽聽 /* logger exist, just return it */
聽聽聽聽聽聽 return (*itr).second;
聽聽 }
聽聽 else
聽聽 {
聽聽聽聽聽聽 /* return a new logger */
聽聽聽聽聽聽 Logger * plogger = new Logger();
聽聽聽聽聽聽 loggerPtrs.insert(std::make_pair(strLogger, plogger));
聽聽聽聽聽聽 return plogger;
聽聽 }
}
int main()
{
聽聽聽 Logger * plogger1 = Logger::getInstance("test");
聽聽聽 Logger * plogger2 = Logger::getInstance("test");
聽聽聽 std::cout << "plogger1: " << plogger1 << std::endl << "plogger2: " << plogger2 << std::endl;
聽聽聽 return 0;
}
				
榪愯緇撴灉錛?/pre>
ctor of Logger
plogger1: 0x804fc30
plogger2: 0x804fc30
dtor of Logger
榪欓噷鐨凩oggerContainer鐩稿綋浜巐og4cplus涓殑Hierarchy綾伙紝緇撴灉鍙互鐪嬪嚭錛岄氳繃鍚屼竴涓悕縐板彲浠ヨ幏鍙栫浉鍚岀殑
Logger瀹炰緥銆?/pre>
				
榪樻湁涓浜涘皬姣涚梾姣斿RollingFileAppender鍜孌ailyRollingFileAppender鐨勫弬鏁拌緭鍏ラ『搴忓彲浠ヨ皟鏁存垚緇熶竴鏂瑰紡
絳夌瓑錛屽氨涓嶇粏璇翠簡銆?/pre>
鏈儴鍒嗘彁鍒頒簡浣跨敤log4cplus鏃跺欐劅瑙変笉鐖界殑鍦版柟錛屾渶鍚庝竴閮ㄥ垎灝嗕粙緇嶄竴涓媗og4cplus涓嚎紼嬪拰濂楁帴瀛楀疄鐜版儏鍐?br />


]]>寮婧愭棩蹇楃郴緇焞og4cplus(浜?http://m.shnenglu.com/tx7do/articles/11719.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Fri, 25 Aug 2006 20:50:00 GMThttp://m.shnenglu.com/tx7do/articles/11719.htmlhttp://m.shnenglu.com/tx7do/comments/11719.htmlhttp://m.shnenglu.com/tx7do/articles/11719.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/11719.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/11719.html鏃ュ織緋葷粺鐨勫彟涓涓熀鏈姛鑳藉氨鏄兘澶熻浣跨敤鑰呮寜鐓ц嚜宸辯殑鎰忔効鏉ユ帶鍒朵粈涔堟椂鍊欙紝鍝簺log淇℃伅鍙互杈撳嚭銆?br />濡傛灉鑳藉璁╃敤鎴峰湪浠繪剰鏃跺埢璁劇疆鍏佽杈撳嚭鐨凩ogLevel鐨勪俊鎭氨濂戒簡錛宭og4cplus閫氳繃LogLevelManager銆?br />LogLog銆丗ilter涓夌鏂瑰紡瀹炵幇浜嗕笂榪板姛鑳姐?/pre>
				
### 浼樺厛綰ф帶鍒?###
鍦ㄧ爺絀禠ogLevelManager涔嬪墠錛岄鍏堜粙緇嶄竴涓媗og4cplus涓璴ogger鐨勫瓨鍌ㄦ満鍒訛紝鍦╨og4cplus涓紝鎵鏈?br />logger閮介氳繃涓涓眰嬈″寲鐨勭粨鏋勶紙鍏跺疄鍐呴儴鏄痟ash琛級鏉ョ粍緇囩殑錛屾湁涓涓猂oot綰у埆鐨刲ogger,鍙互閫?br />榪囦互涓嬫柟娉曡幏鍙栵細
聽聽聽 Logger root = Logger::getRoot();
聽聽聽
鐢ㄦ埛瀹氫箟鐨刲ogger閮芥湁涓涓悕瀛椾笌涔嬪搴旓紝姣斿錛?/pre>
聽聽聽 Logger test = Logger::getInstance("test");
聽聽聽
鍙互瀹氫箟璇ogger鐨勫瓙logger:
聽聽聽 Logger subTest = Logger::getInstance("test.subtest");
聽聽聽
娉ㄦ剰Root綰у埆鐨刲ogger鍙湁閫氳繃getRoot鏂規硶鑾峰彇錛孡ogger::getInstance("root")鑾峰緱鐨勬槸瀹冪殑
瀛愬璞¤屽凡銆傛湁浜嗚繖浜涘叿鏈夌埗瀛愬叧緋葷殑logger涔嬪悗鍙垎鍒緗叾LogLevel,姣斿錛?/pre>
root.setLogLevel( ... );
Test.setLogLevel( ... );
subTest.setLogLevel( ... );
				
logger鐨勮繖縐嶇埗瀛愬叧鑱旀т細浣撶幇鍦ㄤ紭鍏堢駭鎺у埗鏂歸潰錛宭og4cplus灝嗚緭鍑虹殑log淇℃伅鎸夌収LogLevel
錛堜粠浣庡埌楂橈級鍒嗕負錛?/pre>
NOT_SET_LOG_LEVEL (聽聽 -1) 錛氭帴鍙楃己鐪佺殑LogLevel錛屽鏋滄湁鐖秎ogger鍒欑戶鎵垮畠鐨凩ogLevel
ALL_LOG_LEVEL聽聽聽聽 (聽聽聽 0) 錛氬紑鏀炬墍鏈塴og淇℃伅杈撳嚭
TRACE_LOG_LEVEL聽聽 (聽聽聽 0) 錛氬紑鏀総race淇℃伅杈撳嚭(鍗矨LL_LOG_LEVEL)
DEBUG_LOG_LEVEL聽聽 (10000) 錛氬紑鏀綿ebug淇℃伅杈撳嚭
INFO_LOG_LEVEL聽聽聽 (20000) 錛氬紑鏀緄nfo淇℃伅杈撳嚭
WARN_LOG_LEVEL聽聽聽 (30000) 錛氬紑鏀緒arning淇℃伅杈撳嚭
ERROR_LOG_LEVEL聽聽 (40000) 錛氬紑鏀緀rror淇℃伅杈撳嚭
FATAL_LOG_LEVEL聽聽 (50000) 錛氬紑鏀緁atal淇℃伅杈撳嚭
OFF_LOG_LEVEL聽聽聽聽 (60000) 錛氬叧闂墍鏈塴og淇℃伅杈撳嚭
LogLevelManager璐熻矗璁劇疆logger鐨勪紭鍏堢駭錛屽悇涓猯ogger鍙互閫氳繃setLogLevel璁劇疆鑷繁鐨勪紭鍏堢駭錛?br />褰撴煇涓猯ogger鐨凩ogLevel璁劇疆鎴怤OT_SET_LOG_LEVEL鏃訛紝璇ogger浼氱戶鎵跨埗logger鐨勪紭鍏堢駭錛屽彟澶栵紝
濡傛灉瀹氫箟浜嗛噸鍚嶇殑澶氫釜logger, 瀵瑰叾涓換浣曚竴涓殑淇敼閮戒細鍚屾椂鏀瑰彉鍏跺畠logger,鎴戜滑涓句緥璇存槑錛?/pre>
銆栦緥6銆?/pre>
		
#include "log4cplus/logger.h"
#include "log4cplus/consoleappender.h"
#include "log4cplus/loglevel.h"
#include <iostream>
using namespace std;
using namespace log4cplus;
int main()
{
聽聽聽 SharedAppenderPtr _append(new ConsoleAppender());
聽聽聽 _append->setName("test");
聽聽聽 Logger::getRoot().addAppender(_append);
聽聽聽 Logger root = Logger::getRoot();
聽聽聽 Logger test = Logger::getInstance("test");
聽聽聽 Logger subTest = Logger::getInstance("test.subtest");
聽聽聽 LogLevelManager& llm = getLogLevelManager();
聽聽聽 cout << endl << "Before Setting, Default LogLevel" << endl;
聽聽聽 LOG4CPLUS_FATAL(root, "root: " << llm.toString(root.getChainedLogLevel()))
聽聽聽 LOG4CPLUS_FATAL(root, "test: " << llm.toString(test.getChainedLogLevel()))
聽聽聽 LOG4CPLUS_FATAL(root, "test.subtest: " << llm.toString(subTest.getChainedLogLevel()))
聽聽聽 cout << endl << "Setting test.subtest to WARN" << endl;
聽聽聽 subTest.setLogLevel(WARN_LOG_LEVEL);
聽聽聽 LOG4CPLUS_FATAL(root, "root: " << llm.toString(root.getChainedLogLevel()))
聽聽聽 LOG4CPLUS_FATAL(root, "test: " << llm.toString(test.getChainedLogLevel()))
聽聽聽 LOG4CPLUS_FATAL(root, "test.subtest: " << llm.toString(subTest.getChainedLogLevel()))
聽聽聽 cout << endl << "Setting test.subtest to TRACE" << endl;
聽聽聽 test.setLogLevel(TRACE_LOG_LEVEL);
聽聽聽 LOG4CPLUS_FATAL(root, "root: " << llm.toString(root.getChainedLogLevel()))
聽聽聽 LOG4CPLUS_FATAL(root, "test: " << llm.toString(test.getChainedLogLevel()))
聽聽聽 LOG4CPLUS_FATAL(root, "test.subtest: " << llm.toString(subTest.getChainedLogLevel()))
聽聽聽 cout << endl << "Setting test.subtest to NO_LEVEL" << endl;
聽聽聽 subTest.setLogLevel(NOT_SET_LOG_LEVEL);
聽聽聽 LOG4CPLUS_FATAL(root, "root: " << llm.toString(root.getChainedLogLevel()))
聽聽聽 LOG4CPLUS_FATAL(root, "test: " << llm.toString(test.getChainedLogLevel()))
聽聽聽 LOG4CPLUS_FATAL(root, "test.subtest: " << llm.toString(subTest.getChainedLogLevel()) << '\n')
聽聽聽 cout << "create a logger test_bak, named \"test_\", too. " << endl;
聽聽聽 Logger test_bak = Logger::getInstance("test");
聽聽聽 cout << "Setting test to INFO, so test_bak also be set to INFO" << endl;
聽聽聽 test.setLogLevel(INFO_LOG_LEVEL);
聽聽聽 LOG4CPLUS_FATAL(root, "test: " << llm.toString(test.getChainedLogLevel()))
聽聽聽 LOG4CPLUS_FATAL(root, "test_bak: " << llm.toString(test_bak.getChainedLogLevel()))
聽聽聽 return 0;
}
杈撳嚭緇撴灉錛?/pre>
		
Before Setting, Default LogLevel
FATAL - root: DEBUG
FATAL - test: DEBUG
FATAL - test.subtest: DEBUG
Setting test.subtest to WARN
FATAL - root: DEBUG
FATAL - test: DEBUG
FATAL - test.subtest: WARN
Setting test.subtest to TRACE
FATAL - root: DEBUG
FATAL - test: TRACE
FATAL - test.subtest: WARN
Setting test.subtest to NO_LEVEL
FATAL - root: DEBUG
FATAL - test: TRACE
FATAL - test.subtest: TRACE
create a logger test_bak, named "test_", too.
Setting test to INFO, so test_bak also be set to INFO
FATAL - test: INFO
FATAL - test_bak: INFO
				
涓嬮潰鐨勪緥瀛愭紨紺轟簡濡備綍閫氳繃璁劇疆LogLevel鏉ユ帶鍒剁敤鎴風殑log淇℃伅杈撳嚭錛?/pre>
銆栦緥7銆?/pre>
		
#include "log4cplus/logger.h"
#include "log4cplus/consoleappender.h"
#include "log4cplus/loglevel.h"
#include <iostream>
using namespace std;
using namespace log4cplus;
void ShowMsg(void)
{
聽聽聽 LOG4CPLUS_TRACE(Logger::getRoot(),"info")
聽聽聽 LOG4CPLUS_DEBUG(Logger::getRoot(),"info")
聽聽聽 LOG4CPLUS_INFO(Logger::getRoot(),"info")
聽聽聽 LOG4CPLUS_WARN(Logger::getRoot(),"info")
聽聽聽 LOG4CPLUS_ERROR(Logger::getRoot(),"info")
聽聽聽 LOG4CPLUS_FATAL(Logger::getRoot(),"info")
}
int main()
{
聽聽聽 SharedAppenderPtr _append(new ConsoleAppender());
聽聽聽 _append->setName("test");
聽聽聽 _append->setLayout(std::auto_ptr(new TTCCLayout()));
聽聽聽 Logger root = Logger::getRoot();
聽聽聽 root.addAppender(_append);
聽聽聽 cout << endl << "all-log allowed" << endl;
聽聽聽 root.setLogLevel(ALL_LOG_LEVEL);
聽聽聽 ShowMsg();
聽聽聽 cout << endl << "trace-log and above allowed" << endl;
聽聽聽 root.setLogLevel(TRACE_LOG_LEVEL);
聽聽聽 ShowMsg();
聽聽聽 cout << endl << "debug-log and above allowed" << endl;
聽聽聽 root.setLogLevel(DEBUG_LOG_LEVEL);
聽聽聽 ShowMsg();
聽聽聽 cout << endl << "info-log and above allowed" << endl;
聽聽聽 root.setLogLevel(INFO_LOG_LEVEL);
聽聽聽 ShowMsg();
聽聽聽 cout << endl << "warn-log and above allowed" << endl;
聽聽聽 root.setLogLevel(WARN_LOG_LEVEL);
聽聽聽 ShowMsg();
聽聽聽 cout << endl << "error-log and above allowed" << endl;
聽聽聽 root.setLogLevel(ERROR_LOG_LEVEL);
聽聽聽 ShowMsg();
聽聽聽 cout << endl << "fatal-log and above allowed" << endl;
聽聽聽 root.setLogLevel(FATAL_LOG_LEVEL);
聽聽聽 ShowMsg();
聽聽聽 cout << endl << "log disabled" << endl;
聽聽聽 root.setLogLevel(OFF_LOG_LEVEL);
聽聽聽 ShowMsg();
聽聽聽 return 0;
}
杈撳嚭緇撴灉錛?/pre>
		
all-log allowed
10-17-04 10:11:40,587 [1075298944] TRACE root <> - info
10-17-04 10:11:40,590 [1075298944] DEBUG root <> - info
10-17-04 10:11:40,591 [1075298944] INFO root <> - info
10-17-04 10:11:40,591 [1075298944] WARN root <> - info
10-17-04 10:11:40,592 [1075298944] ERROR root <> - info
10-17-04 10:11:40,592 [1075298944] FATAL root <> - info
trace-log and above allowed
10-17-04 10:11:40,593 [1075298944] TRACE root <> - info
10-17-04 10:11:40,593 [1075298944] DEBUG root <> - info
10-17-04 10:11:40,594 [1075298944] INFO root <> - info
10-17-04 10:11:40,594 [1075298944] WARN root <> - info
10-17-04 10:11:40,594 [1075298944] ERROR root <> - info
10-17-04 10:11:40,594 [1075298944] FATAL root <> - info
debug-log and above allowed
10-17-04 10:11:40,595 [1075298944] DEBUG root <> - info
10-17-04 10:11:40,595 [1075298944] INFO root <> - info
10-17-04 10:11:40,596 [1075298944] WARN root <> - info
10-17-04 10:11:40,596 [1075298944] ERROR root <> - info
10-17-04 10:11:40,596 [1075298944] FATAL root <> - info
info-log and above allowed
10-17-04 10:11:40,597 [1075298944] INFO root <> - info
10-17-04 10:11:40,597 [1075298944] WARN root <> - info
10-17-04 10:11:40,597 [1075298944] ERROR root <> - info
10-17-04 10:11:40,598 [1075298944] FATAL root <> - info
warn-log and above allowed
10-17-04 10:11:40,598 [1075298944] WARN root <> - info
10-17-04 10:11:40,598 [1075298944] ERROR root <> - info
10-17-04 10:11:40,599 [1075298944] FATAL root <> - info
error-log and above allowed
10-17-04 10:11:40,599 [1075298944] ERROR root <> - info
10-17-04 10:11:40,600 [1075298944] FATAL root <> - info
fatal-log and above allowed
10-17-04 10:11:40,600 [1075298944] FATAL root <> - info
log disabled
鐢ㄦ埛涔熷彲浠ヨ嚜琛屽畾涔塋ogLevel錛屾搷浣滄瘮杈冪畝鍗曪紝棣栧厛瑕佸畾涔塋EVEL鍊鹼紝姣斿HELLO_LOG_LEVEL瀹氫箟濡備笅錛?/pre>
		
/* DEBUG_LOG_LEVEL聽 < HELLO_LOG_LEVEL < INFO_LOG_LEVEL */
const LogLevel HELLO_LOG_LEVEL = 15000;
鐒跺悗瀹氫箟浠ヤ笅瀹忓嵆鍙細
/* define MACRO LOG4CPLUS_HELLO */
#define LOG4CPLUS_HELLO(logger, logEvent) \
聽聽聽 if(logger.isEnabledFor(HELLO_LOG_LEVEL)) { \
聽聽聽聽聽聽聽 log4cplus::tostringstream _log4cplus_buf; \
聽聽聽聽聽聽聽 _log4cplus_buf << logEvent; \
聽logger.forcedLog(HELLO_LOG_LEVEL, _log4cplus_buf.str(), __FILE__, __LINE__); \
聽聽聽 }
涓嶈繃log4cplus娌℃湁鎻愪緵緇欑敤鎴蜂竴涓帴鍙f潵瀹炵幇LEVEL鍊間笌瀛楃涓茬殑杞崲錛屾墍浠ュ綋甯︽牸寮忚緭鍑篖ogLevel瀛楃
涓叉椂鍊欎細鏄劇ず"UNKNOWN"錛?涓嶅鐞嗘兂銆傛瘮濡傜敤TTCCLayout鎺у埗杈撳嚭鐨勭粨鏋滃彲鑳戒細濡備笅鎵紺猴細
10-17-04 11:17:51,124 [1075298944] UNKNOWN root <> - info
鑰屼笉鏄湡鏈涚殑浠ヤ笅緇撴灉錛?br />10-17-04 11:17:51,124 [1075298944] HELLO root <> - info
瑕佹兂瀹炵幇絎簩縐嶇粨鏋滐紝鎸夌収log4cplus鐜版湁鐨勬帴鍙f満鍒訛紝鍙兘鏀瑰叾婧愪唬鐮佸悗閲嶆柊緙栬瘧錛屾柟娉曟槸鍦╨oglevel.cxx
涓姞鍏ワ細
#define _HELLO_STRING LOG4CPLUS_TEXT("HELLO")
鐒跺悗淇敼log4cplus::tstring聽 defaultLogLevelToStringMethod(LogLevel ll)鍑芥暟錛屽鍔犱竴涓垽鏂細
case HELLO_LOG_LEVEL:聽聽聽 return _HELLO_STRING;
閲嶆柊緙栬瘧log4cplus婧愪唬鐮佸悗鐢熸垚搴撴枃浠訛紝鍐嶄嬌鐢ㄦ椂鍗沖彲瀹炵幇婊℃剰鏁堟灉銆?/pre>
		
				
### 璋冭瘯妯″紡 ###
鍗抽氳繃loglog鏉ユ帶鍒惰緭鍑鴻皟璇曘佽鍛婃垨閿欒淇℃伅錛岃渚?錛岃繖閲屼笉鍐嶈禈榪般?/pre>
		
### 鍩轟簬鑴氭湰閰嶇疆鏉ヨ繃婊og淇℃伅 ###
闄や簡閫氳繃紼嬪簭瀹炵幇瀵筶og鐜鐨勯厤緗箣澶栵紝log4cplus閫氳繃PropertyConfigurator綾誨疄鐜頒簡鍩轟簬鑴氭湰閰嶇疆鐨勫姛鑳姐?br />閫氳繃鑴氭湰鍙互瀹屾垚瀵筶ogger銆乤ppender鍜宭ayout鐨勯厤緗紝鍥犳鍙互瑙e喅鎬庢牱杈撳嚭錛岃緭鍑哄埌鍝噷鐨勯棶棰橈紝鎴戝皢鍦?br />鍏ㄦ枃鐨勬渶鍚庝竴閮ㄥ垎涓彁鍒板綰跨▼鐜涓浣曞埄鐢ㄨ剼鏈厤緗潵閰嶅悎瀹炵幇鎬ц兘嫻嬭瘯錛屾湰鑺傚皢閲嶇偣浠嬬粛鍩鴻剼鏈疄鐜拌繃
婊og淇℃伅鐨勫姛鑳姐?/pre>
棣栧厛綆鍗曚粙緇嶄竴涓嬭剼鏈殑璇硶瑙勫垯錛?/pre>
		
鍖呮嫭Appender鐨勯厤緗娉曞拰logger鐨勯厤緗娉曪紝鍏朵腑錛?/pre>
		
1.Appender鐨勯厤緗娉?
錛?錛夎緗悕縐幫細
/*璁劇疆鏂規硶*/
log4cplus.appender.appenderName=fully.qualified.name.of.appender.class
渚嬪錛堝垪涓句簡鎵鏈夊彲鑳界殑Appender錛屽叾涓璖ocketAppender鍚庨潰浼氳鍒幫級錛?br />log4cplus.appender.append_1=log4cplus::ConsoleAppender
log4cplus.appender.append_2=log4cplus::FileAppender
log4cplus.appender.append_3=log4cplus::RollingFileAppender
log4cplus.appender.append_4=log4cplus::DailyRollingFileAppender
log4cplus.appender.append_4=log4cplus::SocketAppender
錛?錛夎緗瓼ilter錛?/pre>
		
鍖呮嫭閫夋嫨榪囨護鍣ㄥ拰璁劇疆榪囨護鏉′歡錛屽彲閫夋嫨鐨勮繃婊ゅ櫒鍖呮嫭錛歀ogLevelMatchFilter銆丩ogLevelRangeFilter銆?br />鍜孲tringMatchFilter錛?/pre>
		
瀵筁ogLevelMatchFilter鏉ヨ錛岃繃婊ゆ潯浠跺寘鎷琇ogLevelToMatch鍜孉cceptOnMatch錛坱rue|false錛夛紝 鍙湁
褰搇og淇℃伅鐨凩ogLevel鍊間笌LogLevelToMatch鐩稿悓錛屼笖AcceptOnMatch涓簍rue鏃舵墠浼氬尮閰嶃?/pre>
LogLevelRangeFilter鏉ヨ錛岃繃婊ゆ潯浠跺寘鎷琇ogLevelMin銆丩ogLevelMax鍜孉cceptOnMatch錛屽彧鏈夊綋log淇℃伅
鐨凩ogLevel鍦↙ogLevelMin銆丩ogLevelMax涔嬮棿鍚屾椂AcceptOnMatch涓簍rue鏃舵墠浼氬尮閰嶃?/pre>
瀵筍tringMatchFilter鏉ヨ錛岃繃婊ゆ潯浠跺寘鎷琒tringToMatch鍜孉cceptOnMatch錛屽彧鏈夊綋log淇℃伅鐨凩ogLevel鍊?br />涓嶴tringToMatch瀵瑰簲鐨凩ogLevel鍊間笌鐩稿悓錛?涓擜cceptOnMatch涓簍rue鏃朵細鍖歸厤銆?/pre>
		
				
榪囨護鏉′歡澶勭悊鏈哄埗綾諱技浜嶪PTABLE鐨凴esponsibility chain錛岋紙鍗沖厛deny銆佸啀allow錛変笉榪囨墽琛岄『搴忓垰濂界浉鍙嶏紝
鍚庡啓鐨勬潯浠朵細琚厛鎵ц錛屾瘮濡傦細
log4cplus.appender.append_1.filters.1=log4cplus::spi::LogLevelMatchFilter
log4cplus.appender.append_1.filters.1.LogLevelToMatch=TRACE
log4cplus.appender.append_1.filters.1.AcceptOnMatch=true
#log4cplus.appender.append_1.filters.2=log4cplus::spi::DenyAllFilter
浼氶鍏堟墽琛宖ilters.2鐨勮繃婊ゆ潯浠訛紝鍏抽棴鎵鏈夎繃婊ゅ櫒錛岀劧鍚庢墽琛宖ilters.1錛屼粎鍖歸厤TRACE淇℃伅銆?/pre>
		
錛?錛夎緗甃ayout
鍙互閫夋嫨涓嶈緗乀TCCLayout銆佹垨PatternLayout
濡傛灉涓嶈緗紝浼氳緭鍑虹畝鍗曟牸寮忕殑log淇℃伅銆?/pre>
		
璁劇疆TTCCLayout濡備笅鎵紺猴細
log4cplus.appender.ALL_MSGS.layout=log4cplus::TTCCLayout
璁劇疆PatternLayout濡備笅鎵紺猴細
log4cplus.appender.append_1.layout=log4cplus::PatternLayout
log4cplus.appender.append_1.layout.ConversionPattern=%d{%m/%d/%y %H:%M:%S,%Q} [%t] %-5p - %m%n
				
2.logger鐨勯厤緗娉?/pre>
鍖呮嫭rootLogger鍜宯on-root logger銆?/pre>
		
瀵逛簬rootLogger鏉ヨ錛?br />log4cplus.rootLogger=[LogLevel], appenderName, appenderName, ...
瀵逛簬non-root logger鏉ヨ錛?br />log4cplus.logger.logger_name=[LogLevel|INHERITED], appenderName, appenderName, ...
				
鑴氭湰鏂瑰紡浣跨敤璧鋒潵闈炲父綆鍗曪紝鍙棣栧厛鍔犺澆閰嶇疆鍗沖彲錛坲rconfig.properties鏄嚜琛屽畾涔夌殑閰嶇疆鏂囦歡錛夛細
PropertyConfigurator::doConfigure("urconfig.properties");
				
涓嬮潰鎴戜滑閫氳繃渚嬪瓙浣撲細涓涓媗og4cplus寮哄ぇ鐨勫熀浜庤剼鏈繃婊og淇℃伅鐨勫姛鑳姐?/pre>
				
銆栦緥8銆?/pre>
/*
聽*聽聽聽 urconfig.properties
聽*/
log4cplus.rootLogger=TRACE, ALL_MSGS, TRACE_MSGS, DEBUG_INFO_MSGS, FATAL_MSGS
log4cplus.appender.ALL_MSGS=log4cplus::RollingFileAppender
log4cplus.appender.ALL_MSGS.File=all_msgs.log
log4cplus.appender.ALL_MSGS.layout=log4cplus::TTCCLayout
log4cplus.appender.TRACE_MSGS=log4cplus::RollingFileAppender
log4cplus.appender.TRACE_MSGS.File=trace_msgs.log
log4cplus.appender.TRACE_MSGS.layout=log4cplus::TTCCLayout
log4cplus.appender.TRACE_MSGS.filters.1=log4cplus::spi::LogLevelMatchFilter
log4cplus.appender.TRACE_MSGS.filters.1.LogLevelToMatch=TRACE
log4cplus.appender.TRACE_MSGS.filters.1.AcceptOnMatch=true
log4cplus.appender.TRACE_MSGS.filters.2=log4cplus::spi::DenyAllFilter
log4cplus.appender.DEBUG_INFO_MSGS=log4cplus::RollingFileAppender
log4cplus.appender.DEBUG_INFO_MSGS.File=debug_info_msgs.log
log4cplus.appender.DEBUG_INFO_MSGS.layout=log4cplus::TTCCLayout
log4cplus.appender.DEBUG_INFO_MSGS.filters.1=log4cplus::spi::LogLevelRangeFilter
log4cplus.appender.DEBUG_INFO_MSGS.filters.1.LogLevelMin=DEBUG
log4cplus.appender.DEBUG_INFO_MSGS.filters.1.LogLevelMax=INFO
log4cplus.appender.DEBUG_INFO_MSGS.filters.1.AcceptOnMatch=true
log4cplus.appender.DEBUG_INFO_MSGS.filters.2=log4cplus::spi::DenyAllFilter
log4cplus.appender.FATAL_MSGS=log4cplus::RollingFileAppender
log4cplus.appender.FATAL_MSGS.File=fatal_msgs.log
log4cplus.appender.FATAL_MSGS.layout=log4cplus::TTCCLayout
log4cplus.appender.FATAL_MSGS.filters.1=log4cplus::spi::StringMatchFilter
log4cplus.appender.FATAL_MSGS.filters.1.StringToMatch=FATAL
log4cplus.appender.FATAL_MSGS.filters.1.AcceptOnMatch=true
log4cplus.appender.FATAL_MSGS.filters.2=log4cplus::spi::DenyAllFilter
				
/*
聽*聽聽聽 main.cpp
聽*/
#include <log4cplus/logger.h>
#include <log4cplus/configurator.h>
#include <log4cplus/helpers/stringhelper.h>
using namespace log4cplus;
static Logger logger = Logger::getInstance("log");
void printDebug()
{
聽聽聽 LOG4CPLUS_TRACE_METHOD(logger, "::printDebug()");
聽聽聽 LOG4CPLUS_DEBUG(logger, "This is a DEBUG message");
聽聽聽 LOG4CPLUS_INFO(logger, "This is a INFO message");
聽聽聽 LOG4CPLUS_WARN(logger, "This is a WARN message");
聽聽聽 LOG4CPLUS_ERROR(logger, "This is a ERROR message");
聽聽聽 LOG4CPLUS_FATAL(logger, "This is a FATAL message");
}
int main()
{
聽聽聽 Logger root = Logger::getRoot();
聽聽聽 PropertyConfigurator::doConfigure("urconfig.properties");
聽聽聽 printDebug();
聽聽聽 return 0;
}
榪愯緇撴灉錛?/pre>
		
1. all_msgs.log
10-17-04 14:55:25,858 [1075298944] TRACE log <> - ENTER: ::printDebug()
10-17-04 14:55:25,871 [1075298944] DEBUG log <> - This is a DEBUG message
10-17-04 14:55:25,873 [1075298944] INFO log <> - This is a INFO message
10-17-04 14:55:25,873 [1075298944] WARN log <> - This is a WARN message
10-17-04 14:55:25,874 [1075298944] ERROR log <> - This is a ERROR message
10-17-04 14:55:25,874 [1075298944] FATAL log <> - This is a FATAL message
10-17-04 14:55:25,875 [1075298944] TRACE log <> - EXIT:聽 ::printDebug()
2. trace_msgs.log
10-17-04 14:55:25,858 [1075298944] TRACE log <> - ENTER: ::printDebug()
10-17-04 14:55:25,875 [1075298944] TRACE log <> - EXIT:聽 ::printDebug()
3. debug_info_msgs.log
10-17-04 14:55:25,871 [1075298944] DEBUG log <> - This is a DEBUG message
10-17-04 14:55:25,873 [1075298944] INFO log <> - This is a INFO message
4. fatal_msgs.log
10-17-04 14:55:25,874 [1075298944] FATAL log <> - This is a FATAL message
鏈儴鍒嗚緇嗕粙緇嶄簡濡備綍鏈夐夋嫨鍦版帶鍒秎og淇℃伅鐨勮緭鍑猴紝鏈鍚庝竴閮ㄥ垎鎴戜滑灝嗕粙緇嶄竴涓嬪綰跨▼銆?br />鍜孋/S妯″紡涓嬭濡備綍鎿嶄綔錛岄『渚挎彁涓涓婲DC鐨勬蹇點?/pre>


]]>寮婧愭棩蹇楃郴緇焞og4cplus(鍥?http://m.shnenglu.com/tx7do/articles/11718.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Fri, 25 Aug 2006 20:50:00 GMThttp://m.shnenglu.com/tx7do/articles/11718.htmlhttp://m.shnenglu.com/tx7do/comments/11718.htmlhttp://m.shnenglu.com/tx7do/articles/11718.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/11718.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/11718.html灝唋og淇℃伅璁板綍鍒版枃浠跺簲璇ヨ鏄棩蹇楃郴緇熺殑涓涓熀鏈姛鑳斤紝log4cplus鍦ㄦ鍩虹涓婏紝鎻愪緵浜嗘洿澶氱殑鍔熻兘錛屽彲浠ユ寜鐓т綘棰勫厛璁懼畾鐨勫ぇ灝忔潵鍐沖畾鏄惁杞偍錛屽綋瓚呰繃璇ュぇ灝忥紝鍚庣畫log淇℃伅浼氬彟瀛樺埌鏂版枃浠朵腑錛屼緷嬈$被鎺紱鎴栬呮寜鐓ф棩鏈熸潵鍐沖畾鏄惁杞偍銆傛湰鏂囧皢璇︾粏浠嬬粛榪欎簺鐢ㄦ硶銆?/p>
				
### 濡備綍灝唋og璁板綍鍒版枃浠?###
鎴戜滑鍦ㄤ緥5涓粰鍑轟簡涓涓皢log璁板綍鍒版枃浠剁殑渚嬪瓙錛岀敤鐨勬槸FileAppender綾誨疄鐜扮殑錛宭og4cplus鎻愪緵浜嗕笁涓被鐢ㄤ簬
鏂囦歡鎿嶄綔錛屽畠浠槸FileAppender綾匯丷ollingFileAppender綾匯丏ailyRollingFileAppender綾匯?/pre>
1. FileAppender綾?/pre>
		
瀹炵幇浜嗗熀鏈殑鏂囦歡鎿嶄綔鍔熻兘錛屾瀯閫犲嚱鏁板涓嬶細
FileAppender(const log4cplus::tstring& filename,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 LOG4CPLUS_OPEN_MODE_TYPE mode = LOG4CPLUS_FSTREAM_NAMESPACE::ios::trunc,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 bool immediateFlush = true);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
filename聽聽聽聽聽聽 : 鏂囦歡鍚?br />mode聽聽聽聽聽聽聽聽聽聽 : 鏂囦歡綾誨瀷錛屽彲閫夋嫨鐨勬枃浠剁被鍨嬪寘鎷琣pp銆乤te銆乥inary銆乮n銆乷ut銆乼runc錛屽洜涓哄疄闄呬笂鍙槸瀵?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 stl鐨勪竴涓畝鍗曞寘瑁咃紝鍛靛懙錛岃繖閲屽氨涓嶅璁蹭簡銆傜己鐪佹槸trunc錛岃〃紺哄皢鍏堝墠鏂囦歡鍒犻櫎銆?br />immediateFlush 錛氱紦鍐插埛鏂版爣蹇楋紝濡傛灉涓簍rue琛ㄧず姣忓悜鏂囦歡鍐欎竴鏉¤褰曞氨鍒鋒柊涓嬈$紦瀛橈紝鍚﹀垯鐩村埌FileAppender
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 琚叧闂垨鏂囦歡緙撳瓨宸叉弧鎵嶆洿鏂版枃浠訛紝涓鑸槸瑕佽緗畉rue鐨勶紝姣斿浣犲線鏂囦歡鍐欑殑榪囩▼涓嚭鐜?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 浜嗛敊璇紙濡傜▼搴忛潪姝e父閫鍑猴級錛屽嵆浣挎枃浠舵病鏈夋甯稿叧闂篃鍙互淇濊瘉紼嬪簭緇堟鏃跺埢涔嬪墠鐨勬墍鏈?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 璁板綍閮戒細琚甯鎬繚瀛樸?/pre>
FileAppender綾葷殑浣跨敤鎯呭喌璇峰弬鑰冧緥5錛岃繖閲屼笉鍐嶈禈榪般?/pre>
		
				
2. RollingFileAppender綾?/pre>
鏋勯犲嚱鏁板涓嬶細
log4cplus::RollingFileAppender::RollingFileAppender(const log4cplus::tstring& filename,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 long maxFileSize,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int maxBackupIndex,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 bool immediateFlush)
filename聽聽聽聽聽聽 : 鏂囦歡鍚?br />maxFileSize聽聽聽 : 鏂囦歡鐨勬渶澶у昂瀵?br />maxBackupIndex : 鏈澶ц褰曟枃浠舵暟
immediateFlush : 緙撳啿鍒鋒柊鏍囧織
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
RollingFileAppender綾誨彲浠ユ牴鎹綘棰勫厛璁懼畾鐨勫ぇ灝忔潵鍐沖畾鏄惁杞偍錛屽綋瓚呰繃璇ュぇ灝忥紝鍚庣畫log淇℃伅浼氬彟瀛樺埌鏂?br />鏂囦歡涓紝闄や簡瀹氫箟姣忎釜璁板綍鏂囦歡鐨勫ぇ灝忎箣澶栵紝浣犺繕瑕佺‘瀹氬湪RollingFileAppender綾誨璞℃瀯閫犳椂鏈澶氶渶瑕佸灝戜釜
榪欐牱鐨勮褰曟枃浠?maxBackupIndex+1)錛屽綋瀛樺偍鐨勬枃浠舵暟鐩秴榪噈axBackupIndex+1鏃訛紝浼氬垹闄ゆ渶鏃╃敓鎴愮殑鏂囦歡錛?br />淇濊瘉鏁翠釜鏂囦歡鏁扮洰絳変簬maxBackupIndex+1銆傜劧鍚庣戶緇褰曪紝姣斿浠ヤ笅浠g爜鐗囨錛?/pre>
聽聽聽 ... ...
聽聽聽
聽聽聽 #define LOOP_COUNT 200000
聽聽聽
聽聽聽 SharedAppenderPtr _append(new RollingFileAppender("Test.log", 5*1024, 5));
聽聽聽 _append->setName("file test");
聽聽聽 _append->setLayout( std::auto_ptr(new TTCCLayout()) );
聽聽聽 Logger::getRoot().addAppender(_append);
聽聽聽 Logger root = Logger::getRoot();
聽聽聽 Logger test = Logger::getInstance("test");
聽聽聽 Logger subTest = Logger::getInstance("test.subtest");
聽聽聽 for(int i=0; i聽聽聽 {
聽聽聽聽聽聽聽 NDCContextCreator _context("loop");
聽聽聽聽聽聽聽 LOG4CPLUS_DEBUG(subTest, "Entering loop #" << i)
聽聽聽 }
聽聽聽
聽聽聽 ... ...
聽聽聽
榪愯緇撴灉錛?/pre>
		
榪愯鍚庝細浜х敓6涓緭鍑烘枃浠訛紝Test.log銆乀est.log.1銆乀est.log.2銆乀est.log.3銆乀est.log.4銆乀est.log.5
鍏朵腑Test.log瀛樻斁鐫鏈鏂板啓鍏ョ殑淇℃伅錛岃屾渶鍚庝竴涓枃浠朵腑騫朵笉鍖呭惈絎竴涓啓鍏ヤ俊鎭紝璇存槑宸茬粡琚笉鏂洿鏂頒簡銆?br />闇瑕佹寚鍑虹殑鏄紝榪欓噷闄や簡Test.log涔嬪錛屾瘡涓枃浠剁殑澶у皬閮芥槸200K,鑰屼笉鏄垜浠兂鍍忎腑鐨?K錛岃繖鏄洜涓?br />log4cplus涓殣鍚畾涔変簡鏂囦歡鐨勬渶灝忓昂瀵告槸200K錛屽彧鏈夊ぇ浜?00K鐨勮緗墠鐢熸晥錛?lt;= 200k鐨勮緗兘浼氳璁や負鏄?br />200K.
				
3. DailyRollingFileAppender綾?/pre>
鏋勯犲嚱鏁板涓嬶細
DailyRollingFileAppender::DailyRollingFileAppender(const log4cplus::tstring& filename,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 DailyRollingFileSchedule schedule,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 bool immediateFlush,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int maxBackupIndex)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
filename聽聽聽聽聽聽 : 鏂囦歡鍚?br />schedule聽聽聽聽聽聽 : 瀛樺偍棰戝害
immediateFlush : 緙撳啿鍒鋒柊鏍囧織
maxBackupIndex : 鏈澶ц褰曟枃浠舵暟
DailyRollingFileAppender綾誨彲浠ユ牴鎹綘棰勫厛璁懼畾鐨勯搴︽潵鍐沖畾鏄惁杞偍錛屽綋瓚呰繃璇ラ搴︼紝鍚庣畫log淇℃伅浼氬彟瀛?br />鍒版柊鏂囦歡涓紝榪欓噷鐨勯搴﹀寘鎷細MONTHLY錛堟瘡鏈堬級銆乄EEKLY錛堟瘡鍛級銆丏AILY錛堟瘡鏃ワ級銆乀WICE_DAILY錛堟瘡涓ゅぉ錛夈?br />HOURLY錛堟瘡鏃訛級銆丮INUTELY錛堟瘡鍒嗭級銆俶axBackupIndex鐨勫惈涔夊悓涓婃墍榪幫紝姣斿浠ヤ笅浠g爜鐗囨錛?/pre>
		
聽聽聽 ... ...
聽聽聽
聽聽聽 SharedAppenderPtr _append(new DailyRollingFileAppender("Test.log", MINUTELY, true, 5));
聽聽聽 _append->setName("file test");
聽聽聽 _append->setLayout( std::auto_ptr(new TTCCLayout()) );
聽聽聽 Logger::getRoot().addAppender(_append);
聽聽聽 Logger root = Logger::getRoot();
聽聽聽 Logger test = Logger::getInstance("test");
聽聽聽 Logger subTest = Logger::getInstance("test.subtest");
聽聽聽 for(int i=0; i聽聽聽 {
聽聽聽聽聽聽聽 NDCContextCreator _context("loop");
聽聽聽聽聽聽聽 LOG4CPLUS_DEBUG(subTest, "Entering loop #" << i)
聽聽聽 }
聽聽聽
聽聽聽 ... ...
				
榪愯緇撴灉錛?/pre>
榪愯鍚庝細浠ュ垎閽熶負鍗曚綅錛屽垎鍒敓鎴愬悕涓篢est.log.2004-10-17-03-03銆乀est.log.2004-10-17-03-04鍜?br />Test.log.2004-10-17-03-05榪欐牱鐨勬枃浠躲?/pre>
		
闇瑕佹寚鍑虹殑鏄紝鍒氱湅鍒版寜鐓ч搴︼紙濡侶OURLY銆丮INUTELY錛夎漿鍌ㄨ繖鏍風殑姒傚康錛屼互涓簂og4cplus鎻愪緵浜嗗唴閮ㄥ畾鏃跺櫒錛?br />鎰熻寰堝鎬紝鍥犱負鏃ュ織緋葷粺涓嶅簲璇ヤ富鍔ㄨ褰曪紝鑰宭oging浜嬩歡鎬繪槸搴旇琚姩瑙﹀彂鐨勫晩銆備粩緇嗙湅浜嗘簮浠g爜鍚庢墠鐭ラ亾
榪欓噷鐨?棰戝害"騫朵笉鏄綘鍐欏叆鏂囦歡鐨勯熷害錛屽叾瀹炴槸鍚﹁漿鍌ㄧ殑鏍囧噯騫朵笉渚濊禆浣犲啓鍏ユ枃浠剁殑閫熷害錛岃屾槸渚濊禆浜庡啓鍏?br />鐨勯偅涓鏃跺埢鏄惁婊¤凍浜嗛搴︽潯浠訛紝鍗蟲槸鍚﹁秴榪囦簡浠ュ垎閽熴佸皬鏃躲佸懆銆佹湀涓哄崟浣嶇殑鏃墮棿鍒誨害錛屽鏋滆秴榪囦簡灝卞彟瀛樸?/pre>
鏈儴鍒嗚緇嗕粙緇峫og淇℃伅鐨勫嚑縐嶆枃浠舵搷浣滄柟寮忥紝涓嬮潰灝嗛噸鐐逛粙緇嶄竴涓嬪浣曟湁閫夋嫨鍦版帶鍒秎og淇℃伅鐨勮緭鍑恒?/pre>


]]>寮婧愭棩蹇楃郴緇焞og4cplus(涓?http://m.shnenglu.com/tx7do/articles/11717.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Fri, 25 Aug 2006 20:49:00 GMThttp://m.shnenglu.com/tx7do/articles/11717.htmlhttp://m.shnenglu.com/tx7do/comments/11717.htmlhttp://m.shnenglu.com/tx7do/articles/11717.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/11717.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/11717.html鏈枃浠嬬粛浜嗕笁縐嶆帶鍒惰緭鍑烘牸寮忕殑甯冨眬綆$悊鍣ㄧ殑姒傚康鍜屼嬌鐢ㄦ儏鍐碉紝閫氳繃鎺屾彙榪欎簺鐭ヨ瘑錛屽彲浠ユ洿鏈夋晥鍦版帶鍒秎og緋葷粺杈撳嚭灝藉彲鑳借創榪戜綘闇姹傜殑淇℃伅鏉ャ?br />

				
### 濡備綍鎺у埗杈撳嚭娑堟伅鐨勬牸寮?###
鍓嶉潰宸茬粡璁茶繃錛宭og4cplus閫氳繃甯冨眬鍣紙Layouts錛夋潵鎺у埗杈撳嚭鐨勬牸寮忥紝log4cplus鎻愪緵浜嗕笁縐嶇被鍨嬬殑Layouts錛?br />鍒嗗埆鏄疭impleLayout銆丳atternLayout銆佸拰TTCCLayout銆傚叾涓細
1. SimpleLayout
鏄竴縐嶇畝鍗曟牸寮忕殑甯冨眬鍣紝鍦ㄨ緭鍑虹殑鍘熷淇℃伅涔嬪墠鍔犱笂LogLevel鍜屼竴涓?-"銆?/pre>
姣斿浠ヤ笅浠g爜鐗囨錛?/pre>
		
聽聽聽 ... ...
聽聽聽 /* step 1: Instantiate an appender object */
聽聽聽 SharedObjectPtr _append (new ConsoleAppender());
聽聽聽 _append->setName("append for test");
聽聽聽 /* step 2: Instantiate a layout object */
聽聽聽 std::auto_ptr聽 _layout(new log4cplus::SimpleLayout());
聽聽聽 /* step 3: Attach the layout object to the appender */
聽聽聽 _append->setLayout( _layout );
聽聽聽 /* step 4: Instantiate a logger object */
聽聽聽 Logger _logger = Logger::getInstance("test");
聽聽聽 /* step 5: Attach the appender object to the logger聽 */
聽聽聽 _logger.addAppender(_append);
聽聽聽聽 /* log activity */
聽聽聽 LOG4CPLUS_DEBUG(_logger, "This is the simple formatted log message...")
聽聽聽
聽聽聽 ... ...
聽聽聽
聽聽聽
灝嗘墦鍗扮粨鏋滐細
DEBUG - This is the simple formatted log message...
2. PatternLayout
鏄竴縐嶆湁璇嶆硶鍒嗘瀽鍔熻兘鐨勬ā寮忓竷灞鍣紝涓鎻愯搗妯″紡灝變細鎯寵搗姝e垯琛ㄨ揪寮忥紝榪欓噷鐨勬ā寮忓拰姝e垯琛ㄨ揪寮忕被浼鹼紝浣嗘槸
榪滄瘮鍚庤呯畝鍗曪紝鑳藉瀵歸瀹氫箟鐨勬爣璇嗙錛堢О涓篶onversion specifiers錛夎繘琛岃В鏋愶紝杞崲鎴愮壒瀹氭牸寮忚緭鍑恒備互涓?br />浠g爜鐗囨婕旂ず浜嗗浣曚嬌鐢≒atternLayout錛?/pre>
聽聽聽 ... ...
聽聽聽 /* step 1: Instantiate an appender object */
聽聽聽 SharedObjectPtr _append (new ConsoleAppender());
聽聽聽 _append->setName("append for test");
聽聽
聽聽聽 /* step 2: Instantiate a layout object */
聽聽聽 std::string pattern = "%d{%m/%d/%y %H:%M:%S}聽 - %m [%l]%n";
聽聽聽 std::auto_ptr _layout(new PatternLayout(pattern));
聽聽聽
聽聽聽 /* step 3: Attach the layout object to the appender */
聽聽聽 _append->setLayout( _layout );
聽聽聽 /* step 4: Instantiate a logger object */
聽聽聽 Logger _logger = Logger::getInstance("test_logger.subtest");
聽聽聽 /* step 5: Attach the appender object to the logger聽 */
聽聽聽 _logger.addAppender(_append);
聽聽聽聽 /* log activity */
聽聽聽 LOG4CPLUS_DEBUG(_logger, "teststr")
聽聽聽
聽聽聽 ... ...
聽聽聽
杈撳嚭緇撴灉錛?br />10/16/04 18:51:25聽 - teststr [main.cpp:51]
鍙互鐪嬪嚭閫氳繃濉啓鐗瑰畾鏍煎紡鐨勬ā寮忓瓧絎︿覆"pattern"錛屽師濮嬩俊鎭鍖呭惈鍒頒竴鍫嗘湁鏍煎紡鐨勪俊鎭綋涓簡錛岃繖灝變嬌寰?br />鐢ㄦ埛鍙互鏍規嵁鑷韓闇瑕佹潵瀹氬埗鏄劇ず鍐呭銆?pattern"鍙互鍖呭惈鏅氬瓧絎︿覆鍜岄瀹氫箟鐨勬爣璇嗙錛屽叾涓細
錛?錛夋櫘閫氬瓧絎︿覆錛岃兘澶熻鐩存帴鏄劇ず鐨勪俊鎭?br />錛?錛夐瀹氫箟鏍囪瘑絎︼紝閫氳繃"%"涓庝竴涓垨澶氫釜瀛楃鍏卞悓鏋勬垚棰勫畾涔夌殑鏍囪瘑絎︼紝鑳藉浜х敓鍑虹壒瀹氭牸寮忎俊鎭?/pre>
		
鍏充簬棰勫畾涔夋爣璇嗙錛宭og4cplus鏂囨。涓彁渚涗簡璇︾粏鐨勬牸寮忚鏄庯紝鎴戞瘡縐嶉兘璇曚簡涓涓嬶紝浠ヤ笂榪頒唬鐮佷負渚嬶紝鏍規嵁涓嶅悓
鐨刾attern錛屽悇縐嶆秷鎭牸寮忎嬌鐢ㄦ儏鍐靛垪涓懼涓嬶細
錛?錛?%%"錛岃漿涔変負%, 鍗籌紝std::string pattern = "%%" 鏃惰緭鍑? "%"
錛?錛?%c"錛岃緭鍑簂ogger鍚嶇О錛屾瘮濡俿td::string pattern ="%c" 鏃惰緭鍑? "test_logger.subtest"錛?br />聽聽聽聽 涔熷彲浠ユ帶鍒秎ogger鍚嶇О鐨勬樉紺哄眰嬈★紝姣斿"%c{1}"鏃惰緭鍑?test_logger"錛屽叾涓暟瀛楄〃紺哄眰嬈°?br />錛?錛?%D"錛屾樉紺烘湰鍦版椂闂達紝褰搒td::string pattern ="%D" 鏃惰緭鍑?"2004-10-16 18:55:45"錛?d鏄劇ず鏍囧噯鏃墮棿錛?br />聽聽聽聽 鎵浠ュ綋std::string pattern ="%d" 鏃惰緭鍑?"2004-10-16 10:55:45" 錛堝洜涓烘垜浠槸涓?鍖猴紝宸?涓皬鏃跺晩錛夈?br />聽聽聽聽 鍙互閫氳繃%d{...}瀹氫箟鏇磋緇嗙殑鏄劇ず鏍煎紡錛屾瘮濡?d{%H:%M:%s}琛ㄧず瑕佹樉紺哄皬鏃?鍒嗛挓錛氱銆傚ぇ鎷彿涓彲鏄劇ず鐨?br />聽聽聽聽 棰勫畾涔夋爣璇嗙濡備笅錛?br />聽聽聽聽
%a -- 琛ㄧず紺兼嫓鍑狅紝鑻辨枃緙╁啓褰㈠紡錛屾瘮濡?Fri"
%A -- 琛ㄧず紺兼嫓鍑狅紝姣斿"Friday"
%b -- 琛ㄧず鍑犳湀浠斤紝鑻辨枃緙╁啓褰㈠紡錛屾瘮濡?Oct"
%B -- 琛ㄧず鍑犳湀浠斤紝"October"
%c -- 鏍囧噯鐨勬棩鏈燂紜鏃墮棿鏍煎紡錛屽 "Sat Oct 16 18:56:19 2004"
%d -- 琛ㄧず浠婂ぉ鏄繖涓湀鐨勫嚑鍙?1-31)"16"
%H -- 琛ㄧず褰撳墠鏃跺埢鏄嚑鏃?0-23)錛屽 "18"
%I -- 琛ㄧず褰撳墠鏃跺埢鏄嚑鏃?1-12)錛屽 "6"
%j -- 琛ㄧず浠婂ぉ鏄摢涓澶?1-366)錛屽 "290"
%m -- 琛ㄧず鏈湀鏄摢涓鏈?1-12)錛屽 "10"
%M -- 琛ㄧず褰撳墠鏃跺埢鏄摢涓鍒嗛挓(0-59)錛屽 "59"
%p -- 琛ㄧず鐜板湪鏄笂鍗堣繕鏄笅鍗堬紝 AM or PM
%q -- 琛ㄧず褰撳墠鏃跺埢涓縐掗儴鍒?0-999)錛屽 "237"
%Q -- 琛ㄧず褰撳墠鏃跺埢涓甫灝忔暟鐨勬縐掗儴鍒?0-999.999)錛屽 "430.732"
%S -- 琛ㄧず褰撳墠鏃跺埢鐨勫灝戠(0-59)錛屽 "32"
%U -- 琛ㄧず鏈懆鏄粖騫寸殑絎嚑涓ぜ鎷滐紝浠ュ懆鏃ヤ負絎竴澶╁紑濮嬭綆?0-53)錛屽 "41"
%w -- 琛ㄧず紺兼嫓鍑狅紝(0-6, 紺兼嫓澶╀負0)錛屽 "6"
%W -- 琛ㄧず鏈懆鏄粖騫寸殑絎嚑涓ぜ鎷滐紝浠ュ懆涓涓虹涓澶╁紑濮嬭綆?0-53)錛屽 "41"
%x -- 鏍囧噯鐨勬棩鏈熸牸寮忥紝濡?"10/16/04"
%X -- 鏍囧噯鐨勬椂闂存牸寮忥紝濡?"19:02:34"
%y -- 涓や綅鏁扮殑騫翠喚(0-99)錛屽 "04"
%Y -- 鍥涗綅鏁扮殑騫翠喚錛屽 "2004"
%Z -- 鏃跺尯鍚嶏紝姣斿 "GMT"
錛?錛?%F"錛岃緭鍑哄綋鍓嶈褰曞櫒鎵鍦ㄧ殑鏂囦歡鍚嶇О錛屾瘮濡俿td::string pattern ="%F" 鏃惰緭鍑? "main.cpp"
錛?錛?%L"錛岃緭鍑哄綋鍓嶈褰曞櫒鎵鍦ㄧ殑鏂囦歡琛屽彿錛屾瘮濡俿td::string pattern ="%L" 鏃惰緭鍑? "51"
錛?錛?%l"錛岃緭鍑哄綋鍓嶈褰曞櫒鎵鍦ㄧ殑鏂囦歡鍚嶇О鍜岃鍙鳳紝姣斿std::string pattern ="%L" 鏃惰緭鍑?
聽聽聽聽 "main.cpp:51"
錛?錛?%m"錛岃緭鍑哄師濮嬩俊鎭紝姣斿std::string pattern ="%m" 鏃惰緭鍑? "teststr"錛屽嵆涓婅堪浠g爜涓?br />聽聽聽聽 LOG4CPLUS_DEBUG鐨勭浜屼釜鍙傛暟錛岃繖縐嶅疄鐜版満鍒跺彲浠ョ‘淇濆師濮嬩俊鎭宓屽叆鍒板甫鏍煎紡鐨勪俊鎭腑銆?br />錛?錛?%n"錛屾崲琛岀錛屾病浠涔堝ソ瑙i噴鐨?br />錛?錛?%p"錛岃緭鍑篖ogLevel錛屾瘮濡俿td::string pattern ="%p" 鏃惰緭鍑? "DEBUG"
錛?0錛?%t"錛岃緭鍑鴻褰曞櫒鎵鍦ㄧ殑綰跨▼ID錛屾瘮濡俿td::string pattern ="%t" 鏃惰緭鍑? "1075298944"
錛?1錛?%x"錛屽祵濂楄瘖鏂笂涓嬫枃NDC (nested diagnostic context) 杈撳嚭錛屼粠鍫嗘爤涓脊鍑轟笂涓嬫枃淇℃伅錛孨DC鍙互鐢ㄥ
聽聽聽聽聽 涓嶅悓婧愮殑log淇℃伅錛堝悓鏃跺湴錛変氦鍙夎緭鍑鴻繘琛屽尯鍒嗭紝鍏充簬NDC鏂歸潰鐨勮緇嗕粙緇嶄細鍦ㄤ笅鏂囦腑鎻愬埌銆?br />錛?2錛夋牸寮忓榻愶紝姣斿std::string pattern ="%-10m"鏃惰〃紺哄乏瀵歸綈錛屽搴︽槸10錛屾鏃朵細杈撳嚭"teststr聽聽 "錛屽綋
聽聽聽聽聽 鐒跺叾瀹冪殑鎺у埗瀛楃涔熷彲浠ョ浉鍚岀殑鏂瑰紡鏉ヤ嬌鐢紝姣斿"%-12d"錛?%-5p"絳夌瓑錛堝垰鎺ヨЕlog4cplus鏂囨。鏃惰繕浠ヤ負
聽聽聽聽聽 "%-5p"鏁翠釜瀛楃涓蹭唬琛↙ogLevel鍛紝鍛靛懙錛夈?/pre>
聽聽聽聽聽 
3. TTCCLayout
鏄湪PatternLayout鍩虹涓婂彂灞曠殑涓縐嶇己鐪佺殑甯︽牸寮忚緭鍑虹殑甯冨眬鍣紝 鍏舵牸寮忕敱鏃墮棿錛岀嚎紼婭D錛孡ogger鍜孨DC 緇?br />鎴愶紙consists of time, thread, Logger and nested diagnostic context information, hence the name錛夛紝
鍥犺屽緱鍚嶏紙鎬庝箞寰楀悕鐨勶紵Logger閲屽摢閲屾湁閭d釜"C"鐨勭緝鍐欏晩錛佸悕瀛楄搗寰楃湡澶熺儌鐨勶紝鎯蟲墎浜猴級銆傛彁渚涚粰閭d簺鎯蟲樉紺?br />鍏稿瀷鐨勪俊鎭紙涓鑸儏鍐典笅澶熺敤浜嗭級鍙堟噿寰楅厤緗畃attern鐨勫悓蹇椾滑銆?/pre>
TTCCLayout鍦ㄦ瀯閫犳椂鏈夋満浼氶夋嫨鏄劇ず鏈湴鏃墮棿鎴朑MT鏃墮棿錛岀己鐪佹槸鎸夌収鏈湴鏃墮棿鏄劇ず錛?br />TTCCLayout::TTCCLayout(bool use_gmtime聽 = false)
浠ヤ笅浠g爜鐗囨婕旂ず浜嗗浣曚嬌鐢═TCCLayout錛?/pre>
		
聽聽聽 ... ...
聽聽聽 /* step 1: Instantiate an appender object */
聽聽聽 SharedObjectPtr _append (new ConsoleAppender());
聽聽聽 _append->setName("append for test");
聽聽聽 /* step 2: Instantiate a layout object */
聽聽聽 std::auto_ptr _layout(new TTCCLayout());
聽聽聽 /* step 3: Attach the layout object to the appender */
聽聽聽 _append->setLayout( _layout );
聽聽聽 /* step 4: Instantiate a logger object */
聽聽聽 Logger _logger = Logger::getInstance("test_logger");
聽聽聽 /* step 5: Attach the appender object to the logger聽 */
聽聽聽 _logger.addAppender(_append);
聽聽聽聽 /* log activity */
聽聽聽 LOG4CPLUS_DEBUG(_logger, "teststr")
聽聽聽
聽聽聽 ... ...
聽聽聽
杈撳嚭緇撴灉錛?br />10-16-04 19:08:27,501 [1075298944] DEBUG test_logger <> - teststr
				
褰撴瀯閫燭TCCLayout瀵硅薄鏃墮夋嫨GMT鏃墮棿鏍煎紡鏃訛細
聽聽聽 ... ...
聽聽聽
聽聽聽 /* step 2: Instantiate a layout object */
聽聽聽 std::auto_ptr _layout(new TTCCLayout(true));
聽聽聽
聽聽聽 ... ...
聽聽聽
杈撳嚭緇撴灉錛?br />10-16-04 11:12:47,678 [1075298944] DEBUG test_logger <> - teststr
				
鏈枃浠嬬粛浜嗘帶鍒秎og淇℃伅鏍煎紡鐨勭浉鍏崇煡璇嗭紝涓嬩竴閮ㄥ垎灝嗚緇嗕粙緇峫og淇℃伅鐨勫嚑縐嶆枃浠舵搷浣滄柟寮忋?/pre>

]]>寮婧愭棩蹇楃郴緇焞og4cplus(浜?http://m.shnenglu.com/tx7do/articles/11716.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Fri, 25 Aug 2006 20:49:00 GMThttp://m.shnenglu.com/tx7do/articles/11716.htmlhttp://m.shnenglu.com/tx7do/comments/11716.htmlhttp://m.shnenglu.com/tx7do/articles/11716.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/11716.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/11716.html闃呰鍏ㄦ枃

]]>
寮婧愭棩蹇楃郴緇焞og4cplus(涓)http://m.shnenglu.com/tx7do/articles/11715.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Fri, 25 Aug 2006 20:45:00 GMThttp://m.shnenglu.com/tx7do/articles/11715.htmlhttp://m.shnenglu.com/tx7do/comments/11715.htmlhttp://m.shnenglu.com/tx7do/articles/11715.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/11715.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/11715.htmllog4cplus鏄疌++緙栧啓鐨勫紑婧愮殑鏃ュ織緋葷粺錛屽姛鑳介潪甯稿叏闈紝鐢ㄥ埌鑷繁寮鍙戠殑宸ョ▼涓細姣旇緝涓撲笟鐨勶紝錛氾級錛屾湰鏂囦粙緇嶄簡log4cplus鍩烘湰姒傚康錛屼互鍙婂浣曞畨瑁咃紝閰嶇疆銆?

				
### 綆浠?###
log4cplus鏄疌++緙栧啓鐨勫紑婧愮殑鏃ュ織緋葷粺錛屽墠韜槸java緙栧啓鐨刲og4j緋葷粺.鍙桝pache Software License
淇濇姢銆備綔鑰呮槸Tad E. Smith銆俵og4cplus鍏鋒湁綰跨▼瀹夊叏銆佺伒媧匯佷互鍙婂綺掑害鎺у埗鐨勭壒鐐癸紝閫氳繃灝嗕俊鎭垝鍒?br>浼樺厛綰т嬌鍏跺彲浠ラ潰鍚戠▼搴忚皟璇曘佽繍琛屻佹祴璇曘佸拰緇存姢絳夊叏鐢熷懡鍛ㄦ湡錛?浣犲彲浠ラ夋嫨灝嗕俊鎭緭鍑哄埌灞忓箷銆佹枃浠躲?br>NT event log銆佺敋鑷蟲槸榪滅▼鏈嶅姟鍣紱閫氳繃鎸囧畾絳栫暐瀵規棩蹇楄繘琛屽畾鏈熷浠界瓑絳夈?/pre>
 
### 涓嬭澆 ###
鏈鏂扮殑log4cplus鍙互浠庝互涓嬬綉鍧涓嬭澆 http://log4cplus.sourceforge.net
鏈枃浣跨敤鐨勭増鏈負錛?.0.2
 
### 瀹夎 ###
 
1. linux涓嬪畨瑁?/pre>
tar xvzf log4cplus-x.x.x.tar.gz
cd log4cplus
-x.x.x.
/configure --prefix=/where/to/install
make
make install

榪欓噷鎴戦噰鐢ㄧ己鐪佸畨瑁呰礬寰勶細/usr/local錛屼笅鏂囧鏃犵壒鍒鏄庯紝鍧囦互姝よ礬寰勪負鍑嗐?/pre>
 
2. windows涓嬪畨瑁?/pre>
涓嶉渶瑕佸畨瑁咃紝鏈変竴涓猰svc6瀛樻斁鍖呮嫭婧愪唬鐮佸拰鐢ㄤ緥鍦ㄥ唴鐨勫紑鍙戝伐紼嬶紙for VC6 only錛夛紝浣跨敤涔嬪墠璇峰厛緙栬瘧
"log4cplus_dll class"宸ョ▼鐢熸垚dll錛屾垨鑰呯紪璇?log4cplus_static class"宸ョ▼鐢熸垚lib.
 
### 浣跨敤鍓嶇殑閰嶇疆 ###
1. linux涓嬬殑閰嶇疆
紜繚浣犵殑Makefile涓寘鍚?/usr/local/lib/liblog4cplus.a錛堥潤鎬佸簱錛夋垨  -llog4cplus錛堝姩鎬佸簱錛夊嵆鍙紝
澶存枃浠跺湪/usr/local/include/log4cplus鐩綍涓嬨傚浜庡姩鎬佸簱錛岃鎯蟲甯鎬嬌鐢紝榪樺緱灝嗗簱瀹夎璺緞鍔犲叆鍒?br>LD_LIBRARY_PATH 涓紝鎴戜竴鑸槸榪欐牱鍋氱殑錛氫互綆$悊鍛樿韓浠界櫥褰曪紝鍦?etc/ld.so.conf涓姞鍏ュ畨瑁呰礬寰勶紝榪欓噷
鏄?usr/local/lib錛岀劧鍚庢墽琛宭dconfig浣胯緗敓鏁堝嵆鍙?/pre>
2. windows涓嬬殑閰嶇疆
灝?log4cplus_dll class"宸ョ▼鎴?log4cplus_static class"宸ョ▼鐨刣sp 鏂囦歡鎻掑叆鍒頒綘鐨勫伐紼嬩腑錛屾垨鑰呯洿鎺?br>鎶婁袱涓伐紼嬬紪璇戠敓鎴愮殑搴撲互鍙婂ご鏂囦歡鎵鍦ㄧ洰褰曟斁鍒頒綘鐨勫伐紼嬬殑鎼滅儲璺緞涓紝濡傛灉浣犱嬌鐢ㄩ潤鎬佸簱錛岃鍦ㄤ綘鐨勫伐紼嬩腑
"project/setting/C++"鐨刾reprocessor definitions涓姞鍏OG4CPLUS_STATIC銆?/pre>
 
### 鏋勬垚瑕佺礌浠嬬粛 ###
铏界劧鍔熻兘寮哄ぇ錛屽簲璇ヨlog4cplus鐢ㄨ搗鏉ヨ繕鏄瘮杈冨鏉傜殑錛屼負浜嗘洿濂藉湴浣跨敤瀹冿紝鍏堜粙緇嶄竴涓嬪畠鐨勫熀鏈绱犮?/pre>
Layouts      錛氬竷灞鍣紝鎺у埗杈撳嚭娑堟伅鐨勬牸寮?
Appenders    錛氭寕鎺ュ櫒錛屼笌甯冨眬鍣ㄧ揣瀵嗛厤鍚堬紝灝嗙壒瀹氭牸寮忕殑娑堟伅杈撳嚭鍒版墍鎸傛帴鐨勮澶囩粓绔?br>               錛堝灞忓箷錛屾枃浠剁瓑絳?銆?br>Logger       錛氳褰曞櫒錛屼繚瀛樺茍璺熻釜瀵硅薄鏃ュ織淇℃伅鍙樻洿鐨勫疄浣擄紝褰撲綘闇瑕佸涓涓璞¤繘琛?br>               璁板綍鏃訛紝灝遍渶瑕佺敓鎴愪竴涓猯ogger銆?br>Categories   錛氬垎綾誨櫒錛屽眰嬈″寲錛坔ierarchy錛夌殑緇撴瀯錛岀敤浜庡琚褰曚俊鎭殑鍒嗙被錛屽眰嬈′腑
               姣忎竴涓妭鐐圭淮鎶や竴涓猯ogger鐨勬墍鏈変俊鎭?br>Priorities   錛氫紭鍏堟潈錛屽寘鎷琓RACE, DEBUG, INFO, WARNING, ERROR, FATAL銆?/pre>
				
鏈枃浠嬬粛浜唋og4cplus鍩烘湰姒傚康錛屼互鍙婂浣曞畨瑁咃紝閰嶇疆錛屼笅涓綃囧皢閫氳繃渚嬪瓙浠嬬粛濡備綍浣跨敤log4cplus銆?/pre>

]]>VC涓姞鍏ュ畾鏃舵満鍒剁殑鍑犵鏂規硶http://m.shnenglu.com/tx7do/articles/8923.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Fri, 23 Jun 2006 13:48:00 GMThttp://m.shnenglu.com/tx7do/articles/8923.htmlhttp://m.shnenglu.com/tx7do/comments/8923.htmlhttp://m.shnenglu.com/tx7do/articles/8923.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/8923.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/8923.html 瀹氭椂鏈哄埗鏄寚鍦ㄧ▼搴忚繍琛屽綋涓棿闅旂壒瀹氱殑鏃墮棿寮曞彂鎸囧畾鐨勪簨浠躲傚湪DOS涓嬬紪紼嬫椂錛屼富瑕佷緷闈犳椂閽熶腑鏂璉nt 8鍙婂叾璋冪敤涓柇 Int 1cH鏉ュ疄鐜幫紝搴旂敤紼嬪簭閫氳繃淇敼榪欎簺緋葷粺涓柇鏉ヨ揪鍒板疄鐜?font style="BACKGROUND-COLOR: yellow" color="red">瀹氭椂瑙﹀彂銆傝屽湪Windows涓嬶紝鑻ユ兂璞″湪DOS涓嬭倖鏃犲繉鎯殑淇敼緋葷粺鏄笉鐜板疄鐨勶紝閭d箞搴斿綋濡備綍瀹炵幇瀹氭椂鏈哄埗鍛紵涓嬮潰鍦ㄤ笅灝卞湪瀛︿範褰撲腑鐨勫嚑鐐逛綋浼氳皥璋堣繖涓棶棰橈紝鎻愬嚭鍑犵鏂規渚涘ぇ瀹跺弬鑰冦?/p>

絎竴縐嶆柟妗堟槸澶у鐔熸倝鐨勬埅鑾?font style="BACKGROUND-COLOR: yellow" color="red">瀹氭椂娑堟伅鐨勯斿緞銆傚湪Windows鎻愪緵緇欐垜浠嬌鐢ㄧ殑緋葷粺璧勬簮褰撲腑錛屾湁涓縐嶇О涓衡?font style="BACKGROUND-COLOR: yellow" color="red">瀹氭椂鍣紙Timer錛夆濈殑鐗規畩璧勬簮錛屽湪鐢寵浜嗚繖綾昏祫婧愮殑紼嬪簭褰撲腑姣忛棿闅斾竴孌墊椂闂翠細鎺ユ敹鍒板間負WM_TIMER鐨勬秷鎭傞渶瑕?font style="BACKGROUND-COLOR: yellow" color="red">瀹氭椂鎵ц鐨勪唬鐮佸彲浠ユ斁鍦ㄨ娑堟伅鐨勫鐞嗛儴鍒嗐傚鏋滃湪VC涓紝鎴戜滑鍙互鍏蜂綋鎸夌収浠ヤ笅姝ラ瀹炵幇榪欎竴鐩殑錛?/p>

  1. 鍒╃敤MFC AppWizard鍒涘緩涓涓爣鍑嗙殑宸ョ▼錛屾帴鍙楁墍鏈夌己鐪侀夐」銆傚悕涓簊1

  2. 鍦–lassview涓変腑鈥淐MainFrame鈥濈被錛岀劧鍚庢寜Ctrl+W嬋媧籆lassWizard錛屽湪鈥淢essage Map鈥濋夐」鍗′腑Class Name閫夆淐MainFrame鈥濓紝鎺ョ潃鍦ㄢ淢essage鈥濅腑閫夆淲M_TIMER鈥濓紝鏈鍚庢寜涓嬧淎dd Funcation鈥濄備互涓婃楠ゅ姞鍏ヤ簡瀵筗M_TIMER娑堟伅鐨勬槧灝勫鐞嗐?

  3. 鍥炲埌Classview涓紝鍙屽嚮鈥淥nCreate鈥濇垚鍛樺嚱鏁幫紝鍦ㄥ嚱鏁扮殑鏈熬娣誨姞鐢寵Timer鐨勮鍙ワ細
    SetTimer(100,1000,NULL);//鐢寵涓涓爣璇嗗間負100鐨凾imer錛?font style="BACKGROUND-COLOR: yellow" color="red">瀹氭椂闂撮殧涓?000姣錛?縐掞級銆?

  4. 鍦ㄢ淐lassview鈥濅腑鍙屽嚮OnTimer鍑芥暟錛岃緭鍏ヨ瀹氭椂瀹炵幇鐨勪唬鐮併傛湰渚嬪瓙涓負錛?br />MessageBeep(1000);;//姣忛殧涓縐掑彂鍑洪氬憡澹?

  5. 緙栬瘧騫舵墽琛屼箣錛屾垜浠彲浠ユ瘡闅斾竴縐掑氨鍚埌澹伴煶銆傝繖姝f槸鎴戜滑鍦∣nTimer鍑芥暟鍐呰姹傛墽琛岀殑銆?

瀹為檯褰撲腑錛屾垜浠彲浠ュ皢鈥淢essageBeep(1000);鈥濇崲鎴愪換浣曟垜浠兂瀹屾垚鐨勪換鍔★紝璀瀹氭椂瀛樼洏絳夈?/p>

絎簩縐嶆柟妗堜篃鍒╃敤Timer璧勬簮錛屼絾鍗存槸閲囩敤宸茬粡緙栧啓濂界殑浠g爜&#0;&#0;鎴戜滑鍙互鍔犲叆涓涓叿鏈?font style="BACKGROUND-COLOR: yellow" color="red">瀹氭椂鍔熻兘鐨勭粍浠惰嚦褰撳墠宸ョ▼褰撲腑銆傝繖縐嶆柟娉曠壒鍒傜敤浜庡熀浜庡璇濇鐨勫伐紼嬨傚叿浣撴楠ゅ涓嬶細

  1. 鍒╃敤MFC AppWizard鍒涘緩涓涓熀浜庡璇濇鐨勫伐紼嬶紝鍏朵綑鎺ュ彈鎵鏈夌己鐪侀夐」銆傚悕涓簊2銆?

  2. 鍦≧esourceView涓紝鍙屽嚮IDD_S2_DIALOG錛屾樉紺哄璇濇錛屽皢鍏朵腑鐨勨淭o do:鈥濇敼涓衡?font style="BACKGROUND-COLOR: yellow" color="red">瀹氭椂瑙﹀彂婕旂ず鐨勪緥瀛愨濓紝琛ㄦ槑宸ョ▼鐨勪綔鐢ㄣ?

  3. 鍙沖嚮瀵硅瘽妗嗙紪杈戝尯錛屽湪寮瑰嚭鐨勫彸閿彍鍗曚腑閫夋嫨鈥淚nsert ActiveX Control鈥濓紝浠庡脊鍑虹殑鍒楄〃妗嗕腑閫夋嫨鈥淭imer Object鈥濓紝紜畾鍚庝細鍦ㄥ璇濇鍐呭嚭鐜頒竴涓猅imer瀵硅薄銆?

  4. 鎴戜滑鍙沖嚮Timer瀵硅薄錛屼粠寮瑰嚭鐨勮彍鍗曚腑閫夋嫨鈥淧roperties鈥濓紝鎺ョ潃閫夆淎ll鈥濋夐」鍗★紝灝嗗叾涓殑Interval鍊艱涓?000錛屽嵆姣忛殧5縐掑彂鐢熶竴嬈imer浜嬩歡銆?

  5. 鍥炲埌瀵硅瘽妗嗙紪杈戠晫闈紝鍙屽嚮Timer錛屼駭鐢熶竴涓狢S2Dlg::OnTimerTimer1鎴愬憳鍑芥暟錛屾帴鍙楃己鐪佸鹼紝騫跺湪鍑芥暟瀹炵幇閮ㄥ垎杈撳叆錛?br />MessageBox("瀹氭椂瑙﹀彂娑堟伅妗?,"瀹氭椂婕旂ず" ,MB_OK);

  6. 緙栬瘧騫惰繍琛屾宸ョ▼錛屽皢浼氬湪浜х敓鐨勫璇濇榪愯鏈熼棿錛屾瘡闅?縐掑脊鍑轟竴涓秷鎭銆?

鍚屾牱錛屾垜浠彲浠ヤ互浠諱綍鑷繁鐨勪唬鐮佹潵鏇挎崲5涓殑娑堟伅妗嗚鍙ャ傝緇嗚闄勪緥s2銆?/p>

絎笁縐嶆柟娉曟槸閲囩敤綰跨▼鎶鏈備紬鎵鍛ㄧ煡錛學indows 9X鏄竴涓熀浜庡綰跨▼鐨勫浠誨姟鎿嶄綔緋葷粺錛屽湪鍐呮牳涓互綰跨▼浣滀負璋冨害鐨勫熀鏈崟浣嶏紝鐢辯郴緇熷垎鏃墮棿鐗囪繘琛岃皟搴︺傚埄鐢ㄨ繖涓鐐癸紝鎴戜滑鍙互鍦ㄧ▼搴忓綋涓垱寤轟竴涓滃徃鑱屸濊鏃剁殑綰跨▼錛岄氳繃綰跨▼闂寸殑鍚屾鏉?font style="BACKGROUND-COLOR: yellow" color="red">瀹氭椂瑙﹀彂鎴戜滑瑕佸畬鎴愮殑浠誨姟鐨勪唬鐮併備笉璞″墠涓ょ鏂規硶闇瑕佽嚦灝戞湁涓涓獥鍙d綔涓烘帴鍙楁秷鎭殑涓葷獥鍙o紝閲囩敤綰跨▼鎶鏈疄鐜?font style="BACKGROUND-COLOR: yellow" color="red">瀹氭椂瑙﹀彂灝嗗厤鍘誨垱寤虹獥鍙g殑楹葷儲浠ュ強甯︽潵鐨勭郴緇熷悇縐嶈祫婧愮殑娑堣椼備笅闈㈡垜浠潵涓句竴涓緥瀛愭潵璇存槑榪欎釜闂錛氭垜浠湪CmyApp綾葷殑Initstance鎴愬憳涓笉寤虹珛涓葷獥鍙h屾槸鍒涘緩涓涓伐浣滅嚎紼嬶紝璇ョ嚎紼嬩紤鐪犱竴瀹氱殑鏃墮棿鍚庯紝鑷姩璋冪敤涓葷嚎紼嬬殑SomeThing鍑芥暟銆備負浜嗘敮鎸佺嚎紼嬬殑榪愯錛屾垜浠渶瑕佺粰CmyApp綾誨鍔犵浉搴旂殑綰跨▼鍑芥暟銆備笅闈紝鎴戜滑榪樻槸涓姝ヤ竴姝ョ殑瀹炵幇錛?/p>

  1. 鍒╃敤MFC AppWizard鍒涘緩涓涓爣鍑嗗伐紼嬶紝鍏朵腑涓轟笉浜х敓澶氫綑鐨勪唬鐮侊紝涓嶉夋枃妗?瑙嗗浘鏀寔錛屽茍閫夋嫨鍗曟枃妗c傚伐紼嬪悕涓篠3銆?

  2. 鍦–S3App:: InitInstance()涓敤鈥?* 鈥?*/鈥濇敞閲婃帀鈥渞eturn TRUE;鈥濅箣鍓嶇殑鎵鏈変唬鐮併傝繖鏄負浜嗕笉寤虹珛紿楀彛銆傚茍娣誨姞浠ヤ笅浠g爜錛?br />ExitFlag=TRUE;//鏄惁緇撴潫涓葷嚎紼嬬殑寰幆鐨勬爣蹇楀彉閲忋傚洜涓哄瓙綰跨▼涓ラ噸渚濊禆涓葷嚎紼嬶紝鎵浠ュ湪鏈緥瀛愪腑涓轟簡閬垮厤娌℃湁涓葷獥鍙h屾彁鍓嶇粨鏉熷簲鐢ㄧ▼搴忥紝浠庤屼嬌瀛愮嚎紼嬫棤娉曞瓨鍦紝鎵浠ョ粰涓葷嚎紼嬩竴涓驚鐜紝鐭ラ亾鍏ㄥ眬鍙橀噺ExitFlag鍦ㄥ瓙綰跨▼閫鍑哄墠琚緗垚FALSE涓烘.
    StartThread();//鍚姩綰跨▼
    do{}while(ExitFlag);//鐩村埌緇撴潫瀛愮嚎紼?br />::MessageBox(NULL,"涓葷嚎紼嬬粨鏉燂紒","瀹氭椂瑙﹀彂婕旂ず",MB_OK);
    return TRUE;

  3. 鍦℅lobals涓鍔犱竴鏍囧織鍙橀噺鈥淓xitFlag鈥濓紝綾誨瀷涓築OOL銆傚畠琚富綰跨▼鐢ㄦ潵鍒ゆ柇鏄惁緇撴潫鑷韓榪愯銆?

  4. 閫氳繃ClassView鍦–S3App鐨凱ublic閮ㄥ垎澹版槑浠ヤ笅鍑芥暟:
    void StartThread(void); //鍚姩綰跨▼
    static UINT ThreadFunction(void); //涓昏鎵ц浠g爜鐨勫嚱鏁?br />static UINT StaticThreadFunc(LPVOID lpparam);//璁劇疆綰跨▼鏃剁敤鍒扮殑鍑芥暟
    闇瑕佺壒鍒寚鍑虹殑鏄紝鐢ˋfxBeginThread榪涜綰跨▼璁劇疆鏃訛紝絎竴鍙傛暟蹇呴』璞℃湰渚嬫墍鎸囧嚭鐨勯偅鏍峰0鏄庝負Static 錛屼笉鐒跺弬鏁拌漿鎹㈢殑閿欒浼氭壈寰椾綘涓嶅緱瀹夊畞銆?

  5. 鍦⊿tartThread涓緭鍏ュ涓嬩唬鐮侊細
    AfxBeginThread(StaticThreadFunc,this);//寤虹珛騫跺惎鍔ㄧ嚎紼?

  6. 鍦⊿taticThreadFunc涓緭鍏ュ涓嬩唬鐮侊細
    return ThreadFunc();//璋冪敤瀹屾垚涓昏綰跨▼浠g爜鐨勫嚱鏁幫紝娉ㄦ剰涓瀹氳鏄疭tatic.

  7. 瀹炵幇ThreadFunction錛?br />int i;
    i=5;//瑙﹀彂5嬈?br />while(i--)
    {
    Sleep(5000);//闂撮殧5縐?br />::MessageBox (NULL,"鎴戣瀹氭椂瑙﹀彂浜嗭紒","瀹氭椂瑙﹀彂婕旂ず",MB_OK);
    }
    ExitFlag=FALSE;//ExitFlag鏄竴鍏ㄥ眬鍙橀噺錛岄氱煡涓葷嚎紼嬬粨鏉熻繍琛屻?br />return 0;
    }

  8. 緙栬瘧騫惰繍琛屽伐紼嬶紝灝嗙湅涓嶅埌搴旂敤紼嬪簭紿楀彛錛屼絾鍙互鐪嬪埌姣忛殧5縐掞紝妗岄潰涓婂嚭鐜頒竴涓秷鎭錛?嬈″悗寮瑰嚭涓葷嚎紼嬬粨鏉熺殑娑堟伅妗嗐?

浠ヤ笂鍗蟲湰浜哄湪瀛︿範褰撲腑瑙e喅 Windows涓嬪疄鐜?font style="BACKGROUND-COLOR: yellow" color="red">瀹氭椂瑙﹀彂鑰岄噰鍙栫殑涓浜涘姙娉曪紝鍚勮嚜鏂規硶鐨勭壒鐐逛篃鍦ㄤ粙緇嶅綋涓寚鍑恒傚笇鏈涙墍榪拌兘緇欏ぇ瀹朵竴鐐瑰府鍔╋紝鏇村笇鏈涜兘寰楀埌澶у鐨勬寚姝c傚鏋滄偍鏈変粈涔堟剰瑙佸拰璁炬兂錛屾榪庡彂E-Mail緇欐垜錛?a href="mailto:yangshanhe@21cn.com">yangshanhe@21cn.com錛夈?/p>

==

寰堟棭涔嬪墠2000騫寸殑鎷欎綔錛岄泦鍦ㄤ竴璧鳳紝鍏嶅緱鑷繁閮戒笉娓呮騫茶繃浠涔堛?/p>

]]>
INF鏂囦歡鏍煎紡璇存槑http://m.shnenglu.com/tx7do/articles/8922.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Fri, 23 Jun 2006 13:48:00 GMThttp://m.shnenglu.com/tx7do/articles/8922.htmlhttp://m.shnenglu.com/tx7do/comments/8922.htmlhttp://m.shnenglu.com/tx7do/articles/8922.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/8922.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/8922.html闃呰鍏ㄦ枃

]]>
濡備綍瀵箇ebbrowser鍜孖E緙栫▼錛堝崄涓錛?/title><link>http://m.shnenglu.com/tx7do/articles/8921.html</link><dc:creator>鏉ㄧ布娉?/dc:creator><author>鏉ㄧ布娉?/author><pubDate>Fri, 23 Jun 2006 13:46:00 GMT</pubDate><guid>http://m.shnenglu.com/tx7do/articles/8921.html</guid><wfw:comment>http://m.shnenglu.com/tx7do/comments/8921.html</wfw:comment><comments>http://m.shnenglu.com/tx7do/articles/8921.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/tx7do/comments/commentRss/8921.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/tx7do/services/trackbacks/8921.html</trackback:ping><description><![CDATA[     鎽樿: 浠呬粎鐢ㄤ簬Internet Explorer鐨勪簨浠? 鏈変簺鏄粎浠呭彲鐢ㄤ簬鑷姩鍖?Internet Explorer,: 路聽聽聽聽聽聽聽聽 OnQuit ...  <a href='http://m.shnenglu.com/tx7do/articles/8921.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/tx7do/aggbug/8921.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/tx7do/" target="_blank">鏉ㄧ布娉?/a> 2006-06-23 21:46 <a href="http://m.shnenglu.com/tx7do/articles/8921.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>濡備綍瀵箇ebbrowser鍜孖E緙栫▼錛堝崄錛?/title><link>http://m.shnenglu.com/tx7do/articles/8920.html</link><dc:creator>鏉ㄧ布娉?/dc:creator><author>鏉ㄧ布娉?/author><pubDate>Fri, 23 Jun 2006 13:46:00 GMT</pubDate><guid>http://m.shnenglu.com/tx7do/articles/8920.html</guid><wfw:comment>http://m.shnenglu.com/tx7do/comments/8920.html</wfw:comment><comments>http://m.shnenglu.com/tx7do/articles/8920.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/tx7do/comments/commentRss/8920.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/tx7do/services/trackbacks/8920.html</trackback:ping><description><![CDATA[     鎽樿: 鐢盜nternet Explorer 5嬋鍙戜簨浠? 濡備綘鎵鐭ワ紝 Internet Explorer鍍忓叾浠朇OM瀵硅薄涓鏍鋒縺鍙戜簨浠垛旈氳繃榪炴帴鐐?浣嗗疄闄呬笂Internet Explorer濡備綍嬋鍙戜簨浠跺憿?姣忔 Internet Explorer闇瑕佸悜瀹㈡埛鎻愪緵鍏充簬褰撳墠媧誨姩鐘舵佺殑淇℃伅, Internet Explorer 嬋鍙戦氳繃DWebBrowserEvents2 ...  <a href='http://m.shnenglu.com/tx7do/articles/8920.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/tx7do/aggbug/8920.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/tx7do/" target="_blank">鏉ㄧ布娉?/a> 2006-06-23 21:46 <a href="http://m.shnenglu.com/tx7do/articles/8920.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>濡備綍瀵箇ebbrowser鍜孖E緙栫▼錛堜節錛?http://m.shnenglu.com/tx7do/articles/8919.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Fri, 23 Jun 2006 13:45:00 GMThttp://m.shnenglu.com/tx7do/articles/8919.htmlhttp://m.shnenglu.com/tx7do/comments/8919.htmlhttp://m.shnenglu.com/tx7do/articles/8919.html#Feedback1http://m.shnenglu.com/tx7do/comments/commentRss/8919.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/8919.html闃呰鍏ㄦ枃

]]>
濡備綍瀵箇ebbrowser鍜孖E緙栫▼錛堝叓錛?/title><link>http://m.shnenglu.com/tx7do/articles/8918.html</link><dc:creator>鏉ㄧ布娉?/dc:creator><author>鏉ㄧ布娉?/author><pubDate>Fri, 23 Jun 2006 13:44:00 GMT</pubDate><guid>http://m.shnenglu.com/tx7do/articles/8918.html</guid><wfw:comment>http://m.shnenglu.com/tx7do/comments/8918.html</wfw:comment><comments>http://m.shnenglu.com/tx7do/articles/8918.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/tx7do/comments/commentRss/8918.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/tx7do/services/trackbacks/8918.html</trackback:ping><description><![CDATA[ <h1 style="MARGIN: auto 0cm"> <span lang="EN-US"> <font face="瀹嬩綋">Internet Explorer 浜嬩歡</font> </span> </h1> <p> <span lang="EN-US"> <font face="瀹嬩綋"> <font size="3"> <p> </p> </font> </font> </span> </p> <p> </p> <p> <font face="瀹嬩綋"> <font size="3"> <i> <span lang="EN-US">IWebBrowser2 </span> </i>鐨勫睘鎬у拰鏂規硶緇欎簡浣犵‘鍒囩殑鎺у埗瀵艱埅鍜岀敤鎴鋒帴鍙g殑閫斿緞錛屼絾鏄鏋滀綘涓嶈兘澶熸嫻嬪埌嫻忚鍣ㄦ鍦ㄥ鐞嗕粈涔堜互鍙婁綍鏃跺鐞嗕粈涔堬紝浣犺繕鏄病鏈夊叏闈㈢殑鎺у埗瀹?span lang="EN-US">.鍥犳錛學ebBrowser鎺т歡鍜孖nternet Explorer鏆撮湶鍑轟簨浠訛紝閫氳繃姝や綘鍙互蹇呰鏃剁洃瑙嗘椿鍔ㄤ互鍙婂鐞嗘煇浜涙椿鍔? 涓句緥鏉ヨ錛屽亣璁句綘寤虹珛涓涓猧ntranet搴旂敤紼嬪簭, 浣犳兂闄愬埗鐢ㄦ埛鐢ㄦ埛璁塊棶鏌愪簺web欏?鍒╃敤Internet Explorer鐨勬椂闂村鐞嗗彞鏌?浣犲彲浠ユ寚浠ゅ簲鐢ㄧ▼搴忓湪鐢ㄦ埛璇曞浘璁塊棶鍙楅檺鐨刄RL鏃跺欏彇娑堝鑸畬鎴愩?/span></font> </font> </p> <p> <span lang="EN-US"> <font face="瀹嬩綋"> <font size="3"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <h1 style="MARGIN: auto 0cm"> <font face="瀹嬩綋">浜嬩歡 鍜?寮曞嚭鐨勬帴鍙?/font> </h1> <p> <font size="3"> <font face="瀹嬩綋">鏃犺浣曟椂涓涓?span lang="EN-US">COM 瀵硅薄闇瑕佸鎴峰簲鐢ㄧ▼搴忎竴涓簨浠跺彂鐢熶簡, COM 瀵硅薄鍙戦佷竴涓彨鍋氫簨浠剁殑娑堟伅. 鍙戦佹秷鎭殑澶勭悊榪囩▼浼氭縺鍙戜竴涓簨浠? 浣嗗鏋滀簨浠舵病鏈変換浣曠洃鍚呬細濡備綍錛?浜嬩歡姣忔閮藉彂鐢熷悧? 鏄劇劧, 瀹㈡埛搴旂敤紼嬪簭鐩戝惉榪欎簺浜嬩歡騫舵帶鍒禖OM瀵硅薄.濡傛灉涓涓鎴峰簲鐢ㄦ兂鎺ユ敹鏉ヨ嚜COM 瀵硅薄鐨勪簨浠?瀹?advises" 瀹為檯鐨凜OM 瀵硅薄鐨?</span></font> </font> </p> <p> <font size="3"> <font face="瀹嬩綋">涓涓?span lang="EN-US">COM 瀵硅薄涓轟簡閫氬鎴烽氫俊, 瀵硅薄鑷韓蹇呴』鏀寔涓涓垨鑰呭涓寮曟帴鍙?涓涓?COM 瀵硅薄鏀寔鐨勫寮曟帴鍙f槸浣滀負鍙繛鎺ュ璞″紩鐢? 瑕佹垚涓轟竴涓彲榪炴帴瀵硅薄錛孋OM瀵硅薄蹇呴』瀹炵幇<i>IConnectionPointContainer </i>鎺ュ彛銆傞氳繃姝ゆ帴鍙o紝瀹㈡埛鍙璇嗗埌閭d簺澶栧紩鎺ュ彛琚湇鍔″櫒鏀寔. 澶栧紩鎺ュ彛瀹為檯閫氳繃榪炴帴鐐圭敱瀹㈡埛鎸傛帴鍏OM瀹炵幇銆傚疄鐜板寮曟帴鍙g殑瀹㈡埛閮ㄥ垎浼楁墍鍛ㄧ煡鏄氳繃浜嬩歡鎺ユ敹妲斤紙event sink錛夊疄鐜扮殑.</span></font> </font> </p> <p> <font size="3"> <font face="瀹嬩綋">鍗曚竴鐨勮繛鎺ョ偣鐢辨湇鍔″櫒鏀寔姣忎竴涓寮曟帴鍙?span lang="EN-US">.姣忎竴涓繛鎺ョ偣鑳藉鎿嶇旱涓縐嶇被鍨嬬殑澶栧紩鎺ュ彛涓旇嚦灝戞敮鎸?i>IConnectionPoint</i> 鎺ュ彛. 鍥?-1 鎻忚堪浜嗗彲榪炴帴鐨勫璞″拰瀹冪殑瀹㈡埛涔嬮棿鐨勫叧緋?</span></font> </font> </p> <p> <span lang="EN-US"> <font size="3"> <font face="瀹嬩綋"> <shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> <stroke joinstyle="miter"> </stroke> <formulas> <f eqn="if lineDrawn pixelLineWidth 0"> </f> <f eqn="sum @0 1 0"> </f> <f eqn="sum 0 0 @1"> </f> <f eqn="prod @2 1 2"> </f> <f eqn="prod @3 21600 pixelWidth"> </f> <f eqn="prod @3 21600 pixelHeight"> </f> <f eqn="sum @0 0 1"> </f> <f eqn="prod @6 1 2"> </f> <f eqn="prod @7 21600 pixelWidth"> </f> <f eqn="sum @8 21600 0"> </f> <f eqn="prod @7 21600 pixelHeight"> </f> <f eqn="sum @10 21600 0"> </f> </formulas> <path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"> </path> <lock aspectratio="t" v:ext="edit"> </lock> </shapetype> <shape id="_x0000_i1025" style="WIDTH: 297pt; HEIGHT: 143.25pt" type="#_x0000_t75"> <imagedata o:title="CH7-1_Events" src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msoclip1/01/clip_image001.jpg"> </imagedata> </shape> </font> </font> </span> </p> <p> <font size="3"> <font face="瀹嬩綋"> <b> <span lang="EN-US">Figure 7-1.</span> </b> <span lang="EN-US"> <i>Connectable object and its client.</i> </span> </font> </font> </p> <p> <font size="3"> <font face="瀹嬩綋">姣忎竴涓湇鍔″櫒蹇呴』瀹炵幇<span lang="EN-US">2涓帴鍙d互渚垮疄鐜板鎴峰彲浠ユ帴鏀朵簨浠垛?i>IConnectionPointContainer</i> 鍜?<i>IConnectionPoint</i>. 鎴戜滑灝嗗厛鐪嬬湅榪欎簺鎺ュ彛涔嬪悗灝嗘瑙嗗疄鐜頒簨浠剁殑涓嶅悓閫斿緞.</span></font> </font> </p> <h2 style="MARGIN: auto 0cm"> <i> <span lang="EN-US"> <font face="瀹嬩綋">IConnectionPointContainer</font> </span> </i> </h2> <p> <font face="瀹嬩綋"> <font size="3">姣忎竴涓彲榪炴帴瀵硅薄瀹炵幇浜?i><span lang="EN-US">IConnectionPointContainer</span></i><span lang="EN-US">. 閫氳繃姝ゆ帴鍙? 璇曞浘鎺ユ敹浜嬩歡鐨勫鎴峰彲鎵懼嚭鍏充簬鍙繛鎺ュ璞℃敮鎸佺殑涓嶅悓鐨勮繛鎺ョ偣. 閫氳繃璋冪敤<i>QueryInterface </i>using 瀹㈡埛鍙互鑾峰緱鏈嶅姟鍣ㄦ敮鎸佺殑浠諱綍鎺ュ彛鐨勬寚閽? (浣犲彲浠ヤ嬌鐢ㄤ換浣曟帴鍙f寚閽堣皟鐢?i>QueryInterface</i>, 鍥犱負鍏ㄩ儴 COM 鎺ュ彛緇ф壙鑷?i>IUnknown</i>.) 涔嬪悗瀹㈡埛鍙互浣跨敤<i>IConnectionPointContainer</i> 鎺ュ彛鐨?涓柟娉曚腑鐨勪箣涓鑾峰彇鍙繛鎺ョ偣銆?濡傝〃7-1, 鑾峰緱鍙繛鎺ョ偣</span></font> </font> </p> <p> <font face="瀹嬩綋"> <font size="3"> <b> <span lang="EN-US">Table 7-1</span> </b> <span lang="EN-US"> <i>Methods of the</i> IConnectionPointContainer<i> Interface</i></span> </font> </font> </p> <table style="WIDTH: 95%; mso-cellspacing: 1.5pt; mso-padding-alt: 3.75pt 3.75pt 3.75pt 3.75pt" cellpadding="0" width="95%" border="0"> <tbody> <tr> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center"> <font size="3"> <b> <i> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鏂規硶</span> </i> </b> <b> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </b> </font> </p> <p> </p> </td> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center"> <font size="3"> <b> <i> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鎻忚堪</span> </i> </b> <b> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </b> </font> </p> <p> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" valign="top"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font face="Times New Roman"> <font size="3"> <i> <span lang="EN-US">EnumConnectionPoints</span> </i> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </font> </font> </p> <p> </p> </td> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" valign="top"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font size="3"> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鍒椾婦鍙繛鎺ュ璞℃敮鎸佺殑鍏ㄩ儴鍙繛鎺ュ璞?/span> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </font> </p> <p> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" valign="top"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font face="Times New Roman"> <font size="3"> <i> <span lang="EN-US">FindConnectionPoint</span> </i> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </font> </font> </p> <p> </p> </td> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" valign="top"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font size="3"> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">璁╁鎴鋒煡璇㈠彲榪炴帴瀵硅薄鍏充簬瀹冩槸鍚︽敮鎸佷竴涓壒孌婃帴鍙c傚鎴鋒寚瀹氱壒孌婄殑鎺ュ彛錛堝彲榪炴帴鐐癸級鐨勬帴鍙f爣紺?/span> <span lang="EN-US"> <font face="Times New Roman"> (IID) </font> </span> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">銆傚鏋滃彲榪炴帴瀵硅薄鏀寔姝ゆ帴鍙o紝榪斿洖</span> <font face="Times New Roman"> <i> <span lang="EN-US">IConnectionPoint</span> </i> <span lang="EN-US"> </span> </font> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鎺ュ彛鐨勬寚閽堛?/span> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </font> </p> <p> </p> </td> </tr> </tbody> </table> <h2 style="MARGIN: auto 0cm"> <i> <span lang="EN-US"> <font face="瀹嬩綋">IConnectionPoint</font> </span> </i> </h2> <p> <font face="瀹嬩綋"> <font size="3">涓鏃﹀鎴風煡閬撳摢涓繛鎺ョ偣鍙榪炴帴瀵硅薄鏈嶅姟鍣ㄦ敮鎸?span lang="EN-US">, 瀹㈡埛灝卞彲寤虹珛鍚屽彲榪炴帴瀵硅薄鐨勮繛鎺ャ傚鎴烽氱煡鍙繛鎺ュ璞″皢瑕佸湪鍏ㄩ儴浜嬩歡涓帴鏀墮偅浜涗簨浠?褰撳鎴蜂笉鍐嶉渶瑕佹帴鏀舵潵鑷彲榪炴帴瀵硅薄鐨勪簨浠?瀹㈡埛瑙i櫎瀵瑰璞$殑閫氱煡. 琛?-2 灞曠ず浜?<i>IConnectionPoint</i> 鎺ュ彛鍙瀹㈡埛榪炴帴鐨? (澶у鏁版椂鍊?浣犲皢榪炴帴鍒頒粎浠呰〃涓ご涓や釜)</span></font> </font> </p> <p> <font face="瀹嬩綋"> <font size="3"> <b> <span lang="EN-US">Table 7-2</span> </b> <span lang="EN-US"> <i>Methods of the </i>IConnectionPoint<i> Interface</i></span> </font> </font> </p> <table style="WIDTH: 95%; mso-cellspacing: 1.5pt; mso-padding-alt: 3.75pt 3.75pt 3.75pt 3.75pt" cellpadding="0" width="95%" border="0"> <tbody> <tr> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center"> <font size="3"> <b> <i> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鏂規硶</span> </i> </b> <b> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </b> </font> </p> <p> </p> </td> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align="center"> <font size="3"> <b> <i> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鎻忚堪</span> </i> </b> <b> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </b> </font> </p> <p> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" valign="top"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font face="Times New Roman"> <font size="3"> <i> <span lang="EN-US">Advise </span> </i> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </font> </font> </p> <p> </p> </td> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" valign="top"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font size="3"> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鍦ㄥ鎴峰拰鍙繛鎺ュ璞$殑鏌愪竴涓彲榪炴帴鐐歸棿寤虹珛榪炴帴銆?/span> <font face="Times New Roman"> </font> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">瀹㈡埛蹇呴』浼犻掑畠鐨勪簨浠舵帴鏀舵Ы鐨?/span> <font face="Times New Roman"> <i> <span lang="EN-US">IUnknown</span> </i> <span lang="EN-US"> </span> </font> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鎺ュ彛銆?/span> <font face="Times New Roman"> </font> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">浜嬩歡鎺ユ敹妲藉繀欏誨疄鐜?/span> <font face="Times New Roman"> <i> <span lang="EN-US">IDispatch</span> </i> <span lang="EN-US"> </span> </font> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鎺ュ彛浠ユ帴鏀朵簨浠躲?/span> <font face="Times New Roman"> </font> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鍏稿瀷鍦?/span> <span lang="EN-US"> <font face="Times New Roman">,</font> </span> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鍏氳榪炴帴瀵硅薄嬋鍙戜簨浠訛紝鍙繛鎺ュ璞″皢璋冪敤</span> <font face="Times New Roman"> <i> <span lang="EN-US">IDispatch</span> </i> <span lang="EN-US"> </span> </font> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鎺ュ彛鐨?/span> <i> <span lang="EN-US"> <font face="Times New Roman">Invoke </font> </span> </i> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鏂規硶銆?/span> <font face="Times New Roman"> <i> <span lang="EN-US">Advise</span> </i> <span lang="EN-US"> </span> </font> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鏂規硶榪斿洖涓涓?/span> <span lang="EN-US"> <font face="Times New Roman"> cookie </font> </span> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">錛屽綋瀹㈡埛涓柇榪炴帴鏃跺欙紝璋冪敤</span> <i> <span lang="EN-US"> <font face="Times New Roman">Unadvise</font> </span> </i> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鏂規硶鏃跺欓渶瑕佹惡甯︽</span> <font face="Times New Roman"> <span lang="EN-US">cookie</span> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </font> </font> </p> <p> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" valign="top"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font face="Times New Roman"> <font size="3"> <i> <span lang="EN-US">Unadvise </span> </i> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </font> </font> </p> <p> </p> </td> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" valign="top"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font size="3"> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">涓柇榪炴帴</span> <font face="Times New Roman"> <span lang="EN-US">.</span> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </font> </font> </p> <p> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" valign="top"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font face="Times New Roman"> <font size="3"> <i> <span lang="EN-US">GetConnectionInterface</span> </i> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </font> </font> </p> <p> </p> </td> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" valign="top"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font size="3"> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">榪斿洖鐢辮繛鎺ョ偣綆$悊鐨勫鍙戞帴鍙g殑</span> <span lang="EN-US"> <font face="Times New Roman">IID . <i>GetConnectionInterface </i></font> </span> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鏂規硶璁╁鎴峰皢</span> <i> <span lang="EN-US"> <font face="Times New Roman">IConnectionPoint</font> </span> </i> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">緲昏瘧涓轟竴涓?/span> <font face="Times New Roman"> <span lang="EN-US">IID.</span> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </font> </font> </p> <p> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" valign="top"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font face="Times New Roman"> <font size="3"> <i> <span lang="EN-US">GetConnectionPointContainer </span> </i> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </font> </font> </p> <p> </p> </td> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" valign="top"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font size="3"> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">寰楀埌鍒昏繛鎺ュ璞$殑</span> <font face="Times New Roman"> <i> <span lang="EN-US">IConnectionPointContainer</span> </i> <span lang="EN-US"> </span> </font> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鎺ュ彛</span> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </font> </p> <p> </p> </td> </tr> <tr> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" valign="top"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font face="Times New Roman"> <font size="3"> <i> <span lang="EN-US">EnumConnections </span> </i> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </font> </font> </p> <p> </p> </td> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent" valign="top"> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> <font size="3"> <span style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">鏋氫婦鍒昏繛鎺ュ璞$殑褰撳墠鍙繛鎺ョ偣</span> <font face="Times New Roman"> <span lang="EN-US">.</span> <span lang="EN-US" style="FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: 瀹嬩綋"> <p> </p> </span> </font> </font> </p> <p> </p> </td> </tr> </tbody> </table> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 10.5pt; TEXT-INDENT: -10.5pt; mso-char-indent-count: -1.0; mso-char-indent-size: 10.5pt"> <span lang="EN-US"> <font size="3"> <font face="Times New Roman"> <p> </p> </font> </font> </span> </p> <p> </p> <h1 style="MARGIN: auto 0cm"> <font face="瀹嬩綋">鎺ユ敹浜嬩歡鐨勯斿緞</font> </h1> <p> <font size="3"> <font face="瀹嬩綋">渚濋潬寮鍙戝伐鍏蜂綘鍒涘緩瀹㈡埛搴旂敤紼嬪簭<span lang="EN-US">,浣犲彲浠ユ帴鏀朵簨浠墮氳繃涓嶅悓鐨勯斿緞. 鏄劇劧, 鍦╒b涓帴鏀朵簨浠跺悓鍦╒C涓帴鏀朵簨浠剁浉姣旀槸濡傛涓嶅悓鍜屽鏄?鍦?C++ 搴旂敤涓?浣犲彲浠ョ敤涓嶅悓鐨勬妧鏈紝閫氳繃浣跨敤 ATL, MFC, 鎴栬呮爣鍑咰++.</span></font> </font> </p> <h2 style="MARGIN: auto 0cm"> <span lang="EN-US"> <font face="瀹嬩綋">Visual Basic 涓帴鏀朵簨浠?</font> </span> </h2> <p> <span lang="EN-US"> <font face="瀹嬩綋" size="3">Visual Basic鏄垱寤哄ぇ澶氭暟綾誨瀷搴旂敤鐨勬渶杞繪澗鐨勫伐鍏? 鎵浠ユ垜鍛婅瘔浣燰B鏄鐞嗕簨浠舵渶婧剁殑宸ュ叿鏃朵篃涓嶈鎯婂. ATL 鍜?Visual Basic 紺轟緥鎴戜滑鍚屾牱鐨勫伐浣?浣嗘槸ATL鑺辮垂浜嗘垜4涓皬鏃? 鑰?Visual Basic 渚嬪瓙浠呬粎鍙姳20 鍒嗛挓.鍒鎴戦敊浜嗏旀垜鏄疉TL, 鍜?MFC錛?C++鐨勫繝瀹炰俊寰?<span style="mso-spacerun: yes">聽 </span>灝ゅ叾鏄綘寤虹珛涓涓帴鍙g殑鏃跺?浣嗘槸 Visual Basic褰撳緩绔嬪鎴峰簲鐢ㄧ▼搴忎粠綾諱技IE榪欐牱鐨勬湇鍔″櫒鎺ユ敹浜嬩歡鏃舵槸浼熷ぇ鐨勫伐鍏?</font> </span> </p> <p> <span lang="EN-US"> <font face="瀹嬩綋" size="3">OK,濡備綍浠嶸isual Basic 搴旂敤紼嬪簭涓帴鏀朵簨浠訛紵褰撳涓籛ebBrowser 鎺т歡,浣犱笉蹇呭仛浠諱綍鐗瑰埆鐨勪簨. Visual Basic 鍦╢orm涓婁負WebBrowser 鎺т歡鎺ユ敹浜嬩歡.浣犳墍闇瑕佸仛鐨勫叏閮ㄤ簨鎯呭氨鏄湭浣犺鎺ユ敹鐨勪換浣曚簨浠跺垱寤轟竴涓簨浠跺鐞嗗彞鏌?</font> </span> </p> <p> <font size="3"> <font face="瀹嬩綋">浣犺薄鍒涘緩鍏朵粬浜嬩歡鍙ユ焺涓鏍峰垱寤哄彞鏌?span lang="EN-US"> (渚嬪<i>Form_Load</i> event). 浠嶱rocedure涓嬫媺鍒楄〃妗嗕腑閫夋嫨浣犺薄鎺у埗鐨勫彞鏌? 鍦ㄤ簨浠跺彞鏌勪腑,鍔犲叆浠諱綍浣犲瀷鍦ㄤ簨浠舵縺鍙戞椂鎵ц鐨勪換浣曚唬鐮?</span></font> </font> </p> <p> <font size="3"> <font face="瀹嬩綋">褰撹嚜鍔ㄥ寲鏈嶅姟鍣ㄦ椂鍊欐帴鏀朵簨浠?span lang="EN-US">, 渚嬪鍦╒B搴旂敤涓殑Internet Explorer,榪囩▼鐩存埅浜嗗綋.棣栧厛璁劇疆瀵規湇鍔″櫒鐨勭被鍨嬪簱鐨勫紩鐢? 浣犲彲浠ヨ闂甈roject/References 鑿滃崟.涔嬪悗錛岄噰鐢?i>WithEvents</i> 鍏抽敭瀛楀0鏄庢湇鍔″櫒瀵硅薄鐨勫彉閲?涓句緥, 濡傛灉浣犺嚜鍔ㄥ寲Internet Explorer, 浣犲皢澹版槑鍙橀噺濡備笅:</span></font> </font> </p> <table style="WIDTH: 95%; mso-cellspacing: 1.5pt; mso-padding-alt: 3.75pt 3.75pt 3.75pt 3.75pt" cellpadding="0" width="95%" border="0"> <tbody> <tr> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"> <pre> <span lang="EN-US"> <font face="榛戜綋" size="2">Dim WithEvents InternetExplorer1 As InternetExplorer</font> </span> </pre> </td> </tr> </tbody> </table> <p> <font size="3"> <font face="瀹嬩綋">涓嬩竴姝ワ紝閲囩敤<span lang="EN-US">new鎴栬呭叾浠?鍏抽敭瀛楀垱寤哄疄渚嬪彉閲?錛屽涓嬶細:</span></font> </font> </p> <table style="WIDTH: 95%; mso-cellspacing: 1.5pt; mso-padding-alt: 3.75pt 3.75pt 3.75pt 3.75pt" cellpadding="0" width="95%" border="0"> <tbody> <tr> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"> <pre> <span lang="EN-US"> <font face="榛戜綋" size="2">Set InternetExplorer1 = CreateObject("InternetExplorer.Application.1")</font> </span> </pre> </td> </tr> </tbody> </table> <p> <font size="3"> <font face="瀹嬩綋">鎴栬?span lang="EN-US">:</span></font> </font> </p> <table style="WIDTH: 95%; mso-cellspacing: 1.5pt; mso-padding-alt: 3.75pt 3.75pt 3.75pt 3.75pt" cellpadding="0" width="95%" border="0"> <tbody> <tr> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"> <pre> <span lang="EN-US"> <font face="榛戜綋" size="2">Set InternetExplorer1 = New InternetExplorer</font> </span> </pre> </td> </tr> </tbody> </table> <p> <font size="3"> <font face="瀹嬩綋">褰撲綘閲囩敤浠ヤ笂閫斿緞鐢熸垚瀹炰緥鎺ユ敹浜嬩歡<span lang="EN-US">, Visual Basic 鑷姩涓轟綘鍒濆鍖栧拰綆$悊浜嬩歡鎺ユ敹.浣犱笉蹇呮媴蹇冭繛鎺ョ偣闂錛孷B涓轟綘澶勭悊瀹冧滑.</span></font> </font> </p> <p> <font size="3"> <font face="瀹嬩綋">鍦ㄤ綘杈撳叆寤虹珛鏈嶅姟鍣ㄧ殑浠g爜涔嬪悗<span lang="EN-US">,浣犳彃鍏ョ鍚堟湇鍔″櫒浜嬩歡鐨勬柟娉曡皟鐢? <span style="mso-spacerun: yes">聽</span><span style="mso-spacerun: yes">聽</span>涓句緥鏉ヨ, 濡傛灉浣犳兂鎺у埗鐢盜E嬋媧葷殑<i>DownloadBegin</i> event, 浣犲簲褰撳0鏄庣被浼煎涓嬬殑鏂規硶澹版槑:</span></font> </font> </p> <table style="WIDTH: 95%; mso-cellspacing: 1.5pt; mso-padding-alt: 3.75pt 3.75pt 3.75pt 3.75pt" cellpadding="0" width="95%" border="0"> <tbody> <tr> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"> <pre> <span lang="EN-US"> <font face="榛戜綋" size="2">Private Sub InternetExplorer1_DownloadBegin()</font> </span> </pre> <pre> <span lang="EN-US"> <font size="2"> <font face="榛戜綋"> <span style="mso-spacerun: yes">聽聽 </span>' Insert your best Visual Basic code here.</font> </font> </span> </pre> <pre> <span lang="EN-US"> <font face="榛戜綋" size="2">End Sub</font> </span> </pre> </td> </tr> </tbody> </table> <p> <font size="3"> <font face="瀹嬩綋">褰撲綘涓嶅啀鎯蟲帴鏀舵潵鑷湇鍔″櫒鐨勪簨浠訛紝綆鍗曡緗彉閲忎負<i><span lang="EN-US">Nothing</span></i><span lang="EN-US">:</span></font> </font> </p> <table style="WIDTH: 95%; mso-cellspacing: 1.5pt; mso-padding-alt: 3.75pt 3.75pt 3.75pt 3.75pt" cellpadding="0" width="95%" border="0"> <tbody> <tr> <td style="BORDER-RIGHT: #d4d0c8; PADDING-RIGHT: 3.75pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 3.75pt; PADDING-BOTTOM: 3.75pt; BORDER-LEFT: #d4d0c8; PADDING-TOP: 3.75pt; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent"> <pre> <span lang="EN-US"> <font face="榛戜綋" size="2">Set InternetExplorer1 = Nothing</font> </span> </pre> </td> </tr> </tbody> </table> <img src ="http://m.shnenglu.com/tx7do/aggbug/8918.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/tx7do/" target="_blank">鏉ㄧ布娉?/a> 2006-06-23 21:44 <a href="http://m.shnenglu.com/tx7do/articles/8918.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>濡備綍瀵箇ebbrowser鍜孖E緙栫▼錛堜竷錛?/title><link>http://m.shnenglu.com/tx7do/articles/8917.html</link><dc:creator>鏉ㄧ布娉?/dc:creator><author>鏉ㄧ布娉?/author><pubDate>Fri, 23 Jun 2006 13:43:00 GMT</pubDate><guid>http://m.shnenglu.com/tx7do/articles/8917.html</guid><wfw:comment>http://m.shnenglu.com/tx7do/comments/8917.html</wfw:comment><comments>http://m.shnenglu.com/tx7do/articles/8917.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/tx7do/comments/commentRss/8917.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/tx7do/services/trackbacks/8917.html</trackback:ping><description><![CDATA[     鎽樿: 鍔犲叆楂樼駭鍔熻兘 鏈妭灝嗗睍紺哄浣曞姞鍏ラ珮綰у姛鑳藉埌浣犵殑搴旂敤紼嬪簭鎴栬匒ctiveX鎺т歡.灝嗗睍紺哄浣曚粠涓涓狝ctiveX鎺т歡涓闂甀nternet Explorer鐨?IWebBrowser2錛屼互鍙婂浣曚粠涓涓猈eb欏甸潰鐨刦rame涓幏寰梂ebBrowser 瀵硅薄銆傚皢浼氬睍紺哄疄鐜頒竴浜涘茍闈炲鏄撳疄鐜扮殑鍔熻兘.鏈妭鏈変竴瀹氶毦搴?鎵鏈変唬鐮侀噰鐢–++ 鍜孋OM瀹炵幇,浣犲簲褰撴湁涓瀹氬潥瀹炵殑鍩?..  <a href='http://m.shnenglu.com/tx7do/articles/8917.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/tx7do/aggbug/8917.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/tx7do/" target="_blank">鏉ㄧ布娉?/a> 2006-06-23 21:43 <a href="http://m.shnenglu.com/tx7do/articles/8917.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>濡備綍瀵箇ebbrowser鍜孖E緙栫▼錛堝叚錛?/title><link>http://m.shnenglu.com/tx7do/articles/8916.html</link><dc:creator>鏉ㄧ布娉?/dc:creator><author>鏉ㄧ布娉?/author><pubDate>Fri, 23 Jun 2006 13:42:00 GMT</pubDate><guid>http://m.shnenglu.com/tx7do/articles/8916.html</guid><wfw:comment>http://m.shnenglu.com/tx7do/comments/8916.html</wfw:comment><comments>http://m.shnenglu.com/tx7do/articles/8916.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/tx7do/comments/commentRss/8916.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/tx7do/services/trackbacks/8916.html</trackback:ping><description><![CDATA[     鎽樿: 浣跨敤VC++鍜孋OM API 灝界浣跨敤VC涓嶅儚Vb涓偅涔堝鏄撹嚜鍔ㄥ寲IE錛屼絾鏄篃涓嶅お闅撅紝灝ゅ叾鏄綘鐞嗚В浜咰ON鍜孋OM API銆傛棤璁轟綘浣跨敤MFC, ATL, 鎴栬呮爣鍑?C++鑷姩鍖朓E錛屾柟娉曢兘鏄竴鏍封斾綘浣跨敤COM API鏉ュ疄鐜? VC++涓垱寤轟竴涓狪nternet Explorer瀹炰緥鍖呮嫭瑕佽皟鐢–OM AP...  <a href='http://m.shnenglu.com/tx7do/articles/8916.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/tx7do/aggbug/8916.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/tx7do/" target="_blank">鏉ㄧ布娉?/a> 2006-06-23 21:42 <a href="http://m.shnenglu.com/tx7do/articles/8916.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>濡備綍瀵箇ebbrowser鍜孖E緙栫▼錛堜簲錛?http://m.shnenglu.com/tx7do/articles/8915.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Fri, 23 Jun 2006 13:42:00 GMThttp://m.shnenglu.com/tx7do/articles/8915.htmlhttp://m.shnenglu.com/tx7do/comments/8915.htmlhttp://m.shnenglu.com/tx7do/articles/8915.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/8915.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/8915.html闃呰鍏ㄦ枃

]]>
濡備綍瀵箇ebbrowser鍜孖E緙栫▼錛堝洓錛?http://m.shnenglu.com/tx7do/articles/8914.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Fri, 23 Jun 2006 13:42:00 GMThttp://m.shnenglu.com/tx7do/articles/8914.htmlhttp://m.shnenglu.com/tx7do/comments/8914.htmlhttp://m.shnenglu.com/tx7do/articles/8914.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/8914.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/8914.html闃呰鍏ㄦ枃

]]>
濡備綍瀵箇ebbrowser鍜孖E緙栫▼錛堜笁錛?http://m.shnenglu.com/tx7do/articles/8913.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Fri, 23 Jun 2006 13:41:00 GMThttp://m.shnenglu.com/tx7do/articles/8913.htmlhttp://m.shnenglu.com/tx7do/comments/8913.htmlhttp://m.shnenglu.com/tx7do/articles/8913.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/8913.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/8913.html闃呰鍏ㄦ枃

]]>
濡備綍瀵箇ebbrowser鍜孖E緙栫▼錛堜簩錛?http://m.shnenglu.com/tx7do/articles/8912.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Fri, 23 Jun 2006 13:40:00 GMThttp://m.shnenglu.com/tx7do/articles/8912.htmlhttp://m.shnenglu.com/tx7do/comments/8912.htmlhttp://m.shnenglu.com/tx7do/articles/8912.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/8912.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/8912.html 璋冪敤 Navigate 鏂規硶姣?em>GoBack 浠ュ強 GoForward  瑕佸洶闅?浣嗗鏋滀綘姝d粎浠呭鑸埌URL 涓斿茍涓嶄紶閫掍換浣曢檮鍔犲弬鏁? 瀹冪殑璋冪敤寰堝鏄撱?涓句緥鏉ヨ, VB涓鑸埌 Microsoft 涓婚〉, 鍙涓?

WebBrowser1.Navigate "http://www.microsoft.com"

VB浠g爜璋冪敤Navigate 濡傛瀹規槗鍥犱負鎵鏈夊弬鏁板嚭絎竴涓弬鏁板閮藉彲浠ユ槸鍙? 濡傛鐩稿鐓э紝VC++涓嶅彲浠ョ渷鐣ヤ換浣曞弬鏁? 濡傛灉浣犳兂浣跨敤VC++涓嶆槸鍕囦換浣曠壒鍒殑鍙傛暟瀵艱埅鍒?Microsoft鐨?home page, 浣犲繀欏諱紶閫掔┖鐨?em>VARIANT 緇撴瀯銆?MFC 搴旂敤紼嬪簭,浣犲繀欏誨涓嬭皟鐢?Navigate

COleVariant vtEmpty;

m_webBrowser.Navigate(_T(
"http://www.microsoft.com"), &vtEmpty, &vtEmpty, &vtEmpty, &vtEmpty);

璇ヤ緥瀛愬睍紺轟簡鍦?span lang="EN-US">MFC搴旂敤紼嬪簭涓帶鍒禬ebBrowser鎺т歡. 鎴戜紶閫掍竴涓櫘閫氱殑瀛楃涓茶屾浛浠?BSTR 鍥犱負 MFC 鎻愪緵浜嗕竴涓?WebBrowser 鎺т歡鐨勫寘瑁呯被,絎竴涓澆鍖呰綾諱腑鏄?em>LPCTSTR, 涓涓櫘閫氱殑瀛楃涓? 鍏朵粬鍙傛暟涓烘寚鍚?VARIANT 緇撴瀯鐨勬寚閽堛?濡傛灉浣犱笉鎯蟲寚瀹氫換浣曠壒鍒殑鍙傛暟, 鍒粎浠呬紶閫?NULL —閭f牱鍋? 浣犵殑搴旂敤紼嬪簭浼氭嫑鏉ュ穿婧冦備綘蹇呴』浼犻掍竴涓┖鐨?em>VARIANT 緇撴瀯鐨勬寚閽? 鍓嶉潰鐨勪唬鐮佷嬌鐢ㄤ簡 COleVariant 綾? 閭f槸涓涓笌 CComVariant 綾葷浉浼肩殑綾?a >銆?COleVariant 綆鍗曞寘瑁呬簡 VARIANT 浣垮緱VARIANT 緇撴瀯鏄撲簬浣跨敤.

灞炴?/strong> 鐜板湪浣犵湅鍒頒簡鎵鏈夌殑 IwebBrowser 鐨勬柟娉曪紝浣犲ぇ姒傚悜浜嗚В鍏跺睘鎬с?span lang="EN-US">(鎴戞槸涓嶆槸澶嫑姹備簡?)  IWebBrowser 鎺ュ彛鏈?0涓睘鎬э紝鎻忚堪浜庤〃6-2. 鎴戜竴宸叉寜鐓?em>IWebBrowser  鐨刅table涓殑瀛楁瘝搴忓垪鍑恒?/span>

Table 6-2. IWebBrowser 灞炴ф寜鐓table鎺掑簭

灞炴?/span>

 

鎻忚堪

 

Application

 

榪斿洖瀹夸富 WebBrowser 鎺т歡鐨勮嚜鍔ㄥ寲瀵硅薄 (IDispatch) 瀹炵幇錛屽鏋滃璞′笉鍙敤錛屽垯榪斿洖鐨?/span> WebbOrwser 鎺т歡鐨勮嚜鍔ㄥ寲瀵硅薄

 

Parent

 

榪斿洖 WebBrowser 鎺т歡鐨勭埗鎺т歡鐨勮嚜鍔ㄥ寲瀹炵幇 (IDispatch) 錛岄氬父鏄鍣?/span> 涓句緥鏉ヨ , 錛屾偍鐨勫涓繪垨鑰?/span> Internet Explorer 紿楀彛銆?/span>

 

Container

 

榪斿洖 WebBrowser 鎺т歡瀹瑰櫒鐨勮嚜鍔ㄥ寲瀵硅薄 (IDispatch) 銆傞氬父錛岃鍊艱繑鍥炲悓 Parent 灞炴т竴鏍風殑鍊箋?/span> .

 

Document

 

榪斿洖媧誨姩鏂囨。鐨勮嚜鍔ㄥ寲瀹炵幇 (IDispatch) 銆傚鏋?/span> HTML 褰撳墠鏄劇ず鍦?/span> WebBrowser 錛?/span> Document 灞炴х粰鍑轟綘瀛樺彇 DHTML 瀵硅薄妯″瀷鐨勯斿緞 .

 

TopLevelContainer

 

榪斿洖涓涓竷灝斿兼寚紺?/span> IE 鏄惁鏄?/span> WebBRowser 鎺т歡鐨勯《綰у鍣ㄣ傚湪 words 涓紝濡傛灉 IE 鏄涓誨簲鐢ㄦ壙闇鍒欒繑鍥?/span> true

 

Type

 

榪斿洖宸茬粡鍦?/span> WebBrowser 涓杞界殑瀵硅薄鐨勭被鍨嬨備婦渚嬶紝濡傛灉 HTML document 琚杞?/span> , Type 灝嗚繑鍥?/span> Microsoft HTML Document 5.0 . 濡傛灉鏂囨。鏄?/span> Word 鏂囨。 , Type 榪斿洖 Microsoft Word Document .

 

Left

 

. 榪斿洖鎴栬緗帶浠跺湪瀹瑰櫒紿楀彛宸﹁竟璺?/span>

 

Top

 

. 榪斿洖鎴栬緗帶浠跺湪瀹瑰櫒紿楀彛欏墮儴杈硅窛

 

Width

 

榪斿洖鎴栬緗?/span> webbrowser 鎺т歡鍦ㄧ獥鍙d腑鐨勬按騫蟲柟鍚戠殑鍚戣嫃涓哄崟浣嶅搴?/span>

 

Height

 

榪斿洖鎴栬緗?/span> webbrowser 鎺т歡鍦ㄧ獥鍙d腑鐨勫緗柟鍚戠殑鍚戝儚绱犱負鍗曚綅楂樺害

 

LocationName

 

榪斿洖涓涓?/span> WebBrowser 褰撳墠鏄劇ず鐨勮祫婧愬悕縐扮殑瀛楃涓?/span> ( 鎹㈠彞璇濊 , HTML 欏?/span> , Word 鏂囨。 , 錛?/span> folder, 璇稿姝ょ被 ) 銆?/span> 濡傛灉璧勬簮鏄?/span> HTML 欏碉紝瀛楃涓叉槸鏍囬銆傚鏋滆祫婧愭槸鏂囦歡鎴栬呮枃浠跺す錛屽瓧絎︿覆涓烘枃浠跺悕鎴栬呮枃浠跺す鍚嶃?/span> 涓句緥 , foo.doc 錛?/span> Word 鏂囨。錛夋垨鑰?/span>   Temp 錛?/span> temp directory. 錛?/span>

 

LocationURL

 

榪斿洖 WebBrowser 姝e湪鏄劇ず鐨勮祫婧愮殑 URL

 

Busy

 

榪斿洖涓涓竷灝斿兼寚紺?/span> WebBrowser 褰撳墠鏄惁姝e湪瑁呭叆 URL. 銆傚鏋滃綋鍓嶅睘鎬ц繑鍥?/span> true , 浣犲彲浠ヤ嬌鐢?/span> Stop 鏂規硶鍙栨秷浠f帀瀵艱埅銆?/span>

 

鐪嬪畬琛?span lang="EN-US"> 6-2, 娓呮櫚灞曠ず浜嗕綘鍙嬌鐢ㄧ殑灞炴? 褰撲腑鐨勪竴浜涘彲鑳介渶瑕佹洿澶氱殑瑙i噴. IWebBrowser 浣跨敤鐨勭浉褰撳鐨勪竴涓睘鎬ф槸 LocationURL, 緇欏嚭浜嗗綋鍓嶄綘瑁呭叆WebBrowser紿楀彛鐨?URL銆?鑾峰彇 LocationURL 鍊煎湪VB涓浉褰撳鏄擄細

Dim strLocation

strLocation 
= WebBrowser1.LocationURL

Visual C++鐨凪FC搴旂敤,  MFC 鍖呰綾諱嬌鐨勮闂?em>LocationURL 寰堝鏄? 浣犵畝鍗曡皟鐢?GetLocationURL 鏂規硶,璇ユ柟娉曡繑鍥炰竴涓?CString 瀵硅薄. 褰撲綘鎯沖湪鑷姩鍖朓E涓垨鑰厀ebBrowser鐨凪FC搴旂敤涓闂?LocationURL when automating Internet Explorer or when hosting the WebBrowser control in a C++ application that's not built by using MFC, 浣犲繀欏昏皟鐢ㄦ惡甯︿竴鎸囧悜BSTR鐨勬寚閽?em>銆?/em>BSTR 灝嗗寘鍚繑鍥炲? 姝ゅ灞曠ず濡備綍鍦?C++涓嬌鐢?

BSTR bstrURL;

m_pInternetExplorer
->get_LocationURL(&bstrURL);

 

瀛樺彇 Document 灞炴у湪VB涓浉褰撳鏄擄紝褰撳畾涔変竴涓彉閲忓悗錛堜婦渚? HtmlDoc錛? 鍊奸渶瑕?set 涓?Document 灞炴э細

Set HtmlDoc = WebBrowser1.Document

MFC 涓篃寰堝鏄?浣跨敤 MFC 鍖呰綾葷殑GetDocument鏂規硶錛?br />

IDispatch* pDisp;

pDisp 
= m_webBrowser.GetDocument();
GetDocument 榪斿洖鎸囧悜浠h〃鏂囨。 IDispatch 鎺ュ彛鐨勬寚閽? 濡傛灉 GetDocument 澶辮觸, 璇ュ璞″皢涓?em>NULL.

闈?span lang="EN-US">MFC C++ 搴旂敤鎴栬呬換浣曡嚜鍔ㄥ寲IE鐨凜++ 搴旂敤璁塊棶Document 灞炴у氨鍙兘澶熼噰鐢ㄨ皟鐢–OM鐨勬柟娉?#8212;閫氳繃灞炴х殑get_鏂規硶. (娉ㄨ壓灞炴у疄鍙,鎵浠ヨ繖閲屾棤put_ 鏂規硶.) 褰撹皟鐢?Document  鐨?em>get_ 鏂規硶,浣犱紶閫掍竴涓帴鍙?IDispatch 鐨勬寚閽?姝ゅ灞曠ず浜嗗浣曡皟鐢細

IDispatch* pDisp;
HRESULT hr 
= m_pInternetExplorer->get_Document(&pDisp);                    

褰撲嬌鐢ㄨ繖浜涗唬鐮?span lang="EN-US">,浣犲彲浠ヤ嬌鐢?SUCCEEDED 瀹忥紙 Win32 API鐨勪竴閮ㄥ垎錛? 浠ョ洃嫻嬭皟鐢ㄦ槸鍚︽垚鍔熴傚湪灝濊瘯浣跨敤Idispatch鎺ュ彛鍓嶄綘搴斿綋紜俊璋冪敤鎴愬姛銆?/span>



]]>
濡備綍瀵箇ebbrowser鍜孖E緙栫▼錛堜竴錛?/title><link>http://m.shnenglu.com/tx7do/articles/8911.html</link><dc:creator>鏉ㄧ布娉?/dc:creator><author>鏉ㄧ布娉?/author><pubDate>Fri, 23 Jun 2006 13:40:00 GMT</pubDate><guid>http://m.shnenglu.com/tx7do/articles/8911.html</guid><wfw:comment>http://m.shnenglu.com/tx7do/comments/8911.html</wfw:comment><comments>http://m.shnenglu.com/tx7do/articles/8911.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/tx7do/comments/commentRss/8911.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/tx7do/services/trackbacks/8911.html</trackback:ping><description><![CDATA[     鎽樿: 涓銆? 鍥犱負宸ヤ綔緙樻晠錛岄渶瑕佺爺絀跺 IE 緙栫▼錛屾墍浠ョ炕璇戜簡 MS 鐨勬湁鍏寵祫鏂欙紝渚涘弬鑰冦? ...  <a href='http://m.shnenglu.com/tx7do/articles/8911.html'>闃呰鍏ㄦ枃</a><img src ="http://m.shnenglu.com/tx7do/aggbug/8911.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/tx7do/" target="_blank">鏉ㄧ布娉?/a> 2006-06-23 21:40 <a href="http://m.shnenglu.com/tx7do/articles/8911.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>vc璋冭瘯緇忛獙http://m.shnenglu.com/tx7do/articles/6492.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Sun, 30 Apr 2006 09:26:00 GMThttp://m.shnenglu.com/tx7do/articles/6492.htmlhttp://m.shnenglu.com/tx7do/comments/6492.htmlhttp://m.shnenglu.com/tx7do/articles/6492.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/6492.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/6492.html聽聽聽聽聽聽 鎴戜滑鍦ㄥ仛vc緙栫▼璋冭瘯鏃剁粡甯擱亣鍒伴渶瑕佹樉紺哄彉閲忕殑鍐呭涔嬬被鐨勯棶棰橈紝鍦╠os妯″紡涓嬫垜浠畝鍗曚嬌鐢╬rintf(...)灝辮浜嗭紝鍦?a class="wordstyle" target="_blank">windows鎴戜滑濡備綍鏄劇ず鍙橀噺鍐呭鍛紵澶у鑲畾鏈夎澶氭柟娉曞錛氳皟璇曟椂璁劇疆鏂偣錛岀敤MessagBox浠涔堢殑銆傛垜鍦ㄥ紑濮嬩嬌鐢╲c鏃訛紝涔熺粡甯擱噰鐢ㄨ繖鏍風殑鏂規硶鏉ヨ皟璇曪紝浣嗛亣鍒頒竴浜涗笉鑳界敤鏂偣璋冭瘯鐨勭▼搴忔椂錛屾瘮濡傛煇浜涚粯鍥劇殑紼嬪簭閲岄渶瑕佸湪ondraw閲岃綆楋紝灝辨病鍔炴硶浜嗭紝鎶婂彉閲忓啓鍒版枃浠墮噷鍚э紵澶夯鐑︿簡錛岃繕鏄湅鐪嬩粩緇嗘鏌ユ簮浠g爜鍚э紒

聽聽聽聽聽聽聽 涓涓伓鐒剁殑鏈轟細,鎴戠粓浜庡彂鐜頒簡windows涓嬬被浼紁rintf鐨勪笢涓滀簡錛岄偅灝辨槸_RPT銆?/p>

聽聽聽聽聽聽聽 澶у鍦ㄨ嚜宸眝c聽鐨勬簮紼嬪簭閲屽姞涓奯RPT1(0,"i=%d\n",i);鍒癲ebug妯″紡涓嬭繍琛屼竴涓嬨傚ソ浜嗭紝鐪嬪埌緇撴灉浜嗗惂錛侀偅_RPT1鑳芥湁鍑犱釜鍙傛暟鍚楋紵涓嶈!鍝鏈変袱涓弬鏁版庝箞鍔烇紵閭e氨鐢╛RPT2鍚э紒鍏朵粬鐨勫氨鑷繁璇曞惂錛?/p>

聽聽聽聽聽聽聽 s6283@hotmail.com



]]>
VC璋冭瘯鍏ラ棬http://m.shnenglu.com/tx7do/articles/6491.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Sun, 30 Apr 2006 09:26:00 GMThttp://m.shnenglu.com/tx7do/articles/6491.htmlhttp://m.shnenglu.com/tx7do/comments/6491.htmlhttp://m.shnenglu.com/tx7do/articles/6491.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/6491.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/6491.html闃呰鍏ㄦ枃

]]>
楂樿川閲廋++/C緙栫▼鎸囧崡http://m.shnenglu.com/tx7do/articles/6136.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Mon, 24 Apr 2006 02:13:00 GMThttp://m.shnenglu.com/tx7do/articles/6136.htmlhttp://m.shnenglu.com/tx7do/comments/6136.htmlhttp://m.shnenglu.com/tx7do/articles/6136.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/6136.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/6136.html闃呰鍏ㄦ枃

]]>
C++ 緙栫▼鎸囧崡http://m.shnenglu.com/tx7do/articles/6133.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Mon, 24 Apr 2006 02:09:00 GMThttp://m.shnenglu.com/tx7do/articles/6133.htmlhttp://m.shnenglu.com/tx7do/comments/6133.htmlhttp://m.shnenglu.com/tx7do/articles/6133.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/6133.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/6133.html闃呰鍏ㄦ枃

]]>
Windows娑堟伅鐩綍http://m.shnenglu.com/tx7do/articles/5959.html鏉ㄧ布娉?/dc:creator>鏉ㄧ布娉?/author>Thu, 20 Apr 2006 09:32:00 GMThttp://m.shnenglu.com/tx7do/articles/5959.htmlhttp://m.shnenglu.com/tx7do/comments/5959.htmlhttp://m.shnenglu.com/tx7do/articles/5959.html#Feedback0http://m.shnenglu.com/tx7do/comments/commentRss/5959.htmlhttp://m.shnenglu.com/tx7do/services/trackbacks/5959.html1.聽WM_NULL=$0000:
2.聽WM_CREATE=$0001:聽聽聽聽搴旂敤紼嬪簭鍒涘緩涓涓獥鍙?br />3.聽WM_DESTROY=$0002:聽聽聽聽涓涓獥鍙h閿姣?br />4.聽WM_MOVE=$0003:聽縐誨姩涓涓獥鍙?br />5.聽WM_SIZE=$0005:鏀瑰彉涓涓獥鍙g殑澶у皬
6.聽WM_ACTIVATE=$0006:聽涓涓獥鍙h嬋媧繪垨澶卞幓嬋媧葷姸鎬侊紱
7.聽WM_SETFOCUS=$0007:聽鑾峰緱鐒︾偣鍚?br />8.聽WM_KILLFOCUS=$0008:聽澶卞幓鐒︾偣
9.聽WM_ENABLE=$000A:聽鏀瑰彉enable鐘舵?br />10.聽WM_SETREDRAW=$000B:聽璁劇疆紿楀彛鏄惁鑳介噸鐢?br />11.聽WM_SETTEXT=$000C:聽搴旂敤紼嬪簭鍙戦佹娑堟伅鏉ヨ緗竴涓獥鍙g殑鏂囨湰
12.聽WM_GETTEXT=$000D:聽搴旂敤紼嬪簭鍙戦佹娑堟伅鏉ュ13.聽鍒跺搴旂獥鍙g殑鏂囨湰鍒扮紦鍐插尯
14.聽WM_GETTEXTLENGTH=$000E:聽寰楀埌涓庝竴涓獥鍙f湁鍏崇殑鏂囨湰鐨勯暱搴︼紙涓?5.聽鍖呭惈絀哄瓧絎︼級
16.聽WM_PAINT=$000F:聽瑕佹眰涓涓獥鍙i噸鐢昏嚜宸?br />17.聽WM_CLOSE=$0010:聽褰撲竴涓獥鍙f垨搴旂敤紼嬪簭瑕佸叧闂椂鍙戦佷竴涓俊鍙?br />18.聽WM_QUERYENDSESSION=$0011:聽褰撶敤鎴烽夋嫨緇撴潫瀵硅瘽妗嗘垨紼嬪簭鑷繁璋冪敤ExitWindows鍑芥暟
19.聽WM_QUIT=$0012:聽鐢ㄦ潵緇撴潫紼嬪簭榪愯鎴栧綋紼嬪簭璋冪敤postquitmessage鍑芥暟
20.聽WM_QUERYOPEN=$0013:聽褰撶敤鎴風獥鍙f仮澶?1.聽浠ュ墠鐨勫ぇ灝忎綅緗椂錛?2.聽鎶婃娑堟伅鍙戦佺粰鏌愪釜鍥炬爣23.聽
24.聽WM_ERASEBKGND=$0014:聽褰撶獥鍙h儗鏅繀欏昏鎿﹂櫎鏃訛紙渚嬪湪紿楀彛鏀瑰彉澶у皬鏃訛級
25.聽WM_SYSCOLORCHANGE=$0015:聽褰撶郴緇熼鑹叉敼鍙樻椂錛?6.聽鍙戦佹娑堟伅緇欐墍鏈夐《綰х獥鍙?br />27.聽WM_ENDSESSION=$0016:褰撶郴緇熻繘紼嬪彂鍑篧M_QUERYENDSESSION娑堟伅鍚?姝ゆ秷鎭彂閫佺粰搴旂敤紼嬪簭,閫氱煡瀹冨璇濇槸鍚︾粨鏉?br />28.聽WM_SYSTEMERROR=$0017:聽
29.聽WM_SHOWWINDOW=$0018:聽褰撻殣钘忔垨鏄劇ず紿楀彛鏄彂閫佹娑堟伅緇欒繖涓獥鍙?br />30.聽WM_ACTIVATEAPP=$001C:聽鍙戞娑堟伅緇欏簲鐢ㄧ▼搴忓摢涓獥鍙f槸嬋媧葷殑錛?1.聽鍝釜鏄潪嬋媧葷殑錛?br />32.聽WM_FONTCHANGE=$001D:聽褰撶郴緇熺殑瀛椾綋璧勬簮搴撳彉鍖栨椂鍙戦佹娑堟伅緇欐墍鏈夐《綰х獥鍙?br />33.聽WM_TIMECHANGE=$001E:聽褰撶郴緇熺殑鏃墮棿鍙樺寲鏃跺彂閫佹娑堟伅緇欐墍鏈夐《綰х獥鍙?br />34.聽WM_CANCELMODE=$001F:聽鍙戦佹娑堟伅鏉ュ彇娑堟煇縐嶆鍦ㄨ繘琛岀殑鎽告侊紙鎿嶄綔錛?br />35.聽WM_SETCURSOR=$0020:聽聽濡傛灉榧犳爣36.聽寮曡搗鍏夋爣37.聽鍦ㄦ煇涓獥鍙d腑縐誨姩涓旈紶鏍?8.聽杈撳叆娌℃湁琚崟鑾鋒椂錛?9.聽灝卞彂娑堟伅緇欐煇涓獥鍙?br />40.聽WM_MOUSEACTIVATE=$0021:聽褰撳厜鏍?1.聽鍦ㄦ煇涓潪嬋媧葷殑紿楀彛涓?2.聽鐢ㄦ埛姝f寜鐫榧犳爣43.聽鐨勬煇涓敭鍙戦佹娑堟伅緇欏綋鍓嶇獥鍙?br />44.聽WM_CHILDACTIVATE=$0022:聽鍙戦佹娑堟伅緇橫DI瀛愮獥鍙e綋鐢ㄦ埛鐐瑰嚮姝ょ獥鍙g殑鏍?5.聽棰樻爮錛?6.聽鎴栧綋紿楀彛琚縺媧伙紝47.聽縐誨姩錛?8.聽鏀瑰彉澶у皬
49.聽WM_QUEUESYNC=$0023:聽聽姝ゆ秷鎭敱鍩轟簬璁$畻鏈虹殑璁粌紼嬪簭鍙戦侊紝50.聽閫氳繃WH_JOURNALPALYBACK鐨刪ook紼嬪簭鍒嗙鍑虹敤鎴瘋緭鍏ユ秷鎭?br />51.聽WM_GETMINMAXINFO=$0024:聽姝ゆ秷鎭彂閫佺粰紿楀彛褰撳畠灝嗚鏀瑰彉澶у皬鎴栦綅緗紱
52.聽WM_PAINTICON=$0026:聽聽鍙戦佺粰鏈灝忓寲紿楀彛褰撳畠鍥炬爣53.聽灝嗚琚噸鐢?br />54.聽WM_ICONERASEBKGND=$0027:姝ゆ秷鎭彂閫佺粰鏌愪釜鏈灝忓寲紿楀彛錛?5.聽浠呭綋瀹冨湪鐢誨浘鏍?6.聽鍓嶅畠鐨勮儗鏅繀欏昏閲嶇敾
57.聽WM_NEXTDLGCTL=$0028:聽鍙戦佹娑堟伅緇欎竴涓璇濇紼嬪簭鍘繪洿鏀圭劍鐐逛綅緗?br />58.聽WM_SPOOLERSTATUS=$002A:聽姣忓綋鎵撳嵃綆$悊鍒楅槦澧炲姞鎴栧噺灝戜竴鏉′綔涓氭椂鍙戝嚭姝ゆ秷鎭?br />59.聽WM_DRAWITEM=$002B:聽聽褰揵utton錛?0.聽combobox錛?1.聽listbox錛?2.聽menu鐨勫彲瑙嗗瑙傛敼鍙樻椂鍙戦佹娑堟伅緇欒繖浜涚┖浠剁殑鎵鏈夎?br />63.聽WM_MEASUREITEM=$002C:聽褰揵utton,combobox,listbox,listviewcontrol,ormenuitem琚垱寤烘椂鍙戦佹娑堟伅聽緇欐帶浠堵犅犅犅犅犅犵殑鎵鏈夎?br />64.聽WM_DELETEITEM=$002D:聽褰搕helistbox鎴朿ombobox琚攢姣佹垨褰撴煇浜涢」琚垹闄ら氳繃聽聽聽聽聽聽聽聽聽聽聽聽聽LB_DELETESTRING,LB_RESETCONTENT,CB_DELETESTRING,orCB_RESETCONTENT娑堟伅
65.聽WM_VKEYTOITEM=$002E:聽姝ゆ秷鎭湁涓涓狶BS_WANTKEYBOARDINPUT椋庢牸鐨勫彂鍑虹粰瀹冪殑鎵鏈夎呮潵鍝嶅簲WM_KEYDOWN娑堟伅
66.聽WM_CHARTOITEM=$002F:聽聽 姝ゆ秷鎭敱涓涓狶BS_WANTKEYBOARDINPUT椋庢牸鐨勫垪琛ㄦ鍙戦佺粰浠栫殑鎵鏈夎呮潵鍝嶅簲WM_CHAR娑堟伅
67.聽WM_SETFONT=$0030:聽聽褰撶粯鍒舵枃鏈椂紼嬪簭鍙戦佹娑堟伅寰楀埌鎺т歡瑕佺敤鐨勯鑹?br />68.聽WM_GETFONT=$0031:聽聽搴旂敤紼嬪簭鍙戦佹娑堟伅寰楀埌褰撳墠鎺т歡緇樺埗鏂囨湰鐨勫瓧浣?br />69.聽WM_SETHOTKEY=$0032:聽聽搴旂敤紼嬪簭鍙戦佹娑堟伅璁╀竴涓獥鍙d笌涓涓儹閿浉鍏寵繛
70.聽WM_GETHOTKEY=$0033:聽聽搴旂敤紼嬪簭鍙戦佹娑堟伅鏉ュ垽鏂儹閿笌鏌愪釜紿楀彛鏄惁鏈夊叧鑱?br />71.聽WM_QUERYDRAGICON=$0037:聽姝ゆ秷鎭彂閫佺粰鏈灝忓寲紿楀彛錛?2.聽褰撴紿楀彛灝嗚琚嫋鏀捐?3.聽瀹冪殑綾諱腑娌℃湁瀹氫箟鍥炬爣74.聽錛?5.聽搴旂敤紼嬪簭聽聽聽聽聽聽聽聽鑳借繑鍥炰竴涓浘鏍?6.聽鎴栧厜鏍?7.聽鐨勫彞鏌勶紝78.聽褰撶敤鎴鋒嫋鏀懼浘鏍?9.聽鏃剁郴緇熸樉紺鴻繖涓浘鏍?0.聽鎴栧厜鏍?1.聽
82.聽WM_COMPAREITEM=$0039:聽鍙戦佹娑堟伅鏉ュ垽瀹歝ombobox鎴杔istbox鏂板鍔犵殑欏圭殑鐩稿浣嶇疆
83.聽WM_GETOBJECT=$003D:聽聽
84.聽WM_COMPACTING=$0041:聽鏄劇ず鍐呭瓨宸茬粡寰堝皯浜?br />85.聽WM_WINDOWPOSCHANGING=$0046:聽鍙戦佹娑堟伅緇欓偅涓獥鍙g殑澶у皬鍜屼綅緗皢瑕佽鏀瑰彉鏃訛紝86.聽鏉ヨ皟鐢╯etwindowpos鍑芥暟鎴柭犅犅犅犅犅犅犅犲叾瀹冪獥鍙g鐞嗗嚱鏁?br />87.聽WM_WINDOWPOSCHANGED=$0047:聽鍙戦佹娑堟伅緇欓偅涓獥鍙g殑澶у皬鍜屼綅緗凡緇忚鏀瑰彉鏃訛紝88.聽鏉ヨ皟鐢╯etwindowpos鍑芥暟鎴柭犅犅犅犅犅犅犅犲叾瀹冪獥鍙g鐞嗗嚱鏁?br />89.聽WM_POWER=$0048:聽聽(閫傜敤浜?6浣嶇殑windows錛壜犲綋緋葷粺灝嗚榪涘叆鏆傚仠鐘舵佹椂鍙戦佹娑堟伅
90.聽WM_COPYDATA=$004A:聽聽褰撲竴涓簲鐢ㄧ▼搴忎紶閫掓暟鎹粰鍙︿竴涓簲鐢ㄧ▼搴忔椂鍙戦佹娑堟伅
91.聽WM_CANCELJOURNAL=$004B:聽褰撴煇涓敤鎴峰彇娑堢▼搴忔棩蹇楁縺媧葷姸鎬侊紝92.聽鎻愪氦姝ゆ秷鎭粰紼嬪簭
93.聽WM_NOTIFY=$004E:聽聽 褰撴煇涓帶浠剁殑鏌愪釜浜嬩歡宸茬粡鍙戠敓鎴栬繖涓帶浠墮渶瑕佸緱鍒頒竴浜涗俊鎭椂錛?4.聽鍙戦佹娑堟伅緇欏畠鐨勭埗紿楀彛
95.聽WM_INPUTLANGCHANGEREQUEST=$0050:聽褰撶敤鎴烽夋嫨鏌愮杈撳叆璇█錛?6.聽鎴栬緭鍏ヨ璦鐨勭儹閿敼鍙?br />97.聽WM_INPUTLANGCHANGE=$0051:聽褰撳鉤鍙扮幇鍦哄凡緇忚鏀瑰彉鍚庡彂閫佹娑堟伅緇欏彈褰卞搷鐨勬渶欏剁駭紿楀彛
98.聽WM_TCARD=$0052:聽聽褰撶▼搴忓凡緇忓垵濮嬪寲windows甯姪渚嬬▼鏃跺彂閫佹娑堟伅緇欏簲鐢ㄧ▼搴?br />99.聽WM_HELP=$0053:聽姝ゆ秷鎭樉紺虹敤鎴鋒寜涓嬩簡F1錛?00.聽濡傛灉鏌愪釜鑿滃崟鏄縺媧葷殑錛?01.聽灝卞彂閫佹娑堟伅涓紿楀彛鍏寵仈鐨勮彍鍗?鍚﹀垯灝甭犅犅?鍙戦佺粰鏈夌劍鐐圭殑紿楀彛錛?02.聽濡傛灉褰撳墠閮芥病鏈夌劍鐐癸紝103.聽灝辨妸姝ゆ秷鎭彂閫佺粰褰撳墠嬋媧葷殑紿楀彛
104.聽WM_USERCHANGED=$0054:聽褰撶敤鎴峰凡緇忕櫥鍏ユ垨閫鍑哄悗鍙戦佹娑堟伅緇欐墍鏈夌殑紿楀彛錛?05.聽褰撶敤鎴風櫥鍏ユ垨閫鍑烘椂緋葷粺鏇存柊鐢犅犅犳埛鐨勫叿浣撹緗俊鎭紝106.聽鍦ㄧ敤鎴鋒洿鏂拌緗椂緋葷粺椹笂鍙戦佹娑堟伅錛?br />107.聽WM_NOTIFYFORMAT=$0055:聽鍏敤鎺т歡錛?08.聽鑷畾涔夋帶浠跺拰浠栦滑鐨勭埗紿楀彛閫氳繃姝ゆ秷鎭潵鍒ゆ柇鎺т歡鏄嬌鐢ˋNSI榪樻槸聽聽聽聽UNICODE緇撴瀯鍦╓M_NOTIFY娑堟伅錛?09.聽浣跨敤姝ゆ帶浠惰兘浣挎煇涓帶浠朵笌瀹冪殑鐖舵帶浠朵箣闂磋繘琛岀浉浜掗氫俊
110.聽WM_CONTEXTMENU=$007B:聽褰撶敤鎴鋒煇涓獥鍙d腑鐐瑰嚮浜嗕竴涓嬪彸閿氨鍙戦佹娑堟伅緇欒繖涓獥鍙?br />111.聽WM_STYLECHANGING=$007C:聽褰撹皟鐢⊿ETWINDOWLONG鍑芥暟灝嗚鏀瑰彉涓涓垨澶氫釜紿楀彛鐨勯鏍兼椂鍙戦佹娑堟伅緇欓偅涓獥鍙?br />112.聽WM_STYLECHANGED=$007D:聽褰撹皟鐢⊿ETWINDOWLONG鍑芥暟涓涓垨澶氫釜紿楀彛鐨勯鏍煎悗鍙戦佹娑堟伅緇欓偅涓獥鍙?br />113.聽WM_DISPLAYCHANGE=$007E:聽褰撴樉紺哄櫒鐨勫垎杈ㄧ巼鏀瑰彉鍚庡彂閫佹娑堟伅緇欐墍鏈夌殑紿楀彛
114.聽WM_GETICON=$007F:聽聽姝ゆ秷鎭彂閫佺粰鏌愪釜紿楀彛鏉ヨ繑鍥炰笌鏌愪釜紿楀彛鏈夊叧榪炵殑澶у浘鏍?15.聽鎴栧皬鍥炬爣116.聽鐨勫彞鏌勶紱
117.聽WM_SETICON=$0080:聽聽紼嬪簭鍙戦佹娑堟伅璁╀竴涓柊鐨勫ぇ鍥炬爣118.聽鎴栧皬鍥炬爣119.聽涓庢煇涓獥鍙e叧鑱旓紱
120.聽WM_NCCREATE=$0081:聽聽褰撴煇涓獥鍙g涓嬈¤鍒涘緩鏃訛紝121.聽姝ゆ秷鎭湪WM_CREATE娑堟伅鍙戦佸墠鍙戦侊紱
122.聽WM_NCDESTROY=$0082:聽聽姝ゆ秷鎭氱煡鏌愪釜紿楀彛錛?23.聽闈炲鎴峰尯姝e湪閿姣?br />124.聽WM_NCCALCSIZE=$0083:聽褰撴煇涓獥鍙g殑瀹㈡埛鍖哄煙蹇呴』琚牳綆楁椂鍙戦佹娑堟伅
125.聽WM_NCHITTEST=$0084:聽聽 縐誨姩榧犳爣126.聽錛?27.聽鎸変綇鎴栭噴鏀鵑紶鏍?28.聽鏃跺彂鐢?br />129.聽WM_NCPAINT=$0085:聽聽紼嬪簭鍙戦佹娑堟伅緇欐煇涓獥鍙e綋瀹冿紙紿楀彛錛夌殑妗嗘灦蹇呴』琚粯鍒舵椂錛?br />130.聽WM_NCACTIVATE=$0086:聽姝ゆ秷鎭彂閫佺粰鏌愪釜紿楀彛浠呭綋瀹冪殑闈炲鎴峰尯闇瑕佽鏀瑰彉鏉ユ樉紺烘槸嬋媧昏繕鏄潪嬋媧葷姸鎬侊紱
131.聽WM_GETDLGCODE=$0087:聽聽 鍙戦佹娑堟伅緇欐煇涓笌瀵硅瘽妗嗙▼搴忓叧鑱旂殑鎺т歡錛?32.聽widdows鎺у埗鏂逛綅閿拰TAB閿嬌杈撳叆榪涘叆聽聽聽聽姝ゆ帶浠墮氳繃鍝嶅簲WM_GETDLGCODE娑堟伅錛?33.聽搴旂敤紼嬪簭鍙互鎶婁粬褰撴垚涓涓壒孌婄殑杈撳叆鎺т歡騫惰兘澶勭悊瀹?br />134.聽WM_NCMOUSEMOVE=$00A0:聽褰撳厜鏍?35.聽鍦ㄤ竴涓獥鍙g殑闈炲鎴峰尯鍐呯Щ鍔ㄦ椂鍙戦佹娑堟伅緇欒繖涓獥鍙ile: 闈炲鎴峰尯涓猴細聽聽聽紿椾綋鐨勬爣136.聽棰樻爮鍙婄獥鐨勮竟妗嗕綋
137.聽WM_NCLBUTTONDOWN=$00A1:聽褰撳厜鏍?38.聽鍦ㄤ竴涓獥鍙g殑闈炲鎴峰尯鍚?39.聽鏃舵寜涓嬮紶鏍?40.聽宸﹂敭鏃舵彁浜ゆ娑堟伅
141.聽WM_NCLBUTTONUP=$00A2:聽褰撶敤鎴烽噴鏀鵑紶鏍?42.聽宸﹂敭鍚?43.聽鏃跺厜鏍?44.聽鏌愪釜紿楀彛鍦ㄩ潪瀹㈡埛鍖哄崄鍙戦佹娑堟伅錛?br />145.聽WM_NCLBUTTONDBLCLK=$00A3:褰撶敤鎴峰弻鍑婚紶鏍?46.聽宸﹂敭鍚?47.聽鏃跺厜鏍?48.聽鏌愪釜紿楀彛鍦ㄩ潪瀹㈡埛鍖哄崄鍙戦佹娑堟伅
149.聽WM_NCRBUTTONDOWN=$00A4:聽褰撶敤鎴鋒寜涓嬮紶鏍?50.聽鍙抽敭鍚?51.聽鏃跺厜鏍?52.聽鍙堝湪紿楀彛鐨勯潪瀹㈡埛鍖烘椂鍙戦佹娑堟伅
153.聽WM_NCRBUTTONUP=$00A5:聽褰撶敤鎴烽噴鏀鵑紶鏍?54.聽鍙抽敭鍚?55.聽鏃跺厜鏍?56.聽鍙堝湪紿楀彛鐨勯潪瀹㈡埛鍖烘椂鍙戦佹娑堟伅
157.聽WM_NCRBUTTONDBLCLK=$00A6:褰撶敤鎴峰弻鍑婚紶鏍?58.聽鍙抽敭鍚?59.聽鏃跺厜鏍?60.聽鏌愪釜紿楀彛鍦ㄩ潪瀹㈡埛鍖哄崄鍙戦佹娑堟伅
161.聽WM_NCMBUTTONDOWN=$00A7:聽褰撶敤鎴鋒寜涓嬮紶鏍?62.聽涓敭鍚?63.聽鏃跺厜鏍?64.聽鍙堝湪紿楀彛鐨勯潪瀹㈡埛鍖烘椂鍙戦佹娑堟伅
165.聽WM_NCMBUTTONUP=$00A8:聽褰撶敤鎴烽噴鏀鵑紶鏍?66.聽涓敭鍚?67.聽鏃跺厜鏍?68.聽鍙堝湪紿楀彛鐨勯潪瀹㈡埛鍖烘椂鍙戦佹娑堟伅
169.聽WM_NCMBUTTONDBLCLK=$00A9:褰撶敤鎴峰弻鍑婚紶鏍?70.聽涓敭鍚?71.聽鏃跺厜鏍?72.聽鍙堝湪紿楀彛鐨勯潪瀹㈡埛鍖烘椂鍙戦佹娑堟伅
173.聽WM_KEYFIRST=$0100:聽
174.聽WM_KEYDOWN=$0100:聽file: 鎸変笅涓涓敭
175.聽WM_KEYUP=$0101:聽聽file: 閲婃斁涓涓敭
176.聽WM_CHAR=$0102:聽聽file: 鎸変笅鏌愰敭錛?77.聽騫跺凡鍙戝嚭WM_KEYDOWN錛?78.聽WM_KEYUP娑堟伅
179.聽WM_DEADCHAR=$0103:聽褰撶敤translatemessage鍑芥暟緲昏瘧WM_KEYUP娑堟伅鏃跺彂閫佹娑堟伅緇欐嫢鏈夌劍鐐圭殑紿楀彛
180.聽WM_SYSKEYDOWN=$0104:褰撶敤鎴鋒寜浣廇LT閿悓181.聽鏃舵寜涓嬪叾瀹冮敭鏃舵彁浜ゆ娑堟伅緇欐嫢鏈夌劍鐐圭殑紿楀彛錛?br />182.聽WM_SYSKEYUP=$0105:聽褰撶敤鎴烽噴鏀句竴涓敭鍚?83.聽鏃禔LT閿繕鎸夌潃鏃舵彁浜ゆ娑堟伅緇欐嫢鏈夌劍鐐圭殑紿楀彛
184.聽WM_SYSCHAR=$0106:聽褰揥M_SYSKEYDOWN娑堟伅琚玊RANSLATEMESSAGE鍑芥暟緲昏瘧鍚庢彁浜ゆ娑堟伅緇欐嫢鏈夌劍鐐圭殑紿楀彛
185.聽WM_SYSDEADCHAR=$0107:聽褰揥M_SYSKEYDOWN娑堟伅琚玊RANSLATEMESSAGE鍑芥暟緲昏瘧鍚庡彂閫佹娑堟伅緇欐嫢鏈夌劍鐐圭殑紿楀彛
186.聽WM_INITDIALOG=$0110:聽鍦ㄤ竴涓璇濇紼嬪簭琚樉紺哄墠鍙戦佹娑堟伅緇欏畠,甯哥敤姝ゆ秷鎭垵濮嬪寲鎺т歡鍜屾墽琛屽叾瀹冧換鍔?br />187.聽WM_COMMAND=$0111:聽聽褰撶敤鎴烽夋嫨涓鏉¤彍鍗曞懡浠ら」鎴栧綋鏌愪釜鎺т歡鍙戦佷竴鏉℃秷鎭粰瀹冪殑鐖剁獥鍙o紝188.聽涓涓揩鎹烽敭琚炕璇?br />189.聽WM_SYSCOMMAND=$0112:聽褰撶敤鎴烽夋嫨紿楀彛鑿滃崟鐨勪竴鏉″懡浠ゆ垨褰撶敤鎴烽夋嫨鏈澶у寲鎴栨渶灝忓寲鏃墮偅涓獥鍙d細鏀跺埌姝ゆ秷鎭?br />190.聽WM_TIMER=$0113:聽聽聽聽聽 鍙戠敓浜嗗畾鏃跺櫒浜嬩歡
191.聽WM_HSCROLL=$0114:聽聽褰撲竴涓獥鍙f爣192.聽鍑嗘按騫蟲粴鍔ㄦ潯浜х敓涓涓粴鍔ㄤ簨浠舵椂鍙戦佹娑堟伅緇欓偅涓獥鍙o紝193.聽涔熷彂閫佺粰鎷ユ湁瀹冪殑鎺т歡
194.聽WM_VSCROLL=$0115:聽聽褰撲竴涓獥鍙f爣195.聽鍑嗗瀭鐩存粴鍔ㄦ潯浜х敓涓涓粴鍔ㄤ簨浠舵椂鍙戦佹娑堟伅緇欓偅涓獥鍙d篃錛?96.聽鍙戦佺粰鎷ユ湁瀹冪殑鎺т歡
197.聽WM_INITMENU=$0116:聽褰撲竴涓彍鍗曞皢瑕佽嬋媧繪椂鍙戦佹娑堟伅錛?98.聽瀹冨彂鐢熷湪鐢ㄦ埛鑿滃崟鏉′腑鐨勬煇欏規垨鎸変笅鏌愪釜鑿滃崟閿紝199.聽聽聽聽聽聽聽聽聽瀹冨厑璁哥▼搴忓湪鏄劇ず鍓嶆洿鏀硅彍鍗?br />200.聽WM_INITMENUPOPUP=$0117:聽褰撲竴涓笅鎷夎彍鍗曟垨瀛愯彍鍗曞皢瑕佽嬋媧繪椂鍙戦佹娑堟伅錛?01.聽瀹冨厑璁哥▼搴忓湪瀹冩樉紺哄墠鏇存敼鑿滃崟錛?02.聽聽聽聽聽聽聽聽鑰?03.聽涓?04.聽瑕佹敼鍙樺叏閮?br />205.聽WM_MENUSELECT=$011F:聽褰撶敤鎴烽夋嫨涓鏉¤彍鍗曢」鏃跺彂閫佹娑堟伅緇欒彍鍗曠殑鎵鏈夎咃紙涓鑸槸紿楀彛錛?br />206.聽WM_MENUCHAR=$0120:聽聽褰撹彍鍗曞凡琚縺媧葷敤鎴鋒寜涓嬩簡鏌愪釜閿紙涓?07.聽鍚?08.聽浜庡姞閫熼敭錛夛紝209.聽鍙戦佹娑堟伅緇欒彍鍗曠殑鎵鏈夎咃紱
210.聽WM_ENTERIDLE=$0121:聽聽褰撲竴涓ā鎬佸璇濇鎴栬彍鍗曡繘鍏ョ┖杞界姸鎬佹椂鍙戦佹娑堟伅緇欏畠鐨勬墍鏈夎咃紝211.聽涓涓ā鎬佸璇濇聽聽聽聽聽聽聽鎴栬彍鍗曡繘鍏ョ┖杞界姸鎬佸氨鏄湪澶勭悊涓鏉℃垨鍑犳潯鍏堝墠鐨勬秷鎭悗娌℃湁娑堟伅瀹冪殑鍒楅槦涓瓑寰?br />212.聽WM_MENURBUTTONUP=$0122:聽WM_MENUDRAG=$0123:聽WM_MENUGETOBJECT=$0124: WM_UNINITMENUPOPUP=$0125:
213.聽WM_MENUCOMMAND=$0126:聽WM_CHANGEUISTATE=$0127:WM_UPDATEUISTATE=$0128:WM_QUERYUISTATE=$0129:
214.聽WM_CTLCOLORMSGBOX=$0132: 鍦╳indows緇樺埗娑堟伅妗嗗墠鍙戦佹娑堟伅緇欐秷鎭鐨勬墍鏈夎呯獥鍙o紝215.聽閫氳繃鍝嶅簲榪欐潯聽聽聽聽聽聽聽聽聽聽聽 娑堟伅錛?16.聽鎵鏈夎呯獥鍙e彲浠ラ氳繃浣跨敤緇欏畾鐨勭浉鍏蟲樉紺鴻澶?17.聽鐨勫彞鏌勬潵璁劇疆娑堟伅妗嗙殑鏂囨湰鍜岃儗鏅鑹?br />218.聽WM_CTLCOLOREDIT=$0133:聽褰撲竴涓紪杈戝瀷鎺т歡灝嗚琚粯鍒舵椂鍙戦佹娑堟伅緇欏畠鐨勭埗紿楀彛:閫氳繃鍝嶅簲榪欐潯娑堟伅,鎵鏈夎呯獥鍙e彲浠ラ氳繃浣跨敤緇欏畾鐨勭浉鍏蟲樉紺鴻澶?19.聽鐨勫彞鏌勬潵璁劇疆緙栬緫妗嗙殑鏂囨湰鍜岃儗鏅鑹?br />220.聽WM_CTLCOLORLISTBOX=$0134:褰撲竴涓垪琛ㄦ鎺т歡灝嗚琚粯鍒跺墠鍙戦佹娑堟伅緇欏畠鐨勭埗紿楀彛錛涢氳繃鍝嶅簲榪欐潯鎭紝221.聽鎵鏈夎呯獥鍙e彲浠ラ氳繃浣跨敤緇欏畾鐨勭浉鍏蟲樉紺鴻澶?22.聽鐨勫彞鏌勬潵璁劇疆鍒楄〃妗嗙殑鏂囨湰鍜岃儗鏅鑹?br />223.聽WM_CTLCOLORBTN=$0135:聽褰撲竴涓寜閽帶浠跺皢瑕佽緇樺埗鏃跺彂閫佹娑堟伅緇欏畠鐨勭埗紿楀彛錛涢氳繃鍝嶅簲榪欐潯娑堟伅錛?24.聽鎵鏈夎吢犅犅犅犅犅犅犵獥鍙e彲浠ラ氳繃浣跨敤緇欏畾鐨勭浉鍏蟲樉紺鴻澶?25.聽鐨勫彞鏌勬潵璁劇疆鎸夌航鐨勬枃鏈拰鑳屾櫙棰滆壊
226.聽WM_CTLCOLORDLG=$0136:聽褰撲竴涓璇濇鎺т歡灝嗚琚粯鍒跺墠鍙戦佹娑堟伅緇欏畠鐨勭埗紿楀彛錛涢氳繃鍝嶅簲榪欐潯娑堟伅錛?27.聽鎵鏈壜犅犅犅犅犅犅犺呯獥鍙e彲浠ラ氳繃浣跨敤緇欏畾鐨勭浉鍏蟲樉紺鴻澶?28.聽鐨勫彞鏌勬潵璁劇疆瀵硅瘽妗嗙殑鏂囨湰鑳屾櫙棰滆壊
229.聽WM_CTLCOLORSCROLLBAR=$0137:聽褰撲竴涓粴鍔ㄦ潯鎺т歡灝嗚琚粯鍒舵椂鍙戦佹娑堟伅緇欏畠鐨勭埗紿楀彛錛涢氳繃鍝嶅簲榪欐潯娑堟伅錛?30.聽聽聽聽聽聽聽聽聽聽鎵鏈夎呯獥鍙e彲浠ラ氳繃浣跨敤緇欏畾鐨勭浉鍏蟲樉紺鴻澶?31.聽鐨勫彞鏌勬潵璁劇疆婊氬姩鏉$殑鑳屾櫙棰滆壊
232.聽WM_CTLCOLORSTATIC=$0138:聽褰撲竴涓潤鎬佹帶浠跺皢瑕佽緇樺埗鏃跺彂閫佹娑堟伅緇欏畠鐨勭埗紿楀彛錛涢氳繃鍝嶅簲榪欐潯娑堟伅錛?33.聽鎵聽聽聽聽聽聽聽聽鏈夎呯獥鍙e彲浠ラ氳繃浣跨敤緇欏畾鐨勭浉鍏蟲樉紺鴻澶?34.聽鐨勫彞鏌勬潵璁劇疆闈欐佹帶浠剁殑鏂囨湰鍜岃儗鏅鑹?br />235.聽WM_MOUSEMOVE=$0200:聽聽聽聽 縐誨姩榧犳爣236.聽
237.聽WM_LBUTTONDOWN=$0201聽聽聽 鎸変笅榧犳爣238.聽宸﹂敭
239.聽WM_LBUTTONUP=$0202:聽聽聽 閲婃斁榧犳爣240.聽宸﹂敭
241.聽WM_LBUTTONDBLCLK=$0203:聽聽 聽 鍙屽嚮榧犳爣242.聽宸﹂敭
243.聽WM_RBUTTONDOWN=$0204:聽聽 鎸変笅榧犳爣244.聽鍙抽敭
245.聽WM_RBUTTONUP=$0205:聽聽聽 閲婃斁榧犳爣246.聽鍙抽敭
247.聽WM_RBUTTONDBLCLK=$0206:聽聽 鍙屽嚮榧犳爣248.聽鍙抽敭
249.聽WM_MBUTTONDOWN=$0207:聽聽 鎸変笅榧犳爣250.聽涓敭
251.聽WM_MBUTTONUP=$0208:聽聽聽 閲婃斁榧犳爣252.聽涓敭
253.聽WM_MBUTTONDBLCLK=$0209:聽聽 鍙屽嚮榧犳爣254.聽涓敭
255.聽WM_MOUSEWHEEL=$020A:聽聽褰撻紶鏍?56.聽杞瓙杞姩鏃跺彂閫佹娑堟伅涓綋鍓嶆湁鐒︾偣鐨勬帶浠?br />257.聽WM_PARENTNOTIFY=$0210:聽褰揗DI瀛愮獥鍙h鍒涘緩鎴栬閿姣侊紝258.聽鎴栫敤鎴鋒寜浜嗕竴涓嬮紶鏍?59.聽閿?60.聽鍏夋爣261.聽鍦ㄥ瓙紿楀彛涓婃椂鍙戦佹娑埪犅犅犅犅犅犅犳伅緇欏畠鐨勭埗紿楀彛
262.聽WM_ENTERMENULOOP=$0211:聽鍙戦佹娑堟伅閫氱煡搴旂敤紼嬪簭鐨勪富紿楀彛that宸茬粡榪涘叆浜嗚彍鍗曞驚鐜ā寮?br />263.聽WM_EXITMENULOOP=$0212:聽鍙戦佹娑堟伅閫氱煡搴旂敤紼嬪簭鐨勪富紿楀彛that宸查鍑轟簡鑿滃崟寰幆妯″紡
264.聽WM_NEXTMENU=$0213:
265.聽WM_SIZING=532:聽聽聽褰撶敤鎴鋒鍦ㄨ皟鏁寸獥鍙eぇ灝忔椂鍙戦佹娑堟伅緇欑獥鍙o紱閫氳繃姝ゆ秷鎭簲鐢ㄧ▼搴忓彲浠ョ洃瑙嗙獥鍙eぇ聽聽聽聽聽聽聽灝忓拰浣嶇疆涔熷彲浠ヤ慨鏀逛粬浠?br />266.聽WM_CAPTURECHANGED=533:聽鍙戦佹娑堟伅緇欑獥鍙e綋瀹冨け鍘繪崟鑾風殑榧犳爣267.聽鏃訛紱
268.聽WM_MOVING=534:聽聽聽褰撶敤鎴峰湪縐誨姩紿楀彛鏃跺彂閫佹娑堟伅錛?69.聽閫氳繃姝ゆ秷鎭簲鐢ㄧ▼搴忓彲浠ョ洃瑙嗙獥鍙eぇ灝忓拰浣嶇疆涔熷彲聽聽聽聽聽聽聽浠ヤ慨鏀逛粬浠紱
270.聽WM_POWERBROADCAST=536:聽姝ゆ秷鎭彂閫佺粰搴旂敤紼嬪簭鏉ラ氱煡瀹冩湁鍏崇數婧愮鐞嗕簨浠訛紱
271.聽WM_DEVICECHANGE=537:聽聽褰撹澶?72.聽鐨勭‖浠墮厤緗敼鍙樻椂鍙戦佹娑堟伅緇欏簲鐢ㄧ▼搴忔垨璁懼273.聽椹卞姩紼嬪簭
274.聽WM_IME_STARTCOMPOSITION=$010D:聽
275.聽WM_IME_ENDCOMPOSITION=$010E:
276.聽WM_IME_COMPOSITION=$010F:
277.聽WM_IME_KEYLAST=$010F:
278.聽WM_IME_SETCONTEXT=$0281:
279.聽WM_IME_NOTIFY=$0282:
280.聽WM_IME_CONTROL=$0283:
281.聽WM_IME_COMPOSITIONFULL=$0284:
282.聽WM_IME_SELECT=$0285:
283.聽WM_IME_CHAR=$0286:
284.聽WM_IME_REQUEST=$0288:
285.聽WM_IME_KEYDOWN=$0290:
286.聽WM_IME_KEYUP=$0291:
287.聽WM_MDICREATE=$0220:聽聽搴旂敤紼嬪簭鍙戦佹娑堟伅緇欏鏂囨。鐨勫鎴風獥鍙f潵鍒涘緩涓涓狹DI瀛愮獥鍙?br />288.聽WM_MDIDESTROY=$0221:聽搴旂敤紼嬪簭鍙戦佹娑堟伅緇欏鏂囨。鐨勫鎴風獥鍙f潵鍏抽棴涓涓狹DI瀛愮獥鍙?br />289.聽WM_MDIACTIVATE=$0222:聽搴旂敤紼嬪簭鍙戦佹娑堟伅緇欏鏂囨。鐨勫鎴風獥鍙i氱煡瀹㈡埛紿楀彛嬋媧誨彟涓涓狹DI瀛愮獥鍙o紝290.聽褰撳聽聽聽聽聽聽聽鎴風獥鍙f敹鍒版娑堟伅鍚庯紝291.聽瀹冨彂鍑篧M_MDIACTIVE娑堟伅緇橫DI瀛愮獥鍙o紙鏈縺媧伙級嬋媧誨畠錛?br />292.聽WM_MDIRESTORE=$0223:聽紼嬪簭鍙戦佹娑堟伅緇橫DI瀹㈡埛紿楀彛璁╁瓙紿楀彛浠庢渶澶ф渶灝忓寲鎭㈠293.聽鍒板師鏉ュぇ灝?br />294.聽WM_MDINEXT=$0224:聽聽紼嬪簭鍙戦佹娑堟伅緇橫DI瀹㈡埛紿楀彛嬋媧諱笅涓涓垨鍓嶄竴涓獥鍙?br />295.聽WM_MDIMAXIMIZE=$0225:聽紼嬪簭鍙戦佹娑堟伅緇橫DI瀹㈡埛紿楀彛鏉ユ渶澶у寲涓涓狹DI瀛愮獥鍙o紱
296.聽WM_MDITILE=$0226:聽聽紼嬪簭鍙戦佹娑堟伅緇橫DI瀹㈡埛紿楀彛浠ュ鉤閾烘柟寮忛噸鏂版帓鍒楁墍鏈塎DI瀛愮獥鍙?br />297.聽WM_MDICASCADE=$0227:聽紼嬪簭鍙戦佹娑堟伅緇橫DI瀹㈡埛紿楀彛浠ュ眰鍙犳柟寮忛噸鏂版帓鍒楁墍鏈塎DI瀛愮獥鍙?br />298.聽WM_MDIICONARRANGE=$0228:聽紼嬪簭鍙戦佹娑堟伅緇橫DI瀹㈡埛紿楀彛閲嶆柊鎺掑垪鎵鏈夋渶灝忓寲鐨凪DI瀛愮獥鍙?br />299.聽WM_MDIGETACTIVE=$0229:聽聽聽 紼嬪簭鍙戦佹娑堟伅緇橫DI瀹㈡埛紿楀彛鏉ユ壘鍒版縺媧葷殑瀛愮獥鍙g殑鍙ユ焺
300.聽WM_MDISETMENU=$0230:聽聽紼嬪簭鍙戦佹娑堟伅緇橫DI瀹㈡埛紿楀彛鐢∕DI鑿滃崟浠f浛瀛愮獥鍙g殑鑿滃崟
301.聽WM_ENTERSIZEMOVE=$0231:聽
302.聽WM_EXITSIZEMOVE=$0232:
303.聽WM_DROPFILES=$0233:
304.聽WM_MDIREFRESHMENU=$0234:
305.聽WM_MOUSEHOVER=$02A1:
306.聽WM_MOUSELEAVE=$02A3:
307.聽WM_CUT=$0300:聽聽聽聽紼嬪簭鍙戦佹娑堟伅緇欎竴涓紪杈戞鎴朿ombobox鏉ュ垹闄ゅ綋鍓嶉夋嫨鐨勬枃鏈?br />308.聽WM_COPY=$0301:聽聽聽紼嬪簭鍙戦佹娑堟伅緇欎竴涓紪杈戞鎴朿ombobox鏉ュ309.聽鍒跺綋鍓嶉夋嫨鐨勬枃鏈埌鍓創鏉?br />310.聽WM_PASTE=$0302:聽聽聽紼嬪簭鍙戦佹娑堟伅緇檈ditcontrol鎴朿ombobox浠庡壀璐存澘涓緱鍒版暟鎹?br />311.聽WM_CLEAR=$0303:聽聽聽紼嬪簭鍙戦佹娑堟伅緇檈ditcontrol鎴朿ombobox娓呴櫎褰撳墠閫夋嫨鐨勫唴瀹癸紱
312.聽WM_UNDO=$0304:聽聽聽紼嬪簭鍙戦佹娑堟伅緇檈ditcontrol鎴朿ombobox鎾ゆ秷鏈鍚庝竴嬈℃搷浣?br />313.聽WM_RENDERFORMAT=$0305錛?br />314.聽WM_RENDERALLFORMATS=$0306:
315.聽WM_DESTROYCLIPBOARD=$0307:聽褰撹皟鐢‥NPTYCLIPBOARD鍑芥暟鏃跺彂閫佹娑堟伅緇欏壀璐存澘鐨勬墍鏈夎?br />316.聽WM_DRAWCLIPBOARD=$0308:聽聽褰撳壀璐存澘鐨勫唴瀹瑰彉鍖栨椂鍙戦佹娑堟伅緇欏壀璐存澘瑙傚療閾劇殑絎竴涓獥鍙o紱瀹冨厑璁哥敤鍓創聽聽聽聽聽聽聽聽鏉胯瀵熺獥鍙f潵鏄劇ず鍓創鏉跨殑鏂板唴瀹癸紱
317.聽WM_PAINTCLIPBOARD=$0309:聽聽褰撳壀璐存澘鍖呭惈CF_OWNERDIPLAY鏍煎紡鐨勬暟鎹茍涓斿壀璐存澘瑙傚療紿楀彛鐨勫鎴峰尯闇瑕侀噸聽聽聽聽聽聽聽聽鐢伙紱
318.聽WM_VSCROLLCLIPBOARD=$030A:
319.聽WM_SIZECLIPBOARD=$030B:聽聽褰撳壀璐存澘鍖呭惈CF_OWNERDIPLAY鏍煎紡鐨勬暟鎹茍涓斿壀璐存澘瑙傚療紿楀彛鐨勫鎴峰尯鍩熺殑澶у皬聽聽聽聽聽聽聽聽宸茬粡鏀瑰彉鏄娑堟伅閫氳繃鍓創鏉胯瀵熺獥鍙e彂閫佺粰鍓創鏉跨殑鎵鏈夎咃紱
320.聽WM_ASKCBFORMATNAME=$030C:聽聽閫氳繃鍓創鏉胯瀵熺獥鍙e彂閫佹娑堟伅緇欏壀璐存澘鐨勬墍鏈夎呮潵璇鋒眰涓涓狢F_OWNERDISPLAY聽聽聽聽聽聽聽聽鏍煎紡鐨勫壀璐存澘鐨勫悕321.聽瀛?br />322.聽WM_CHANGECBCHAIN=$030D:聽聽褰撲竴涓獥鍙d粠鍓創鏉胯瀵熼摼涓Щ鍘繪椂鍙戦佹娑堟伅緇欏壀璐存澘瑙傚療閾劇殑絎竴涓獥鍙o紱
323.聽WM_HSCROLLCLIPBOARD=$030E:聽姝ゆ秷鎭氳繃涓涓壀璐存澘瑙傚療紿楀彛鍙戦佺粰鍓創鏉跨殑鎵鏈夎咃紱瀹冨彂鐢熷湪褰撳壀璐存澘鍖呭惈聽聽聽聽聽聽聽聽CFOWNERDISPALY鏍煎紡鐨勬暟鎹茍涓旀湁涓簨浠跺湪鍓創鏉胯瀵熺獥鐨勬按騫蟲粴鍔ㄦ潯涓婏紱鎵鏈壜犅犅犅犅犅犅犅犺呭簲婊氬姩鍓創鏉垮浘璞″茍鏇存柊婊氬姩鏉$殑鍊鹼紱
324.聽WM_QUERYNEWPALETTE=$030F:聽聽姝ゆ秷鎭彂閫佺粰灝嗚鏀跺埌鐒︾偣鐨勭獥鍙o紝325.聽姝ゆ秷鎭兘浣跨獥鍙e湪鏀跺埌鐒︾偣鏃跺悓326.聽鏃舵湁鏈轟細瀹灺犅犅犅犅犅犅犅犵幇浠栫殑閫昏緫璋冭壊鏉?br />327.聽WM_PALETTEISCHANGING=$0310:聽聽聽聽 褰撲竴涓簲鐢ㄧ▼搴忔瑕佸疄鐜板畠鐨勯昏緫璋冭壊鏉挎椂鍙戞娑堟伅閫氱煡鎵鏈夌殑搴旂敤紼嬪簭
328.聽WM_PALETTECHANGED=$0311:聽聽姝ゆ秷鎭湪涓涓嫢鏈夌劍鐐圭殑紿楀彛瀹炵幇瀹冪殑閫昏緫璋冭壊鏉垮悗鍙戦佹娑堟伅緇欐墍鏈夐《綰у茍閲嵚犅犅犅犅犅犅犅犲彔鐨勭獥鍙o紝329.聽浠ユ鏉ユ敼鍙樼郴緇熻皟鑹叉澘
330.聽WM_HOTKEY=$0312:聽聽聽聽褰撶敤鎴鋒寜涓嬬敱REGISTERHOTKEY鍑芥暟娉ㄥ唽鐨勭儹閿椂鎻愪氦姝ゆ秷鎭?br />331.聽WM_PRINT=791:聽聽聽聽聽搴旂敤紼嬪簭鍙戦佹娑堟伅浠呭綋WINDOWS鎴栧叾瀹冨簲鐢ㄧ▼搴忓彂鍑轟竴涓姹傝姹傜粯鍒朵竴涓簲鐢ㄧ▼搴忕殑涓閮ㄥ垎錛?br />332.聽WM_PRINTCLIENT=792:聽
333.聽WM_HANDHELDFIRST=856:
334.聽WM_HANDHELDLAST=863:
335.聽WM_PENWINFIRST=$0380:
336.聽WM_PENWINLAST=$038F:
337.聽WM_COALESCE_FIRST=$0390:
338.聽WM_COALESCE_LAST=$039F:
339.聽WM_DDE_FIRST=$03E0:
340.聽WM_DDE_INITIATE=WM_DDE_FIRST+0:聽聽涓涓狣DE瀹㈡埛紼嬪簭鎻愪氦姝ゆ秷鎭紑濮嬩竴涓笌鏈?41.聽鍔″櫒紼嬪簭鐨勪細璇濇潵鍝嶅簲閭d釜鎸?42.聽瀹氱殑紼嬪簭鍜屼富棰樺悕343.聽錛?br />344.聽WM_DDE_TERMINATE=WM_DDE_FIRST+1:聽涓涓狣DE搴旂敤紼嬪簭(鏃犺鏄鎴瘋繕鏄湇345.聽鍔″櫒)鎻愪氦姝ゆ秷鎭潵緇堟涓涓細璇濓紱
346.聽WM_DDE_ADVISE=WM_DDE_FIRST+2:聽聽涓涓狣DE瀹㈡埛紼嬪簭鎻愪氦姝ゆ秷鎭粰涓涓狣DE鏈?47.聽鍔$▼搴忔潵璇鋒眰鏈?48.聽鍔″櫒姣忓綋鏁奧犅犅犅犅犅犅犅犅犅犳嵁欏規敼鍙樻椂鏇存柊瀹?br />349.聽WM_DDE_UNADVISE=WM_DDE_FIRST+3:聽聽涓涓狣DE瀹㈡埛紼嬪簭閫氳繃姝ゆ秷鎭氱煡涓涓狣DE鏈?50.聽鍔$▼搴忎笉351.聽鏇存柊鎸?52.聽瀹氱殑欏規垨聽聽聽聽聽聽聽聽聽聽涓涓壒孌婄殑鍓創鏉挎牸寮忕殑欏?br />353.聽WM_DDE_ACK=WM_DDE_FIRST+4:聽聽姝ゆ秷鎭氱煡涓涓狣DE錛堝姩鎬佹暟鎹氦鎹級紼嬪簭宸叉敹鍒板茍姝e湪澶勭悊WM_DDE_POKE,WM_DDE_EXECUTE,WM_DDE_DATA,WM_DDE_ADVISE,WM_DDE_UNADVISE,orWM_DDE_INITIAT娑堟伅WM_DDE_DATA=WM_DDE_FIRST+5:涓涓狣DE鏈?54.聽鍔$▼搴忔彁浜ゆ娑堟伅緇橠DE瀹㈡埛紼嬪簭鏉ヤ紶閫掍釜涓鏁版嵁欏圭粰瀹㈡埛鎴栭氱煡瀹㈡埛鐨勪竴鏉″彲鐢ㄦ暟鎹」
355.聽WM_DDE_REQUEST=WM_DDE_FIRST+6:聽涓涓狣DE瀹㈡埛紼嬪簭鎻愪氦姝ゆ秷鎭粰涓涓狣DE鏈?56.聽鍔$▼搴忔潵璇鋒眰涓涓暟鎹」鐨勫鹼紱
357.聽WM_DDE_POKE=WM_DDE_FIRST+7:聽聽涓涓狣DE瀹㈡埛紼嬪簭鎻愪氦姝ゆ秷鎭粰涓涓狣DE鏈?58.聽鍔$▼搴忥紝359.聽瀹㈡埛浣跨敤姝ゆ秷鎭潵璇鋒眰鏈?60.聽鍔″櫒鎺ユ敹涓涓湭緇忓悓361.聽鎰忕殑鏁版嵁欏癸紱鏈?62.聽鍔″櫒閫氳繃絳斿363.聽WM_DDE_ACK娑堟伅鎻愮ず鏄惁瀹冩帴鏀惰繖涓暟鎹」錛?br />364.聽WM_DDE_EXECUTE=WM_DDE_FIRST+8:聽涓涓狣DE瀹㈡埛紼嬪簭鎻愪氦姝ゆ秷鎭粰涓DDE鏈?65.聽鍔$▼搴忔潵鍙戦佷竴涓瓧絎︿覆緇欐湇366.聽鍔″櫒璁╁畠璞′覆琛屽懡浠や竴鏍瘋澶勭悊,鏈?67.聽鍔″櫒閫氳繃鎻愪氦WM_DDE_ACK娑堟伅鏉ヤ綔鍥炲簲錛?br />368.聽WM_DDE_LAST=WM_DDE_FIRST+8:聽聽
369.聽WM_APP=$8000:
370.聽WM_USER=$0400:聽姝ゆ秷鎭兘甯姪搴旂敤紼嬪簭鑷畾涔夌鏈夋秷鎭紱
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 /
閫氱煡娑堟伅(Notificationmessage)鏄寚榪欐牱涓縐嶆秷鎭紝涓涓獥鍙e唴鐨勫瓙鎺т歡鍙戠敓浜嗕竴浜涗簨鎯咃紝闇瑕侀氱煡鐖剁獥鍙c傞氱煡娑堟伅鍙傜敤浜庢爣鍑嗙殑紿楀彛鎺т歡濡傛寜閽佸垪琛ㄦ銆佺粍鍚堟銆佺紪杈戞錛屼互鍙奧indows95鍏叡鎺т歡濡傛爲鐘惰鍥俱佸垪琛ㄨ鍥劇瓑銆備緥濡傦紝鍗曞嚮鎴栧弻鍑諱竴涓帶浠躲佸湪鎺т歡涓夋嫨閮ㄥ垎鏂囨湰銆佹搷浣滄帶浠剁殑
婊氬姩鏉¢兘浼氫駭鐢熼氱煡娑堟伅銆?br />371.聽鎸夋壄
372.聽BN_CLICKED聽聽file: 鐢ㄦ埛鍗曞嚮浜嗘寜閽?br />373.聽BN_DISABLE聽聽file: 鎸夐挳琚姝?br />374.聽BN_DOUBLECLICKED聽file: 鐢ㄦ埛鍙屽嚮浜嗘寜閽?br />375.聽BN_HILITE聽file: 鐢ㄦ埛鍔犱寒浜嗘寜閽?br />376.聽BN_PAINT聽鎸夐挳搴斿綋閲嶇敾
377.聽BN_UNHILITE聽聽鍔犱寒搴斿綋鍘繪帀緇勫悎妗?br />378.聽CBN_CLOSEUP聽聽緇勫悎妗嗙殑鍒楄〃妗嗚鍏抽棴
379.聽CBN_DBLCLK聽聽鐢ㄦ埛鍙屽嚮浜嗕竴涓瓧絎︿覆
380.聽CBN_DROPDOWN聽緇勫悎妗嗙殑鍒楄〃妗嗚鎷夊嚭
381.聽CBN_EDITCHANGE聽鐢ㄦ埛淇敼浜嗙紪杈戞涓殑鏂囨湰
382.聽CBN_EDITUPDATE聽緙栬緫妗嗗唴鐨勬枃鏈嵆灝嗘洿鏂?br />383.聽CBN_ERRSPACE聽緇勫悎妗嗗唴瀛樹笉384.聽瓚?br />385.聽CBN_KILLFOCUS聽緇勫悎妗嗗け鍘昏緭鍏ョ劍鐐?br />386.聽CBN_SELCHANGE聽鍦ㄧ粍鍚堟涓夋嫨浜嗕竴欏?br />387.聽CBN_SELENDCANCEL聽鐢ㄦ埛鐨勯夋嫨搴斿綋琚彇娑?br />388.聽CBN_SELENDOK聽聽鐢ㄦ埛鐨勯夋嫨鏄悎娉曠殑
389.聽CBN_SETFOCUS聽聽緇勫悎妗嗚幏寰楄緭鍏ョ劍鐐圭紪杈戞
390.聽EN_CHANGE聽聽聽緙栬緫妗嗕腑鐨勬枃鏈繁鏇存柊
391.聽EN_ERRSPACE聽聽聽緙栬緫妗嗗唴瀛樹笉392.聽瓚?br />393.聽EN_HSCROLL聽聽聽鐢ㄦ埛鐐瑰嚮浜嗘按騫蟲粴鍔ㄦ潯
394.聽EN_KILLFOCUS聽聽緙栬緫妗嗘鍦ㄥけ鍘昏緭鍏ョ劍鐐?br />395.聽EN_MAXTEXT聽聽聽鎻掑叆鐨勫唴瀹硅鎴柇
396.聽EN_SETFOCUS聽聽聽緙栬緫妗嗚幏寰楄緭鍏ョ劍鐐?br />397.聽EN_UPDATE聽聽聽緙栬緫妗嗕腑鐨勬枃鏈皢瑕佹洿鏂?br />398.聽EN_VSCROLL聽聽聽鐢ㄦ埛鐐瑰嚮浜嗗瀭鐩存粴鍔ㄦ潯娑堟伅鍚箟
鍒楄〃妗?br />399.聽LBN_DBLCLK聽聽聽鐢ㄦ埛鍙屽嚮浜嗕竴欏?br />400.聽LBN_ERRSPACE聽聽鍒楄〃妗嗗唴瀛樹笉401.聽澶?br />402.聽LBN_KILLFOCUS聽聽鍒楄〃妗嗘鍦ㄥけ鍘昏緭鍏ョ劍鐐?br />403.聽LBN_SELCANCEL聽聽閫夋嫨琚彇娑?br />404.聽LBN_SELCHANGE聽聽閫夋嫨浜嗗彟涓欏?br />405.聽LBN_SETFOCUS聽聽鍒楄〃妗嗚幏寰楄緭鍏ョ劍鐐?img src ="http://m.shnenglu.com/tx7do/aggbug/5959.html" width = "1" height = "1" />

]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              最新国产の精品合集bt伙计| 欧美在线视频全部完| 久久精品国产成人| 欧美成人激情在线| 亚洲精品日韩综合观看成人91| 免费国产自线拍一欧美视频| 亚洲韩国日本中文字幕| 久久国产精品久久精品国产| 欧美性大战久久久久久久| 一区二区三区欧美在线观看| 久久久亚洲精品一区二区三区| 在线观看精品| 欧美视频四区| 久久久人人人| 日韩视频三区| 99一区二区| 国产一区二区三区久久| 欧美精品三级日韩久久| 亚洲欧美日韩精品久久亚洲区| 免费亚洲网站| 久久精品99国产精品| 一区二区黄色| 亚洲韩国日本中文字幕| 国产欧美日韩激情| 欧美精品久久99| 国产精品久久久久永久免费观看| 玖玖精品视频| 亚洲综合精品自拍| 最新日韩在线视频| 久久久综合精品| 亚洲国产日韩欧美一区二区三区| 亚洲一区二区三区777| 最新日韩在线| 欧美在线|欧美| 国产精品久久777777毛茸茸| 欧美日韩伦理在线免费| 免费高清在线视频一区·| 亚洲一区久久| 欧美电影免费观看| 欧美福利电影网| 久久精品首页| 久久久久久久久伊人| 欧美深夜福利| 亚洲精选久久| 一区二区电影免费观看| 巨乳诱惑日韩免费av| 美日韩在线观看| 亚洲香蕉成视频在线观看| 亚洲专区免费| 欧美日韩亚洲一区二区三区| 亚洲精品国产精品国自产观看| 久久人体大胆视频| 小黄鸭视频精品导航| 欧美一区二区三区另类| 久久久久免费观看| 国产一区二区精品在线观看| 中日韩美女免费视频网址在线观看| 亚洲精品日韩在线| 免费观看成人| 久久久久成人精品| 国产亚洲午夜| 久久久久亚洲综合| 欧美一区二区三区视频在线观看| 亚洲午夜一区二区| 欧美日韩在线另类| 中文在线资源观看视频网站免费不卡| 亚洲高清自拍| 欧美大片国产精品| 亚洲理伦电影| 亚洲综合三区| 国产精品免费看片| 欧美亚洲一区在线| 麻豆国产精品777777在线| 欧美中文在线观看| 狠狠色综合色综合网络| 亚洲国产精品电影在线观看| 一区二区三区国产精华| 亚洲日韩欧美视频一区| 亚洲天堂成人| 国产精品一区二区三区久久久 | 国产精品久久久久久久久免费桃花 | 欧美亚洲第一页| 性久久久久久久| 久久精品盗摄| 99精品国产一区二区青青牛奶| 欧美在线免费播放| 久久蜜桃资源一区二区老牛| 国产精品区二区三区日本| 伊人成年综合电影网| 亚洲电影免费在线| 欧美偷拍另类| 久久久久综合网| 欧美国产大片| 久久精品视频在线| 欧美激情中文字幕一区二区| 欧美一区二区视频97| 日韩亚洲一区二区| 国产一区二区激情| 亚洲激情网站| 国内成+人亚洲| 久久黄色小说| 欧美精品激情| 欧美在线亚洲综合一区| 欧美v国产在线一区二区三区| 亚洲专区在线视频| 亚洲欧洲在线一区| 黑人操亚洲美女惩罚| 一级日韩一区在线观看| 在线精品国产欧美| 欧美xxx在线观看| 国产精品久久久久久久久婷婷| 免费观看欧美在线视频的网站| 欧美深夜福利| 亚洲激情网站| 亚洲经典一区| 女仆av观看一区| 国产精品麻豆成人av电影艾秋| 亚洲二区精品| 依依成人综合视频| 欧美一区二区三区日韩| 亚洲欧美日韩精品久久奇米色影视| 日韩视频在线观看一区二区| 好看的日韩视频| 性欧美1819sex性高清| 亚洲一区二区高清视频| 亚洲资源av| 一区二区三区成人精品| 欧美激情视频一区二区三区免费| 狼人天天伊人久久| 韩日视频一区| 久久国产精品电影| 久久免费高清视频| 好吊日精品视频| 久久久久久久久一区二区| 久久米奇亚洲| 激情久久婷婷| 99精品国产高清一区二区 | 翔田千里一区二区| 香蕉av777xxx色综合一区| 欧美午夜宅男影院在线观看| 亚洲精品资源| 亚洲综合清纯丝袜自拍| 国产精品视频大全| 欧美亚洲在线观看| 久久全国免费视频| 亚洲国产裸拍裸体视频在线观看乱了 | 牛牛国产精品| 亚洲高清一区二| 99精品视频网| 国产精品久久久久婷婷| 亚洲综合色网站| 久久亚洲高清| 欧美性淫爽ww久久久久无| 日韩视频在线免费观看| 亚洲午夜国产成人av电影男同| 欧美色图一区二区三区| 亚洲性色视频| 老司机精品导航| 日韩亚洲欧美综合| 国产精品一区一区| 久久久亚洲国产天美传媒修理工| 欧美激情亚洲自拍| 国产一区在线观看视频| 久久婷婷久久| 99re国产精品| 久久精品主播| 国产精品视频午夜| 久久精品国产77777蜜臀 | 欧美中文字幕在线观看| 免费在线观看精品| 亚洲一级电影| 在线精品视频一区二区| 欧美日韩你懂的| 欧美一区二区三区视频在线| 亚洲激情视频网| 久久午夜激情| 亚洲欧美日本另类| 亚洲高清一区二| 国产精品综合| 夜夜精品视频| 久久躁狠狠躁夜夜爽| 亚洲乱码国产乱码精品精 | 在线成人中文字幕| 欧美日韩在线三区| 嫩模写真一区二区三区三州| 午夜欧美不卡精品aaaaa| 亚洲国产精品一区在线观看不卡| 欧美一区二区日韩| 一区二区三区久久精品| 亚洲二区在线观看| 国产性色一区二区| 亚洲欧美日韩另类| 亚洲日本免费电影| 久久一本综合频道| 欧美一区二区三区的| 日韩一二三区视频| 亚洲激情在线观看视频免费| 国产亚洲一区二区三区在线观看 | 欧美理论视频| 亚洲免费观看高清在线观看 |