锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品中文字幕在线,国产欧美精品一区二区色综合 ,美女诱惑一区http://m.shnenglu.com/lewislau/archive/2006/03/11/4001.htmllewislau 闃挎湪lewislau 闃挎湪Sat, 11 Mar 2006 03:19:00 GMThttp://m.shnenglu.com/lewislau/archive/2006/03/11/4001.htmlhttp://m.shnenglu.com/lewislau/comments/4001.htmlhttp://m.shnenglu.com/lewislau/archive/2006/03/11/4001.html#Feedback1http://m.shnenglu.com/lewislau/comments/commentRss/4001.htmlhttp://m.shnenglu.com/lewislau/services/trackbacks/4001.html 瀛欓懌VC璁插駭絎旇--WINDOWS紼嬪簭鍐呴儴榪愯鍘熺悊

澹版槑錛?/P>

        鏈漢鏈榪戜篃鍦ㄧ湅瀛欒佸笀鐨勮棰戯紝涓轟簡鍔犲己鐞嗚В錛屾墍浠ユ兂涓浜涜涔︾瑪璁般備絾鏄湪CSDN涓婁竴鎼滅儲錛屽彂鐜板凡緇忔湁鏈嬪弸鍋氫簡鐩稿叧絎旇銆傛牴鎹潰鍚戝璞$殑鈥滅戶鎵庫濊鐐癸紝涓轟簡瑙e喅鍔沖姩鍔涳紝鎵浠ユ垜鎵撶畻鍦ㄤ粬浠殑鍩虹涓婃坊鍔犮佷慨鏀廣傚簲璇ヤ笉娑夊強钁椾綔鏉冧粈涔堢殑涓滀笢鍚э紵錛?/P>

        鎴戝湪BLOG.CSDN.NET/LEWISLAU涓婃悳绱簡涓?nbsp;錛屾湁涓や綅鏈嬪啓浜嗙浉鍏崇瑪璁幫紙鑰屼笖閮芥槸涓鏍風殑錛夈備笉鐭ラ亾璋佹墠鏄師浣滆咃紝鎵浠ュ垪鍑轟袱浣岯LOG鍦板潃錛?/P>

http://blog.csdn.net/hhitjsj021                                http://blog.csdn.net/d007879

浠ュ悗鎴戜細鍦ㄥ墠杈堢殑鍩虹涓婁慨鏀廣佸彂鏂囷紒鍛靛懙錛佺戶鎵垮槢錛?/P>

 

 

 

 

windows紼嬪簭璁捐鏄浜嬩歡椹卞姩鏂瑰紡鐨勭▼搴忚璁★紝涓昏鍩轟簬娑堟伅鐨勩傚綋鐢ㄦ埛闇瑕佸畬鎴愭煇縐嶅姛鑳芥椂錛岄渶瑕佽皟鐢∣S鏌愮鏀寔錛岀劧鍚嶰S灝嗙敤鎴風殑闇瑕佸寘瑁呮垚娑堟伅錛屽茍鎶曞叆鍒版秷鎭槦鍒椾腑錛屾渶鍚庡簲鐢ㄧ▼搴忎粠娑堟伅闃熷垪涓彇璧版秷鎭茍榪涜鍝嶅簲銆?/P>

 

MSG Structure

--------------------------------------------------------------------------------

The MSG structure contains message information from a thread's message queue.

Syntax

typedef struct {
    HWND hwnd;   //鎸囩ず涓涓獥鍙g殑鍙ユ焺錛屾敼娑堟伅鍜岄偅涓獥鍙g浉鍏寵仈銆?BR>    UINT message;  //鍏蜂綋鐨勬秷鎭紝鐢ㄦ棤絎﹀彿鏁村艦琛ㄧず
    WPARAM wParam; //鍏充簬娑堟伅鐨勯檮鍔犲弬鏁?BR>    LPARAM lParam; //鍚屼笂
    DWORD time; //32浣嶆暣鏁幫紝琛ㄧず娑堟伅琚姇閫掑嚭鍘葷殑鏃墮棿
    POINT pt; //琛ㄧず鍏夋爣浣嶇疆
} MSG, *PMSG;

 鍙ユ焺錛岃祫婧愮殑鏍囪瘑錛屾搷浣滅郴緇熼氳繃鍙ユ焺鎸囧埌璧勬簮銆傚父瑙佺殑鍙ユ焺鏈夊浘鏍囧彞鏌勶紙HICON錛夛紝鍏夋爣鍙ユ焺錛圚CURSOR錛夛紝紿楀彛鍙ユ焺錛圚WND錛夛紝搴旂敤紼嬪簭鍙ユ焺錛圚INSTANCE錛?BR> 
渚嬪錛氬綋鎸変笅鎸夐敭浼氬彂閫佸嚭WM_CHAR娑堟伅   閫氳繃娑堟伅鐨勯檮鍔犲弬鏁幫紝淇濆瓨瀵瑰簲鐨凙SCII鐮侊紝鍗沖彲鐭ラ亾鎸変笅鐨勬槸閭d釜閿?/P>

 

 


娑堟伅闃熷垪錛?BR>姣忎釜搴旂敤紼嬪簭OS閮戒負瀹冨緩绔嬩竴涓秷鎭槦鍒楋紝娑堟伅闃熷垪鏄釜鍏堣繘鍏堝嚭鐨勭紦鍐插尯錛屽叾涓瘡涓厓绱犻兘鏄竴涓秷鎭紝OS灝嗙敓鎴愮殑姣忎釜娑堟伅鎸夊厛鍚庨『搴忔斁榪涙秷鎭槦鍒椾腑錛屽簲鐢ㄧ▼搴忔繪槸鍙栬蛋褰撳墠娑堟伅闃熷垪涓殑絎竴鏉℃秷鎭紝搴旂敤紼嬪簭鍙栬蛋娑堟伅鍚庝究鐭ラ亾鐢ㄦ埛鐨勬搷浣滃拰紼嬪簭鐨勭姸鎬侊紝鐒跺悗瀵瑰叾澶勭悊鍗蟲秷鎭搷搴旓紝娑堟伅鍝嶅簲閫氳繃緙栫爜瀹炵幇銆?/P>

浣跨敤VC緙栫▼闄や簡鑹ソ鐨凜鍩虹澶栬繕闇瑕佹帉鎻′袱鏂歸潰錛?BR>涓錛屾秷鎭湰韜備笉鍚屾秷鎭墍浠h〃鐨勭敤鎴鋒搷浣滃拰搴旂敤紼嬪簭鐨勭姸鎬併?BR>浜岋紝瀵逛簬鏌愪釜鐗瑰畾鐨勬秷鎭潵璇達紝瑕佽OS鎵ц鏌愪釜鐗瑰畾鐨勫姛鑳藉幓鍝嶅簲娑堟伅銆?/P>


Window紼嬪簭鍏ュ彛錛?BR>int WINAPI WinMain(
  HINSTANCE hInstance,  // 褰撳墠浜嬩緥鍙ユ焺銆?BR>  HINSTANCE hPrevInstance,  // 鍏堝墠浜嬩緥鍙ユ焺銆?BR>  LPSTR lpCmdLine,      // 鍛戒護琛屾寚閽?BR>  int nCmdShow          // 錛堢獥鍙o級鏄劇ず鐨勭姸鎬?BR>);
璇存槑錛歐inMain鍑芥暟鏄疻indows紼嬪簭鍏ュ彛鐐瑰嚱鏁幫紝鐢監S璋冪敤錛屽綋OS鍚姩搴旂敤紼嬪簭鐨勬椂鍊欙紝winmain鍑芥暟鐨勫弬鏁扮敱OS浼犻掔殑銆?/P>

 

鍒涘緩涓涓畬鏁寸殑紿楀彛闇瑕佺粡榪囦笅闈㈠洓涓搷浣滄楠わ細
涓錛岃璁′竴涓獥鍙g被錛涘錛歐NDCLASS wndcls;
浜岋紝娉ㄥ唽紿楀彛綾伙紱    濡傦細RegisterClass(&wndcls);
涓夛紝鍒涘緩紿楀彛錛?nbsp;     濡傦細CreateWindow(),CreateWindowEX();
鍥涳紝鏄劇ず鍙婃洿鏂扮獥鍙c傚錛歋howWindow(),UpdateWindow();
璇存槑錛氬垱寤虹獥鍙g殑鏃跺欎竴瀹氳鍩轟簬宸茬粡娉ㄥ唽鐨勭獥鍙g被.

 

 

Windows鎻愪緵鐨勭獥鍙g被錛?BR>typedef struct  WNDCLASS {
    UINT    style;        //紿楀彛鐨勭被鍨?BR>    WNDPROC lpfnWndProc;  //紿楀彛榪囩▼鍑芥暟鎸囬拡錛堝洖璋冨嚱鏁幫級
    int     cbClsExtra; //紿楀彛綾婚檮鍔犲瓧鑺傦紝涓鴻綾葷獥鍙f墍鍏變韓銆傞氬父0銆?BR>    int     cbWndExtra; //紿楀彛闄勫姞瀛楄妭銆傞氬父璁句負0銆?BR>    HANDLE  hInstance;  //褰撳墠搴旂敤紼嬪簭浜嬩緥鍙ユ焺銆?BR>    HICON   hIcon;      //鍥炬爣鍙ユ焺 LoadIcon();
    HCURSOR hCursor;    //鍏夋爣鍙ユ焺 LoadCursor();
    HBRUSH  hbrBackground; //鐢誨埛鍙ユ焺 (HBRUSH)GetStockObject();
    LPCTSTR lpszMenuName;  //鑿滃崟鍚嶅瓧
    LPCTSTR lpszClassName; //綾葷殑鍚嶅瓧
} WNDCLASS錛?PWNDCLASS;


紿楀彛綾誨瀷style涓轟竴涓彉閲忥紝璇ュ彉閲忔瘡涓浣嶅搴旂潃涓縐嶇壒鎬с傚搴斾負1鏃訛紝鏈夎縐嶇壒鎬э紱瀵瑰簲涓?鏃訛紝鏃犺縐嶇壒鎬с備負浜嗘柟渚胯蹇嗭紝鐢ㄤ竴浜涘畯瀵瑰簲涓浜涚壒寰侊紝閫氳繃鍙栧弽錛堬綖錛夊拰鐩鎬笌錛?amp;錛夊彲浠ュ彇娑堜竴浜涚壒鎬с?nbsp; 閫氬父璁劇疆涓?CS_HREDRAW | CS_VREDRAW"琛ㄧず鍨傜洿閲嶇粯鍜屾按騫抽噸緇樸?/P>

HICON鍙互鐢盠oadIcon 璧嬪鹼紙瀹冩湁涓や釜鍙傛暟HINSTANCE鍜孡PCTSTR錛岄氬父絎竴涓弬鏁頒負絀猴紝鍙絎簩涓弬鏁拌祴鍊鹼紝鍗沖浘鏍囩殑ID錛?BR>HCURSOR鍚孒ICON
HBRUSH 浣跨敤GetStockObject鍑芥暟錛屽畠鍙互鐢ㄦ潵鑾峰彇絎斻佺敾鍒楓佸瓧絎︺佽皟璇曟澘鐨勭敾鍒楓備嬌鐢ㄦ椂瑕佺敤HBRUSH鍋氫竴鐩村己鍒惰漿鍖栥傚洜涓篏etStockObject榪斿洖鍊煎拰HBRUSH涓嶅悓銆?/P>

紿楀彛綾繪敞鍐岋細
ATOM RegisterClass(
  CONST WNDCLASS *lpWndClass   // address of structure with class
                              // data
);
//娉ㄦ剰錛屾槸浣跨敤鍦板潃絎?/P>

 


鍒涘緩紿楀彛錛?BR>HWND CreateWindow(
  LPCTSTR lpClassName,  //娉ㄥ唽紿楀彛綾誨悕錛岀敤寮曞彿
  LPCTSTR lpWindowName, //紿楀彛鏍囬錛岀敤寮曞彿
  DWORD dwStyle,        //紿楀彛綾誨瀷錛堥鏍鹼級閫氬父涓?WS_OVERLAPPEDWINDOW)
  int x,                // 紿楀彛X鍧愭爣
  int y,                // 紿楀彛X鍧愭爣
  int nWidth,           // 瀹藉害
  int nHeight,          // 楂樺害
  HWND hWndParent,      // 鎸囧悜鐖剁獥鍙g殑鍙ユ焺
  HMENU hMenu,          // 鑿滃崟鍙ユ焺
  HANDLE hInstance,     // 褰撳墠瀹炰緥鐨勫彞鏌勶紝鐢盬INMAIN浼犻?BR>  LPVOID lpParam        // WM_CREATE闄勫姞鍙傛暟浼犲叆鎸囬拡
);
鍒涘緩紿楀彛鐨勬椂鍊欎細鍙戦乄M_CREATE娑堟伅


鏄劇ず鍜屾洿鏂扮獥鍙g獥鍙o細
BOOL ShowWindow(
  HWND hWnd,     // handle to window
  int nCmdShow   // show state of window
);
BOOL UpdateWindow(
  HWND hWnd   // handle of window  閫佸嚭WM_PAINT娑堟伅
);


娑堟伅寰幆
MSG msg;
while(GetMessage(&msg,...))    //浠庢秷鎭槦鍒椾腑鍙栧嚭涓鏉℃秷鎭?BR>{
 TranslateMessage(&msg); //榪涜娑堟伅錛堝閿洏娑堟伅錛夎漿鍖栥傝漿鍖栬繃紼嬩笉浼氬獎鍝嶅師娑堟伅錛屽彧浼氬垱寤烘柊鐨勬秷鎭?BR> DispatchMessage(&msg); //鍒嗘淳娑堟伅鍒扮獥鍙g殑鍥炶皟鍑芥暟澶勭悊,錛圤S璋冪敤紿楀彛鍥炶皟鍑芥暟榪涜澶勭悊錛夈?BR>}

BOOL GetMessage(
  LPMSG lpMsg,         // 娑堟伅緇撴瀯浣撳彉閲?BR>  HWND hWnd,           // 鍙ユ焺錛岄偅涓竴涓獥鍙o紵涓篘ULL鍒欎負鎵鏈夌獥鍙e彞鏌?BR>  UINT wMsgFilterMin,  // 鏈灝忔秷鎭鹼紝涓?鏃惰繑鍥炴墍鏈夋秷鎭?BR>  UINT wMsgFilterMax   // 鏈澶ф秷鎭?BR>);

 

鍥炶皟鍘熺悊錛氬綋搴旂敤紼嬪簭鍙楀埌緇欐煇涓獥鍙g殑娑堟伅鏃訛紝灝卞簲璋冪敤鏌愪竴鍑芥暟鏉ュ鐞嗚繖鏉℃秷鎭傝繖涓娑堟伅鏈夋搷浣滅郴緇熻嚜鍔ㄥ畬鎴愩?/P>

娉細鍑芥暟鍚嶅彲浠ョ敤浠ヨ〃紺哄嚱鏁頒唬鐮佺殑棣栧湴鍧錛堝嚱鏁版寚閽堬級錛岄澶栨暟鎹氬父涓?銆?/P>


紿楀彛榪囩▼鍑芥暟錛堝洖璋冨嚱鏁幫級鍘熷瀷錛?BR>LRESULT CALLBACK WindowProc(  //榪欓噷WindowProc鏄釜浠e彿鍚嶅瓧銆?BR>  HWND hwnd,      // handle to window
  UINT uMsg,      // message identifier
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter
);
璇存槑錛氫袱縐嶅嚱鏁拌皟鐢ㄧ害瀹氾紙__stdcall 鍜?__cdecl錛夛細
#define CALLBACK    __stdcall
//__stdcall 鏍囧噯璋冪敤棰勫畾錛屾槸PASCAL 璋冪敤綰﹀畾錛岃薄DELPHI浣跨敤鐨勫氨鏄爣鍑嗚皟鐢ㄧ害瀹?BR>#define WINAPIV     __cdecl 
// __cdecl 鏄疌 璇█褰㈠紡鐨勮皟鐢ㄧ害瀹氥?BR>涓昏鍖哄埆錛氬嚱鏁板弬鏁頒紶閫掗『搴?鍜?瀵瑰爢鏍堢殑娓呴櫎涓娿?BR>闂錛氶櫎浜嗛偅浜涘彲鍙樺弬鏁扮殑鍑芥暟璋冪敤澶栵紝鍏朵綑鐨勪竴鑸兘鏄痏_stdcall綰﹀畾銆備絾 C/C++緙栬瘧榛樼劧鐨勬槸__cdecl綰﹀畾銆傛墍浠ュ鏋滃湪VC絳夌幆澧冧腑璋冪敤__stdcall綰﹀畾鐨勫嚱鏁幫紝蹇呴』瑕佸湪鍑芥暟澹版槑鐨勬椂鍔犱笂 __stdcall 淇グ絎︼紝浠ヤ究瀵硅繖涓嚱鏁扮殑璋冪敤鏄嬌鐢╛_stdcall綰﹀畾錛堝浣跨敤DELPHI緙栧啓鐨凞LL鏃跺欙級銆?BR>錛圴C涓彲閫氳繃榪欓斿緞淇敼錛歱roject|settings..|c/c++|...)
鍦ㄧ獥鍙h繃紼嬪嚱鏁頒腑閫氳繃涓緇剆witch璇彞鏉ュ娑堟伅榪涜澶勭悊錛?BR>濡傦細
LRESULT CALLBACK WindowProc( 
  HWND hwnd,
  UINT uMsg,
  WPARAM wParam,
  LPARAM lParam  
)
{
    switch(uMsg)
    {
 case WM_PAINT:
  ...
  break;
 case ...
  break;
 case WM_CLOSE:
  //DestroyWindow(hwnd);
   //閿姣佺獥鍙o紝騫跺彂閫乄M_DESTROY娑堟伅銆?BR>  break;
 case WM_DESTROY:
  //PostQuitMessage(0);
  //鍙戦乄M_QUIT娑堟伅鍒版秷鎭槦鍒椾腑錛岃姹傜粓姝€?BR>         //GetMessage()鍙栧埌WM_QUIT娑堟伅鍚庯紝榪斿洖0錛岄鍑烘秷鎭驚                //   鐜紝浠庤岀粓姝㈠簲鐢ㄧ▼搴忋?BR>  break;
 default:
  return DefWindowProc(hwnd,uMsg,wParam,lParam);
 //鐢ㄧ己鐪佺殑紿楀彛榪囩▼澶勭悊鎴戜滑涓嶆劅鍏磋叮鐨勬秷鎭紙鍏跺畠娑堟伅錛夈?BR> //榪欐槸蹇呴』鐨勩?BR>    }//switch
 return 0;
}//WindowProc


 鍝嶅簲WM_DESTROY錛岃皟鐢≒ostQuitMessage(int)緇撴潫榪涚▼銆傚畠浼氭姇閫掍竴涓猈M_QUIT娑堟伅瀵規秷鎭槦鍒椾腑銆傚綋娑堟伅寰幆鐨凣etMessage鍙栧埌WM_QUIT娑堟伅錛屽垯榪斿洖0錛岀▼搴忕粨鏉熴?BR> 鍙﹀瀵逛簬涓嶆劅鍏磋叮鐨勬秷鎭鏅薄緙虹渷鐨勫鐞嗭紝浣跨敤DefWindowProc錛堬級鍐呬負紿楀彛鐨勫弬鏁般?/P>

 


鍏充簬DC鍙ユ焺鑾峰彇錛?BR>a)浣跨敤BeginPaint(),EndPaint()瀵廣傛敞鎰忓彧鑳藉湪鍝嶅簲WM_PAINT娑堟伅鏃朵嬌鐢ㄣ?BR>b)浣跨敤GetDc(),ReleaseDC()瀵廣傛敞鎰忎粬浠笉鑳藉湪鍝嶅簲WM_PAINT涓嬌鐢?BR>



lewislau 闃挎湪 2006-03-11 11:19 鍙戣〃璇勮
]]>
銆愬師鍒涖戞垜鍦ㄦ垚閮藉綋紼嬪簭鍛?http://m.shnenglu.com/lewislau/archive/2006/03/11/4000.htmllewislau 闃挎湪lewislau 闃挎湪Sat, 11 Mar 2006 03:18:00 GMThttp://m.shnenglu.com/lewislau/archive/2006/03/11/4000.htmlhttp://m.shnenglu.com/lewislau/comments/4000.htmlhttp://m.shnenglu.com/lewislau/archive/2006/03/11/4000.html#Feedback8http://m.shnenglu.com/lewislau/comments/commentRss/4000.htmlhttp://m.shnenglu.com/lewislau/services/trackbacks/4000.html 銆愬師鍒涖戞垜鍦ㄦ垚閮藉綋紼嬪簭鍛?

棰樿錛氬墠鍑犲ぉ鍑哄幓鎰熷彈涓涓嬶紝鎰熻Е棰囨繁錛屽彂瑙夎嚜宸辯湡鐨勫緢閫娿傜幇鍦ㄥ洖鍒版竻闈欑殑鏍″洯錛岃嚜宸辮寰楀簲璇ユ洿鍔犲姫鍔涖傜ぞ浼氱湡鐨勪笉鏄垜浠兂鐨勯偅鏍鳳紝宸ヤ綔涔熶笉鍍忓涔犱竴鏍瘋交鏉俱傚彧甯屾湜鍚勪綅鏈嬪弸鍦ㄨ蛋鍑烘牎闂紝榪堝悜紺句細鐨勮繃紼嬩腑錛屼竴鍒囬『鍒╋紒

 鍦ㄦ垚閮藉緟浜嗕竴涓槦鏈燂紝紜垏鐨勮鍙湁鍏ぉ銆傚湪榪欏叚澶╅噷闈紝鎴戝畬瀹屽叏鍏ㄦ槸涓涓墦宸ョ殑錛屼竴涓ぞ浼氫笂鐨勪漢錛屼竴涓▼搴忓憳銆傚惉涓婂幓澶氱墰B錛岀▼搴忓憳鍟婏紝榪欎釜鍙槸鎴戞ⅵ瀵愪互姹傜殑鑱屼笟鍟婏紝鍙槸浜嬪疄涓婁竴鍒囬兘涓嶆槸鎴戞兂鐨勯偅鏍瘋緣鐓屻傛垜榪欏嚑澶╄剳嫻烽噷鍙嶅嫻幇涓鍙ヨ瘽錛岀▼搴忓憳鐨勭殑紜‘鏄崄鍒嗚緵鑻︾殑鑱屼笟銆?BR> 鎴戞墍鍦ㄧ殑鍏徃鏄竴瀹舵父鎴忓鎸傚叕鍙革紝涓撻棬鍋氭父鎴忓鎸傘備粠紺句細鐨勮搴︽潵璇達紝榪欑鈥滃嬀鎼濆彧鑳芥殫綆辨搷浣滐紝濡備粖鍗磋繕鏄庣洰寮犺儐鐨勨滃紑寮犺惀涓氣濓紝紜疄鎼炵瑧錛涗粠鎶鏈殑瑙掑害鏉ヨ錛屾父鎴忓鎸傦紝鍒╃敤HOOK鎷︽埅鏁版嵁鍖呫佽В瀵嗐佷慨鏀廣佸皝鍖咃紝鏍鋒牱閮芥槸瀹夊叏鏂歸潰鐨勬瘮杈冪墰B鐨勬妧鏈紝鍦ㄦ病鏈夎繘榪欎釜鍏徃涔嬪墠錛屾垜娌℃湁鎯寵繃涓騫翠互鍐呬細鎺ヨЕ鍒拌繖浜涘簳灞傜殑鎶鏈傛墍鏈夎鍏徃瀵規垜鏉ヨ錛屾湁浜涘け鏈涖佷絾鏄篃鏈変竴浜涙湡鏈涖?BR> 浠ュ墠鍦ㄧ壞闃籌紙瀹朵埂錛夌殑涓浜涘皬IT鍏徃涔熺帺鍎胯繃錛屼絾鏄繖嬈℃槸鐙嚜鍦ㄥ錛屼粈涔堥棶棰橀兘瑕佽嚜宸辮В鍐籌紝鎵鏈変粠鍚勪釜鏂歸潰鏉ヨ錛岄兘鏄嚜宸辯殑涓浜涙柊鐨勫皾璇曘備笉榪囪繕濂界殑鏄紝榪欐鎴戞槸鍜屾湅鍙嬩竴鍒囧幓鎴愰兘鈥滃疄涔犫濄傚懙鍛碉紝涓嶈繃鎴戞瘮浠栧ソ鐨勫氨鏄紝浠栧湪鐢典俊璁捐瑙勫垝闄㈠疄涔犱笁涓湀錛屾病鏈夊疄涔犲伐璧勶紝涓変釜鏈堣漿姝o紱鑰屾垜瀹炰範涓涓湀瀹炰範宸ヨ祫涓鍗冿紝涓涓湀鍚庤漿姝o紝鏍規嵁鎯呭喌鑰屽畾宸ヨ祫錛岃〃鐜扮殑濂界殑璇濆湪3K宸﹀彸錛堝惉涓婂幓鎸哄惛寮曚漢鐨勶紝浣嗘槸鐪熺殑寰堢瘡錛夈?BR> 鎴戜滑鍒版垚閮藉彧鐢ㄤ簡2涓皬鏃舵壘浜嗕竴澶勪綇鎴匡紝鍚堢錛?50涓鏈堬紝鍙湁涓寮犲簥鍜屼竴涓功妗岋紙澶╁暒錛屾垚閮界殑鎴夸環鐪烼MD鐨勫悡姝諱漢錛夈傚敮涓姣旇緝嬈f叞鐨勬槸鎴戜滑浣忓湪宸濆ぇ澶栭潰錛屾琛屽埌宸濆ぇ鍙5鍒嗛挓錛屽師鍏堣鎯崇殑鏄瘡澶╀笅鐝幓宸濆ぇ鏁欏鍘諱笂鑷範錛屽彲鏄幇瀹炲線寰涓庤鎯蟲湁寰堝ぇ鐨勫樊璺濓紝姣忓ぉ鍥炲埌瀹剁瘡鐨勭畝鐩翠功閮戒笉鎯崇湅銆傦紙鐧藉ぉ鍦ㄥ叕鍙歌嚦灝戠湅6涓皬鏃朵互涓婄殑鏂囨。錛屽榪欓偅涓?5瀵哥殑CRT錛屾垜綆鐩翠竾鍒嗙殑涓嶇埥錛屽叕鍙擱噷闈?0澶氫漢灝辨垜涓涓敤CRT鏄劇ず鍣紝鎴戦潬錛屾璐熸垜錛燂紵錛侊級姣忔櫄鍜屾湅鍙嬪湪宸濆ぇ杞偁涓ゅ湀灝卞洖鍘葷潯瑙夛紝榪欑鐢熸椿錛岃鎴戝洖蹇嗚搗涓ゅ瞾鐨勬椂鍊欏閲岃繕涓嶆櫙姘旂殑鐘舵併傛睏錛?BR> 璦褰掓杞紝榪樻槸璇村伐浣滅殑浜嬪効錛屾瘡澶╂垜7錛?0璧峰簥錛岃В鍐沖畬鎵鏈夐棶棰樺ぇ綰?錛?0鍒拌揪杞︾珯錛屾惌涓?9璺紝欏哄埄鐨勮瘽8錛?5浣滅敤鑳藉埌杈鵑珮鍗囨ˉ錛堝叕鍙告墍鍦ㄥ湴錛夛紝鍞夛紝涓嶇姹楅錛屾瘡澶╄鐧界櫧嫻垂澶х害90鍒嗛挓鏃墮棿鎼濺錛屽湪鎴愰兘浜虹湅鏉ワ紝榪欒繕綆楄繎鐨勶紙澶у煄甯傜殑鏄瘮鎴戜滑榪欎簺鍐滄皯媧嬬洏錛夈?鐐瑰乏鍙沖埌杈懼叕鍙革紝涓嶅嚭鎰忓鐨勮瘽鍙湁鎴戞梺杈圭殑浠佸厔姣旀垜鏃╁埌銆傦紙鍏徃鑰佸ぇ鑰冭檻鎶鏈儴緇忓父鍔犵彮錛屾墍浠ュ厑璁告妧鏈儴鐨勫厔寮熶滑9錛?0涓婄彮錛岃繖涓繕澶熶漢鎬у寲銆傦級榪欎綅浠佸厔寰呬細瑕侀噸鐐逛粙緇嶏紝鍏徃閲岄潰灝辮窡浠栨販鐨勬渶鐔燂紝鐗圭墰B銆傝鍒板姞鐝紝鎴戠獊鐒舵兂璧鋒墠鍘誨叕鍙稿拰鎶鏈儴鑰佸ぇ璋堢殑鏃跺欙紝鑰佸ぇ鐗瑰埆浜や唬錛屸滃鏋滀綘鍔犵彮鐨勮瘽錛屾櫄涓婂彲浠ユ墦杞﹀洖瀹躲傛嬁涓婂皬紲紝絎簩澶╁洖鍏徃鎶ラ攢銆傗濇垜姹楋紝鍘熸潵榪欎釜鍏徃鍔犵彮灝辮窡鍠濇按涓鏍烽殢渚褲?BR> 鎴戞墠鍒板叕鍙革紝鎴戠殑宸ヤ綔灝辨槸涓嶅仠鐨勭湅鏂囨。錛屼腑鏂囩殑銆佽嫳鏂囩殑閮界湅銆傦紙鎴戦兘鎬鐤戞垜灞呯劧鑳界湅鎳傝嫳鏂囷級鑰佸ぇ緇欐垜鐨勪換鍔″緢綆鍗曪紝灝變竴鍙ヨ瘽錛氣滃埄鐢℉OOK鎶撳彇紼嬪簭鐨勬暟鎹寘銆傗濅粬榪樼壒鍒氦浠o紝鈥滀笉闇瑕佷綘瑙e瘑鏁版嵁鍖咃紝鎶撳彇灝卞彲浠モ濈湅涓婂幓闄嶄綆浜嗗緢澶ч毦搴﹀摝錛屼絾鏄湁涓や釜浜鴻兘璇佹槑榪欎釜鎴戣繖涓叕鍙鎬笉鏄垜鐜板湪鐨勬按騫寵兘澶熸帴鍙楃殑銆傜涓涓啹SIR錛屼粬璇磋繖涓笢瑗垮浜庢垜鏉ヨ錛岄潪甯擱潪甯稿叿鏈夋寫鎴橈紝甯屾湜鎴戣兘鍒涢犲榪廣傦紙姹楋紝濂囪抗錛侊級絎簩涓槸鏉嶴IR錛屽洖瀛︽牎鍚庢垜緇欎粬璁茶堪鎴戠殑鈥滀綔涓氣濓紝浠栬錛屽摝錛岃繖涓笢瑗垮拰鎴戝笀鍏勭爺絀剁敓鐨勬瘯涓氳璁″緢鍍忋傦紙鎴戝啀涓嬈℃睏棰滐級鎴戞壙璁よ嚜宸辯殑鍠滄鏈夋寫鎴樼殑宸ヤ綔錛屼絾鏄垜榪樻槸寰堟湁鑷煡涔嬫槑錛岀‘鍒囩殑璇存垜寰堣嚜閲忓姏銆?BR> 鎴戞瘡澶╃殑宸ヤ綔灝辨槸鐪嬫枃妗o紝鐪嬬殑鎴戣鐤紝HOOK灞炰簬WINDOWS鐨勬牳蹇冩妧鏈紝瓚嬩簬鎿嶄綔緋葷粺搴曞眰錛岀敤浜庢嫤鎴搷浣滅郴緇熷彂鍑虹殑娑堟伅銆傚浜庢垜鏉ヨ鍐充笉鏄畝鍗曠殑浜嬪効錛屾墍浠ヤ笉鏁㈡噲鎬狅紝鎴戞瘡澶╁氨GOOGLE,MSDN涓婃悳瀵誨叧浜庡畠鐨勪竴鍒囷紝涓枃鐨勮嫳鏂囩殑閮界湅錛岃鐤紒鐪嬬湅鎴戞梺杈圭殑瀹朵紮錛岀幇鍦ㄥ氨鏉ヨ璇翠粬錛屼粬鏄祴璇曢儴鐨勶紝浠栫殑宸ヤ綔灝辨槸涓嶅仠鐨勮嶅悇縐嶅悇鏍風殑娓告垙錛堝眳鐒惰嶆父鎴忕湡鐨勮兘鎵懼埌宸ヤ綔錛屾垜綆鐩翠負鎴戜滑瀛︽牎鐨勫厔寮熶滑鎰熷埌嬈f叞錛夛紝鏈夌殑鏃跺欑綉閫熸瘮杈冨崱錛屼粬娌℃硶鑰嶆父鎴忥紝灝卞彧鑳藉灞堜竴涓嬬湅灝忚錛岃繖鏍風殑宸ヤ綔璁╂垜緹℃厱鐨勪笉琛屻傚伓灝旂湅鍒頒粬鍐嶄笉鏂殑鎶勫綍鎴夸駭淇℃伅錛屽氨闂粬鏄惁瑕佷拱鎴褲備粬璇達紝鎭┿傛垜灝辯撼闂蜂簡錛岀湅涓婂幓騫寸邯杞昏交鐨勫氨鎯蟲埧瀛愶紝鍏徃鑰嶆父鎴忕殑闅句笉鎴愭嬁8K涓涓湀錛熺戶緇棶鍒幫紝鈥滀綘宸ヤ綔鍑犲勾浜嗗摝錛熼兘鏈夐挶涔版埧浜嗭紵鈥濃滄垜宸ヤ綔浜嗛兘浜斿勾浜嗭紝鎴戜竴涓湀1500錛屼竴騫村瓨涓嶅埌5000銆傞潬鑷繁鐨勮瘽閮戒笉鐭ラ亾浠涔堟椂鍊欐墠鑳戒拱鍝︺併傚叾瀹炴槸鎴戠埗姣嶇粰閽便傗濈粓浜庡彂鐜頒竴涓瘮鎴戣繕寮虹殑浜轟簡銆備簨鍚庯紝鎴戠粰鎴戠埜濡堟墦鐢佃瘽姹囨姤鎴戠殑榪戝喌錛岄棽鑱婂埌姝や簨鍎匡紝鍙惉鐢佃瘽閭h竟涓鐗囧瘋闈欙紝鎴戠埜鑰嶅彞鈥滀綘緇欐垜璇磋繖浜涳紝闅句笉鎴愪綘榪樿鎴戜滑緇欎綘鍑嗗閽變拱鎴垮瓙錛熲濓紙涓婂笣浣滆瘉錛屾垜緇濆娌¢偅涔堟兂錛夈?BR> 姣忓ぉ鍚冨崍楗ぇ綰﹀崐灝忔椂涓嶉潰瀵歸偅鍙伓鐨凜RT錛屽叾浣欐椂闂村氨閫冧笉榪囨旦鍔紝鐜板湪鐢ㄥ埌絎旇鏈槸鐖藉摝錛岃嚦灝戜笉鏄疌RT鐨勩傚叕鍙擱噷闈㈠熀鏈笂閮借鐜╁効娓告垙錛岃繕鏈変漢琚洍榪囧笎鍙楓傦紙鎴戜滑閮芥槸騫插湴涓嬬敓鎰忕殑錛岃繕琚漢瀹墮粦鍚冮粦錛燂紒錛夋垜灝辨兂錛屽啓涓湪椹浜庢垜浠叕鍙哥殑鍑犱釜楂樻墜鏉ヨ緇濆鏄皬鑿滀竴紕燂紝浣嗘槸鑷繁鐨勫笎鍙瘋鐩椾簡榪樻槸娌″姙娉曪紝璇翠笉瀹氬氨鏄嚜宸辯殑鏈ㄩ┈鐩楃殑鑷繁鐨勫笎鍙楓?BR> 鍏徃榪樻湁涓涓コ紼嬪簭鍛橈紝浣╂湇鍟娿備粖澶╀篃鏄笁鍏濂寵妭錛屽悜鐗汢鐨勫コ紼嬪簭鍛樿嚧鏁紒
 姣忓ぉ涓嬪崍鍏偣錛屽叾瀹為偅涓椂鍊欐垜閮藉彲浠ョ寮浜嗭紝浣嗘槸鎶鏈儴鎵鏈夊悓鍍氬姞鐝紙闄や簡鎴戯紝鍥犱負鎴戞槸鏂版潵鐨勶紝榪樺仛涓嶄簡浜嬪効銆傦級鎵浠ユ垜涔熶笉濂借蛋鐨勫お蹇紝鎱㈡參鑵捐吘鐨勭(鍒板叚鐐逛竴鍒繪墠紱誨紑鍏徃錛屽洖瀹跺挴銆?BR> 涓婇潰鎵鏈夎鏂囷紝涔熻浣犺繕娌℃劅瑙夊埌杈涜嫤錛屽洜涓烘湁浜涚粏鑺傜殑浜嬪効鍐嶈璇達細
 鎴戞瘡澶╀笂鐝惌涔樺叕杞︼紝澶х害涓鍏辮绔?0鍒嗛挓錛岀粷瀵規湁灝戞棤澶氥備笂鐝繕濂斤紝浜哄茍涓嶅錛涙垜澶ф鎻忚堪涓嬫垜涓嬬彮鐨勬儏鍐碉紝鎴戠涓澶╀笅鐝瓑浜嗕袱杈?9璺悗鎹㈡垚77璺紝緇撴灉澶氭琛屼簡鍥涘崄鍒嗛挓鐨勬牱瀛愶紝鍒板鐨勬椂鍊欓兘蹇?0錛?0浜嗭紝榪樻病鍚冮キ銆傚悗鏉ユ垜鎼?9璺紝澶ф鎯呭喌鏄紝鏈潵鏄墠闂ㄩ忓竵涓婅濺鐨勶紝鎴戝彧鑳戒粠鍚庨棬涓婏紝涓婅濺鍚庤創鍦ㄨ濺闂紝閫斾腑璺繃瑕佷笅杞︾殑鎴戣繕瑕佷粠鍚庨棬涓嬫潵璁╁埆浜轟笅杞︺傛垜闈狅紝榪欎笅鎰熻鍒版瘺澶х埛鐪熶笉瀵癸紝鍟ュ瓙浜哄鍔涢噺澶э紝鐬庢壇錛?BR> 鍥炲埌浣忕殑鍦版柟錛屽悆榪囬キ鐨勬椂闂存槸鏈闅炬墦鍙戠殑銆備互鍓嶅湪瀹剁啲澶滐紝涔熶笉鍙兘鐫$殑澶棭錛屽ぇ姒傛瘡澶╁氨鍗佷竴鐐圭殑鏍峰瓙鐫★紝鏈熼棿鐨勬椂闂村氨涓嶇煡閬撳浣曞鐞嗭紵錛佷竴鍒囧湪瀹舵椂鍊欏氨鐜╁効鐢佃剳錛岀幇鍦ㄨ繛涓數瑙嗛兘鐪嬩笉鍒幫紝鎰熻鑷繁閮戒笌澶栫晫闅旂粷浜嗕竴鏍楓傛瘡澶╁氨鍒板窛澶х殑鏁f暎姝ユ錛岀劧鍚庡洖浣忕殑鍦版柟韜哄湪搴婁笂錛屽彂鍑犳潯鐭俊錛屾墦鍑犱釜鐢佃瘽錛屼究鏃╂棭鐨勭潯鍘匯傝繖涓槸璁╂垜綺劇涓婃渶闅句互蹇嶅彈鐨勫湴鏂廣傛垜闈狅紝鎴戞槸IT浜哄摝錛熶俊鎭椂浠e摝錛燂紒榪欏埌搴曟槸浠涔堣楝肩殑鐢熸椿錛屾垜鏈鍙椾笉浜嗗氨鏄繖涓鐐廣備笉榪囪繕濂斤紝鎴戞槸鍜屾湅鍙嬩竴璧峰嚭鏉ョ殑錛屾櫄涓婅繕鍙互闂茶亰鍑犲彞錛屼笉榪囨兂鎯充互鍚庤鏄竴涓漢鍑洪棬鍦ㄥ錛屾垜浼拌鑷繁鏃╂櫄瑕佺柉銆?BR> 鏅氫笂錛屼功涔熶笉鎯崇湅錛岃鏄互鍚庤繕鏄繖涓牱瀛愶紝鎴戜及璁¤繖杈堝瓙灝卞彧鑳藉綋涓杈堝瓙鐨勫瀮鍦劇▼搴忓憳浜嗐?BR> 鏈夌殑鏃跺欐垜鎯籌紝紼嬪簭鍛樼殑紜潪甯歌緵鑻︼紝鑷繁閫夋嫨榪欐潯閬撹礬瀵逛笉瀵廣傚悗鏉ユ兂浜嗘兂錛屽姫鍔涘仛濂芥瘡涓浠朵簨鍎匡紝鎬繪湁涓澶╂垜鐩鎬俊鑷繁鐨勮兘鍔涘緱鍒伴敾鐐間互鍚庯紝鎴戠浉淇℃佸害鍐沖畾涓鍒囥?BR> 鍞夛紝鐜板湪鍥炲埌瀛︽牎浜嗭紝鐪熺殑寰堝鎰熸偀錛屽ぇ瀹惰繕鏄竴璧峰姫鍔涘惂錛?BR> 鐜板湪鎰熻鍋氱▼搴忕湡鐨勫緢绱紝鑰屼笖浠樺嚭鍜屾敹鍏ユ樉鐒朵笉鏄垚姝f瘮鐨勶紝鐜板湪鏈夌偣涓婁簡璐艱埞鍙堟棤娉曞洖澶達紝浠旂粏鎯蟲兂鍙堟湁鐐圭浉榪芥眰搴撳厠鑸歸暱閭f牱浼犲鐨勪漢鐢燂紝鐭涚浘錛?/P>



lewislau 闃挎湪 2006-03-11 11:18 鍙戣〃璇勮
]]>
銆愬師鍒涖慚FC紼嬪簭璁捐涔嬫潵榫欏幓鑴?/title><link>http://m.shnenglu.com/lewislau/archive/2006/02/18/3320.html</link><dc:creator>lewislau 闃挎湪</dc:creator><author>lewislau 闃挎湪</author><pubDate>Sat, 18 Feb 2006 04:04:00 GMT</pubDate><guid>http://m.shnenglu.com/lewislau/archive/2006/02/18/3320.html</guid><wfw:comment>http://m.shnenglu.com/lewislau/comments/3320.html</wfw:comment><comments>http://m.shnenglu.com/lewislau/archive/2006/02/18/3320.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.shnenglu.com/lewislau/comments/commentRss/3320.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/lewislau/services/trackbacks/3320.html</trackback:ping><description><![CDATA[<P> MFC紼嬪簭璁捐<BR>             涔嬫潵榫欏幓鑴?BR> 棰樿錛氬墠浜涙棩瀛愪竴鐩存兂鍐欒繖涓笢瑗匡紝鍋氫簡涓涓紑澶存斁鍦ㄦ垜鐨凚LOG涓?浣嗘槸鍚嶄負<MFC妗嗘灦紼嬪簭WINMAIN鍑芥暟鍒嗘瀽>)錛屽埌鍚庢潵灝辨病鏈夊啀綆′簡錛屽叾瀹為偅鍙槸鍐板北涓瑙?鍏蜂綋MFC鏄庝箞榪愯鐨勶紝榪樻槸娌℃湁浜ゅ緟娓呮錛岃櫧鐒惰嚜宸辯殑BLOG寰堝皯鏈変漢鍏夐【錛屼絾鏄湰鐫鍋氫簨鍎垮氨瑕佸仛鍒板簳鐨勫績鎬侊紝緇х畫瀹屾垚璇ユ枃銆?BR> 璇存槑錛?銆佹湰鏂囦綔鑰呭湪VS2003涓窡韙唬鐮侊紝姝や唬鐮佷負VS2003涓嫹璐濓紝浣跨敤MFC7銆?BR>       2銆佷笉鍚屾鏋剁殑MFC紼嬪簭鐢辨墍涓嶅悓錛屾湰鏂囦互鍗曟枃妗d負渚嬨?BR>          3銆佹湰鏂囪鑰呴渶瑕佹湁涓瀹氱殑SDK鐨勫熀紜錛屼笉闇瑕佸お澶氾紝鑷沖皯鐭ラ亾瀹冪殑鍩烘湰妗嗘灦鍜屾潵榫欏幓鑴夊嵆鍙紒<BR>          4銆佹枃绔犲彧鎯寵搗鍒拌鏄庝綔鐢紝鎵浠ヤ唬鐮佷細鏈変竴浜涘垹闄ゃ?BR> 瀛FC錛岀珶鐒惰繕涓嶇煡閬揗FC鐨凪AIN鍑芥暟鍦ㄤ粈涔堝湴鏂癸紵鎬庝箞榪愯鐨勶紵瀹炲湪涓嶉珮鏄庛?BR> 鐪嬭繃鍊欐嵎(JJHOU)鑰佸笀鐨勩婃繁鍏ユ祬鍑篗FC銆嬬殑錛屽瀹冧竴瀹氬緢鐔熸倝銆傚懙鍛碉紝鏈枃鏄尞緇欐病鏈夌湅榪囬偅鏈功錛屼絾鏄張寰堝笇鏈涘涔燤FC紼嬪簭璁捐鐨勬湅鍙嬬殑銆傦紙娌℃湁鐪嬭繃閭f湰涔︾殑鏈嬪弸榪樹笉璧跺揩鍘諱拱錛燂級鍏跺疄鏈枃錛屼富瑕佹槸瀵廣婃繁鍏ユ祬鍑篗FC銆嬬鍏珷鐨勪竴涓葷粨鍜岃ˉ鍏呯艦浜嗭紒錛堟湰鏂囨湁璇ヤ功涓嶅悓鐨勫湴鏂癸紝涔熸湁涓浜涚瑪鑰呰嚜宸辯殑瑙佽В錛侊級<BR> 璦褰掓浼犮?BR> 鍋囧浣犵敤AppWizard涓姝ヤ竴姝EXT涓嬫潵錛岀劧鍚庡湪CLASSVIEW涓幓鎵懼WINMAIN鍑芥暟錛岄偅涔堜綘鍙湁澶辨湜銆侻FC鏈澶х殑鐗圭偣鏄粈涔堬紵灝佽錛丮FC鐨勭‘灝佽鐨勫お濂戒簡錛屼互鑷充簬寰堝鎯沖涔燤FC鐨勪漢閮芥湜鑰屽嵈姝ャ傞棽璇濆皯璇達紝榪樻槸緇х畫鎴戜滑浠婂ぉ鐨勮瘽棰橈紝MAIN鍑芥暟錛佸疄璇濆憡璇変綘鍚э紝鍗充嬌浣犳悳绱㈡墍鏈夌殑MFC鐢熸垚鐨勬枃浠訛紝閮芥棤娉曞彂鐜癢INMAIN鐨勫瓧鐪鹼紝閭d箞瀹冨氨榪戝湪浠涔堝湴鏂瑰憿錛?BR> 鎴戠浉淇′綘宸茬粡鎯沖埌錛孧AIN鍑芥暟搴旇鍦ㄤ富瑕佺殑搴旂敤紼嬪簭鏂囦歡涓傞毦閬撴槸鈥滄偍瀹氫箟鐨勭▼搴忓悕.cpp鈥濊繖涓枃浠訛紵涓嶉敊灝辨槸瀹冦傚啀Crtl+F涓涓嬶紝鐪嬫湁娌℃湁鎴戜滑瑕佹壘鐨刉INMAIN鍑芥暟錛熺湅鏉ヤ綘鍙堣澶辨湜浜嗭紝浣嗘槸浣犳敞鎰忔湁榪欐牱涓鍙ワ細<BR> <BR>/////////////////////////////////////////////////////////////////////////////<BR>// The one and only CMyApp object</P> <P> CMyApp theApp;   //鏈漢寤虹珛鐨勫伐紼嬪悕涓篗y銆?BR> <BR> <BR> 鏄笉鏄緢鐗瑰埆錛屽啀娉ㄦ剰涓涓嬮偅鍙ユ敞閲娾淭he one and only CMyApp object鈥濓紝姣忎釜搴旂敤紼嬪簭鏈変笖鍙敤涓涓狢MyApp瀵硅薄銆傛垜鎯充綘搴旇鎯沖埌浜嗭紝WinMain鍑芥暟姣忎釜紼嬪簭涔熷彧鑳芥湁涓涓紝閭d箞榪欎釜鍏ㄥ眬瀵硅薄璺焀inMain鍑芥暟鑲畾鏈夎帿澶х殑鍏崇郴錛熸病閿欙紝鐩鎬俊浣犵殑鐩磋銆?BR> 鐗瑰埆娉ㄦ剰錛氭繁鏅揅++緇嗚妭鐨勪漢涓瀹氱煡閬擄紝鍏ㄥ眬瀵硅薄浼樺厛浜嶮AIN鍑芥暟鎵ц鐨勯亾鐞嗐傚鏋滀綘涓嶇煡閬撲篃娌″叧緋伙紝閭d箞鎴戝湪榪欓噷鍛婅瘔浣狅細鈥滃叏灞瀵硅薄浼樺厛浜嶮IAN鍑芥暟鎵ц錛屼笖鏋勫緩浜庢爤涓紝鍒囪錛屽垏璁幫紒鈥?BR> 鐜板湪錛屾垜浠娣卞叆WinMain榪愯鏈哄埗浜嗭紝紜垏鐨勮錛屽簲璇ユ槸MFC鐨勬満鍒訛紒<BR> 棣栧厛錛岀湅鐪婱FC鐨勫簱鏂囦歡鎶婏紝瀹冭兘緇欐垜浠甫鏉ヨ澶氭儕鍠溿傦紙vc6鐨勭浉搴旂殑鐩綍鏄痋Microsoft Visual Studio\VC98\MFC\SRC錛沄C7鐩稿簲鐨勭洰褰曟槸\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\src\mfc錛?BR> 鐜板湪鎴戜滑灝變粠榪欎釜鍏ㄥ眬涓嬫墜錛屽紑濮嬩粖澶╃殑鏃呴斻?BR> CMyApp theApp; <BR> 姝ゆ椂錛岀郴緇熶細鎵цCMyApp鐨勭埗綾伙紙CWinApp錛夋瀯閫犲嚱鏁幫紝鍐嶆墽琛孋MyApp鐨勬瀯閫犲嚱鏁般傦紙鍏堟湁鑰佺埞錛屽啀鏈夊効瀛愶紒錛夛紝姝ゆ椂灝變細璋冪敤CWinApp鐨勬瀯閫犲嚱鏁般?BR> <BR> CWinApp鐨勬瀯閫犲嚱鏁幫紙鍦╒C鎻愪緵鐨凪FC浠g爜涓互鈥滄枃涓殑涓涓瓧鎴栬瘝緇勨濈殑鏂瑰紡鏌ヨ鍏抽敭瀛楋紝姝ゆ椂鎵撳紑APPCORE.CPP錛屼互涓嬩嬌鐢ㄧ浉鍚屾悳绱㈡柟寮忥紝涓嶅啀澶嶈堪銆傦級鎵懼埌浠ヤ笅鍐呭錛?BR> CWinApp::CWinApp(LPCTSTR lpszAppName)<BR> {<BR>  if (lpszAppName != NULL)<BR>   m_pszAppName = _tcsdup(lpszAppName);<BR>  else<BR>   m_pszAppName = NULL;<BR> <BR>  // initialize CWinThread state<BR>  AFX_MODULE_STATE* pModuleState = _AFX_CMDTARGET_GETSTATE();<BR>  AFX_MODULE_THREAD_STATE* pThreadState = pModuleState->m_thread;<BR>  ASSERT(AfxGetThread() == NULL);<BR>  pThreadState->m_pCurrentWinThread = this;<BR>  ASSERT(AfxGetThread() == this);<BR>  m_hThread = ::GetCurrentThread();<BR>  m_nThreadID = ::GetCurrentThreadId();<BR> <BR>  // initialize CWinApp state<BR>  ASSERT(afxCurrentWinApp == NULL); // only one CWinApp object please<BR>  pModuleState->m_pCurrentWinApp = this;<BR>  ASSERT(AfxGetApp() == this);<BR> ... ...<BR> }<BR> OK錛屽氨鍒拌繖閲屽氨鍙互浜嗭紝浠旂粏鐪嬩笂闈唬鐮侊紝瀹冨凡緇忓畬鎴愪簡搴旂敤紼嬪簭綰跨▼棰濈殑鍚姩錛屽畠緇欎簣浜嗘垜浠▼搴忕殑鐢熷懡銆傜幇鍦ㄨ娉ㄦ剰錛?BR>        pThreadState->m_pCurrentWinThread = this;<BR> pModuleState->m_pCurrentWinApp = this;<BR>     榪欎袱琛屼唬鐮佸叾瀹為兘鏄仛鐨勪竴浠朵簨鍎褲?BR>     榪欐浠g爜鐨勬剰鎬濇槸錛岃幏寰椾簡CMyApp鐨勫叏灞瀵硅薄鐨則his鎸囬拡銆?姝ゆ椂浣犺偗瀹氳鐤戦棶錛屼負浠涔堟槸CMyApp鐨勬寚閽堬紵this鐩墠鏄湪CWinApp涓晩錛?nbsp;  瀵規鎴戠殑絳旀鏄紝鍙槸浣犳槸鐢盋MyApp鐨勫璞″紩鍙戠殑CWinApp鐨勬瀯閫犲晩錛侊紒)榪欎釜鎸囬拡鍙潪涓鑸殑浜虹墿錛岀◢鍚庢垜浠殑寰堝宸ヤ綔閮借闈犲畠瀹屾垚銆?BR>     CWinApp涔嬩腑鐨勬垚鍛樺彉閲忓皢鍥犱負theApp榪欎釜鍏ㄥ眬瀵硅薄鐨勮癁鐢熻岃幏寰楅厤緗拰鍒濆鍊箋?BR>  鏋勯犲畬鐖剁被錛岀幇鍦ㄦ瀯閫犲瓙綾匯傚彲鏄垜浠湅鍒幫紝AppWizard緇欐垜浠殑瀛愮被閲屽畠浠涔堜篃娌″仛錛熸槸鐨勶紝榪欎竴鍒囬兘鍚粠浣犵殑瀹夋帓錛?BR>    CMyApp::CMyApp()<BR>    {<BR> // TODO: add construction code here,<BR> // Place all significant initialization in InitInstance<BR> }<BR> <BR> <BR> <BR>  鎺ヤ笅鏉ュ氨鏄粖澶╃殑涓昏鍎夸簡錛屾悳绱㈠叧閿瓧鈥淲inMain鈥濓紝鍑虹幇寰堝鏂囦歡銆傚埆鎬ワ紝鍥犱負鐜板湪鎴戜滑搴旇鍏堢湅鐪媁inMain鐨勫0鏄庛傛墦寮appmodul.cpp錛?/P> <P>     _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,<BR> LPTSTR lpCmdLine, int nCmdShow)<BR> {<BR> // call shared/exported WinMain<BR> return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);<BR> }<BR> <BR>榪欓噷_tWinMain鏄負浜嗘敮鎸乁NICODE鑰屽懡鍚嶇殑涓涓畯錛岀湡姝h搗浣滅敤鐨勬槸AfxWinMain錛屾敞鎰忕湅鐪嬪畠鐨勫弬鏁幫紝鏄笉鏄拰SDK鐨刉inMain鍑芥暟涓鏍鳳紵<BR> 鐜板湪鍐嶆悳绱笅AfxWinMain錛屽叾瀹炲湪winmain.cpp涓細<BR> <BR>int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,<BR> LPTSTR lpCmdLine, int nCmdShow)<BR>{<BR> ASSERT(hPrevInstance == NULL);</P> <P> int nReturnCode = -1;<BR> CWinThread* pThread = AfxGetThread();<BR> CWinApp* pApp = AfxGetApp();</P> <P> // AFX internal initialization<BR> if (!AfxWinInit(hInstance, hPrevInstance, lpCmdLine, nCmdShow))<BR>  goto InitFailure;</P> <P> // App global initializations (rare)<BR> if (pApp != NULL && !pApp->InitApplication())<BR>  goto InitFailure;</P> <P> // Perform specific initializations<BR> if (!pThread->InitInstance())<BR> {<BR>  if (pThread->m_pMainWnd != NULL)<BR>  {<BR>   TRACE(traceAppMsg, 0, "Warning: Destroying non-NULL m_pMainWnd\n");<BR>   pThread->m_pMainWnd->DestroyWindow();<BR>  }<BR>  nReturnCode = pThread->ExitInstance();<BR>  goto InitFailure;<BR> }<BR> nReturnCode = pThread->Run();<BR>... ...<BR>}<BR> 姝ゆ浠g爜娉ㄦ剰浜斾釜緇嗚妭錛?BR> CWinApp* pApp = AfxGetApp(); <BR> 鎰忎負鑾峰緱瀵硅薄鎸囬拡錛屽叾瀹炲氨鏄垰鎵嶉偅涓猅HIS銆備笉璁板緱浜嗭紵鎸囧悜CMyApp鐨勯偅涓紒榪樺煎緱娉ㄦ剰鐨勬槸錛孉fx鎰忔槸鍏ㄥ眬鐨勶紝闅忔椂浣犻兘鍙互璋冪敤瀹冦?AFX灝辨槸MFC寮鍙戝皬緇勭殑寮鍙戜唬鍙鳳紝鎰忎負Application Framework 浼犺X鍙槸涓轟簡濂界湅錛屾病瀹炲湪鎰忔濓紵錛?<BR> if (!AfxWinInit(hInstance, hPrevInstance, lpCmdLine, nCmdShow))<BR> AfxWinInit瀹屾垚浜嗙嚎紼嬬殑鍒濆鍖栧拰紿楁綾葷殑娉ㄥ唽銆傚叿浣撳弬鐪媋ppinit.cpp涓殑瀹氫箟銆?BR> if (pApp != NULL && !pApp->InitApplication())<BR> 鍏跺疄pApp鍜宲Thread鏄悓涓涓寚閽堬紝閮芥槸鎸囧悜CMyApp鐨勬寚閽堬紝榪欓噷鍥犱負CMyApp涓病鏈夊畾涔塈nitApplication錛屽疄闄呬笂灝辮皟鐢ㄧ殑CWinApp::InitApplication錛堬級錛屽畬鎴愪簡MFC鐨勫唴瀹圭鐞嗐?BR> if (!pThread->InitInstance())<BR> 鍥犱負CMyApp涓敼鍐欎簡瀹冿紝鎵浠ヨ皟鐢–MyApp涓殑錛屽叾瀹炲畠涔熸槸鍒濆鍖栧伐浣溿傛鏃朵篃瀹屾垚浜嗛粯璁ょ獥鍙g被鐨勫畾涔夈傚亣濡備綘鐔熸倝SDK緙栫▼鐨勮瘽錛屼竴瀹氫笉浼氬繕璁扮獥鍙g被鐨勮璁°佹敞鍐屻佸垱寤恒佺幇瀹炲強鏇存柊鐨勬楠わ紝姝ゆ椂MFC浠ヤ負浣犺璁″ソ浜嗛粯璁ょ殑紿楀彛綾匯?BR> 鐜板湪浣犱笉紱佽鐤戦棶,InitApplication()鍜孖nitInstance()鏈変綍涓嶅悓錛?BR> 絳旀鏄紝鍋囧浣犳墽琛屼竴涓▼搴忥紝浜庢槸涓や釜鍑芥暟閮戒細琚皟鐢紱褰撲綘鍦ㄤ笉鍏抽棴鍓嶄竴涓▼搴忕殑鍓嶆彁涓嬶紝鍐嶆墽琛屼竴涓▼搴忥紝閭d箞灝卞彧鎵ц鍚庝竴涓嚱鏁般?BR> nReturnCode = pThread->Run();<BR> 榪欎釜涓姝ラ鍦ㄣ婃繁鍏ユ祬鍑篗FC銆嬩腑琚垚涓虹▼搴忕殑媧繪按婧愬ご錛屽湪鎴戠湅鏉ュ畠灝辨槸浣犲紑杞﹁俯娌歸棬鐨勬楠ゃ傚緟浼氭垜浠細鍏蜂綋闃愯堪錛?BR> <BR> 鍦ㄨ璁$獥鍙g被浠ュ悗錛屽氨搴旇鏄敞鍐岋紝MFC鑷姩璋冪敤(璺寵漿鍒?AfxEndDeferRegisterClass錛圵INCORE.CPP涓級錛屼負浣犳敞鍐屼簡浜斾釜紿楀彛綾伙紝鍒嗗埆鏄細AfxWnd錛孉fxCreateBar錛孉fxMDIFrame錛孉fxFrameOrView錛孉fxOleControl浠ヤ笂紿楀彛綾籑FC灝嗚嚜鍔ㄨ漿鍖栨垚鐙珛鏃犱簩鐨勭被鍚嶏紝渚涘叾璋冪敤銆?BR> 鍦ㄧ獥鍙g殑娉ㄥ唽浠ュ悗錛屽氨搴旇鏄獥鍙g殑鍒涘緩宸ヤ綔錛屾鏃朵細璋冪敤CFrameWnd::Create(),璇ヤ唬鐮佷綅浜嶹INFRM.Cpp涓?BR>BOOL CFrameWnd::Create(LPCTSTR lpszClassName,<BR> LPCTSTR lpszWindowName,<BR> DWORD dwStyle,<BR> const RECT& rect,<BR> CWnd* pParentWnd,<BR> LPCTSTR lpszMenuName,<BR> DWORD dwExStyle,<BR> CCreateContext* pContext)<BR>{<BR> HMENU hMenu = NULL;<BR> if (lpszMenuName != NULL)<BR> {<BR>  // load in a menu that will get destroyed when window gets destroyed<BR>  HINSTANCE hInst = AfxFindResourceHandle(lpszMenuName, RT_MENU);<BR>  if ((hMenu = ::LoadMenu(hInst, lpszMenuName)) == NULL)<BR>  {<BR>   TRACE(traceAppMsg, 0, "Warning: failed to load menu for CFrameWnd.\n");<BR>   PostNcDestroy();            // perhaps delete the C++ object<BR>   return FALSE;<BR>  }<BR> }</P> <P> m_strTitle = lpszWindowName;    // save title for later</P> <P> if (!CreateEx(dwExStyle, lpszClassName, lpszWindowName, dwStyle,<BR>  rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top,<BR>  pParentWnd->GetSafeHwnd(), hMenu, (LPVOID)pContext))<BR> {<BR>  TRACE(traceAppMsg, 0, "Warning: failed to create CFrameWnd.\n");<BR>  if (hMenu != NULL)<BR>   DestroyMenu(hMenu);<BR>  return FALSE;<BR> }</P> <P> return TRUE;<BR>}<BR> <BR> 鍏朵腑瀹屾垚浜嗙獥鍙g殑鍒涘緩宸ヤ綔錛岄噷闈㈣繕娑夊強鎵╁睍椋庢牸鐨勮皟鐢–reateEx錛屽叿浣撶粏鑺傝鍙傜湅MSDN銆?BR> <BR> 姝ゆ椂浣犱笉紱佽闂紝鎴戜滑鐨勪簨鍎塊兘璁㎝FC鍋氬畬浜嗭紵宸ヤ笟鍖栫敓浜у嚭鏉ョ殑紿楀彛閮芥槸鍗冪瘒涓寰嬪晩錛屾垜瑕佹湁鎴戣嚜宸辯殑椋庢牸錛?BR> 鍒ワ紝MFC緇欑敤鎴鋒彁渚涗簡涓涓慨鏀圭獥鍙h璁$殑鏈轟細閭e氨鏄細PreCreateWindow(CREATESTRUCT& cs) 浣犲湪MSDN涓煡璇竴涓婥REATESTRUCT榪欎釜緇撴瀯浣擄紝浣犱細鍙戠幇瀹冨拰鎴戜滑鐨凜reateWindow鍑犱箮鏄竴妯′竴鏍鳳紝榪欎釜灝辨槸MFC鐣欑粰浣犱慨鏀圭獥鍙g殑涓涓満浼氥傚湪PreCreateWindow鏃訛紝浼氳煩鍒癈Wnd::PreCreateWindow錛岄噷闈㈡湁涓涓畯錛欰fxDeferRegisterClass錛屽畠鐨勪綔鐢ㄦ槸錛氬鏋滆紿楀彛綾繪病鏈夎娉ㄥ唽錛岄偅涔堝氨娉ㄥ唽瀹冿紱濡傛灉娉ㄥ唽浜嗭紝灝變粈涔堜篃涓嶇錛?BR> 紿楀彛綾葷殑璁捐銆佹敞鍐屻佸垱寤洪兘宸茬粡瀹屾垚錛岀幇鍦ㄥ彧鍓╀笅鏇存柊鍜屾樉紺轟簡銆傝繖浜涘伐浣滈兘浜ょ敱 CMyApp::InitInstance()瀹屾垚錛?BR>  m_pMainWnd->ShowWindow(SW_SHOW);<BR>  m_pMainWnd->UpdateWindow();<BR> 鐜板湪if (!pThread->InitInstance())鐨勫伐浣滃凡緇忓畬鎴愶紝鎸夌収MAIN鍑芥暟鐨勫唴瀹癸紝鎺ヤ笅鏉ヨ錛歯ReturnCode = pThread->Run()浜?BR> 姝ゆ椂搴旇璋冪敤CMyApp鐨凴un()鍑芥暟錛屼絾鏄湪CMyApp綾諱腑錛屾牴鏈病鏈夊0鏄庢垨瀹氫箟榪欐牱涓涓嚱鏁幫紝鏍規嵁澶氭佹х殑鍘熸潵錛屾寚閽堣縼鍗囷紝鎸囧悜CWinApp::Run()錛屽叾浠g爜浣嶄簬APPCORE.CPP涓細<BR> <BR> int CWinApp::Run()<BR> {<BR>  if (m_pMainWnd == NULL && AfxOleGetUserCtrl())<BR>  {<BR>   // Not launched /Embedding or /Automation, but has no main window!<BR>   TRACE(traceAppMsg, 0, "Warning: m_pMainWnd is NULL in CWinApp::Run - quitting application.\n");<BR>   AfxPostQuitMessage(0);<BR>  }<BR>  return CWinThread::Run();<BR> }<BR> <BR> 鏈鍚庝綘浼氬彂鐜幫紝瀹冪敱璋冪敤浜嗕竴涓狢WinThread::Run()錛屾鏃朵綘灝辯湅涓嶅埌CWinThread::Run()鐨勪唬鐮佷簡錛堣嚦灝戠瑪鑰呮病鏈夋壘鍒幫紝鍥犱負寰蔣鍙彁渚涗簡閮ㄥ垎MFC浠g爜銆傦級浣嗘槸浣犲彲浠ュ湪MSDN涓壘鍒癈WinThread::Run()鐨勬弿榪幫細<BR> Run 鎺у埗綰跨▼鐨勫嚱鏁般傚寘鍚秷鎭車銆備竴鑸笉閲嶅啓銆?<BR> 鍐嶅叿浣撶偣灝辨槸錛?BR> Run acquires and dispatches Windows messages until the application receives a WM_QUIT message. If the thread's message queue currently contains no messages, Run calls OnIdle to perform idle-time processing. Incoming messages go to the PreTranslateMessage member function for special processing and then to the Windows function TranslateMessage for standard keyboard translation. Finally, the DispatchMessage Windows function is called. <BR> Run is rarely overridden, but you can override it to implement special behavior.<BR> This member function is used only in user-interface threads.<BR> 鍘熸潵瀹冩妸娑堟伅寰幆鍖呰浜嗕竴涓嬶紝鍦∕FC涓О涓烘秷鎭槧灝勶紙message map錛夌殑涓滆タ錛佽嚦浜庢秷鎭槧灝勭殑鍏蜂綋緇嗚妭鏈漢浼氬彟鍐欐枃绔犺鏄庯紒<BR> OK錛孧FC涓嶅啀紲炵錛屾帉鎻′簡瀹冪殑鏉ラ緳鍘昏剦錛屽啀鐪嬪叾浠栫殑MFC涔︾睄鐨勬椂鍊欙紝灝辯煡閬撴垜璇ユ庝箞鍋氾紵涓轟粈涔堟垜瑕佽繖鏍峰仛錛熻搗鍒頒簡鐭ュ叾鐒跺張鐭ュ叾鎵浠ョ劧鐨勬晥鏋滐紝榪欏氨鏄垜鎵榪芥眰鐨勬妧鏈鐣屻?BR> <BR> </P><img src ="http://m.shnenglu.com/lewislau/aggbug/3320.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/lewislau/" target="_blank">lewislau 闃挎湪</a> 2006-02-18 12:04 <a href="http://m.shnenglu.com/lewislau/archive/2006/02/18/3320.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>淇偧涔嬮亾http://m.shnenglu.com/lewislau/archive/2006/02/01/3052.htmllewislau 闃挎湪lewislau 闃挎湪Wed, 01 Feb 2006 15:00:00 GMThttp://m.shnenglu.com/lewislau/archive/2006/02/01/3052.htmlhttp://m.shnenglu.com/lewislau/comments/3052.htmlhttp://m.shnenglu.com/lewislau/archive/2006/02/01/3052.html#Feedback1http://m.shnenglu.com/lewislau/comments/commentRss/3052.htmlhttp://m.shnenglu.com/lewislau/services/trackbacks/3052.html淇偧涔嬮亾
    棣栧厛澹版槑鎴戜笉鏄竴涓滀漢鎵嶁濓紝鎴戞槸涓涓瀮鍦撅紝涓嶈繃鎴戣繕鍦ㄨ嫤蹇冧慨鐐兼垚涓烘墍璋撶殑鈥滀漢鎵嶁濓紒鍦ㄦ垜鈥滀慨鐐尖濊繃紼嬩腑欏挎湁鎵鎮燂紝鍐欎簺闅忕瑪錛岄殢渚挎秱楦︿箣絎斻?BR>    浣嗗嚒涓栭棿涓囩墿錛屾棤涓鑳藉閫冭劚涓涓滈亾鈥濆瓧錛佹垜涓嶆槸閬撴暀鐨凢ANS錛屼絾鏄垜榪樻槸瀵瑰叾鎵璋撶殑鈥滈亾鈥濓紝瀛樻湁鏁剰錛佸彲鎯滃皬鐢熶慨琛屽お嫻咃紝榪樿涓嶅嚭涓涓墍浠ョ劧鍑烘潵銆傚彲鏄紝姣忔瘡鍥炴兂浠ュ墠鑷繁璧拌繃鐨勭偣鐐規淮婊達紝鑻ユ湁鎵鎮燂紵錛?BR>    姣忔鐪嬩功瀛︿範鎶鏈殑鏃跺欙紝鎬昏寰楀皯浜嗕簺浠涔堬紵錛?BR>    浠庣幇鍦ㄥ紑濮嬫垜搴旇姣忓ぉ闂嚜宸憋細鈥滄妧鏈繘姝ヤ簡鍚楋紵錛佹濇兂鍛紵鏂囧寲鍛紵鈥?BR>    鎶鏈紝鏄ぇ瀹墮兘闈炲父鎯寵拷姹傜殑銆傛濇兂鏄彲浠ヤ氦嫻佺殑銆傛枃鍖栧憿錛熶笉瑕佽涓嶇煡閬撴枃鍖栦負浣曠墿錛熶腑鍗庝簲鍗冨勾鐨勪紶緇熸枃鍖栵紝鍚勪綅閮戒慨鐐肩殑濡備綍錛燂紒鎴戠煡閬撹嚜宸卞凡緇忕己澶變簡榪欎竴璇劇▼錛屾墍浠ヤ粠鐜板湪寮濮嬫垜瑕佸姫鍔涜ˉ涓娿?BR>    闅忎究娑傞甫涔嬬瑪錛屽彧鏄彁閱掑悇浣嶏紝鎶鏈箣璺極闀胯岄仴榪滐紝灝辯畻浣犺蛋鍒板敖澶翠篃涓嶄竴瀹氱О鐨勪笂鈥滃悎鏍肩殑浜烘墠鈥濄?BR>    鎴戜滑緇忓父璇粹滄彁楂樼煡璇嗘枃鍖栤濓紝褰蜂經澶у娌℃湁娣卞埢鐨勪綋鍛寵繖鍙ヨ瘽錛氱煡璇嗘槸鐭ヨ瘑錛屾枃鍖栨槸鏂囧寲錛屼袱鑰呮槸涓嶇浉鍚岀殑錛?BR>    鎵浠ュ湪姝ゆ彁閱掑悇浣嶁滃湪閿洏涓婅曡樻湭鏉ョ殑浜衡濓紝鍦ㄤ綘淇偧鎶鏈殑鍚屾椂錛屽埆蹇樹簡鏂囧寲淇負鐨勬彁楂橈紝褰撶劧鎬濇兂涔熸槸寰堥噸瑕佺殑錛?BR>

lewislau 闃挎湪 2006-02-01 23:00 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲影院在线观看| 欧美极品欧美精品欧美视频| 欧美在线视频免费观看| 亚洲欧美日韩电影| 亚洲日本欧美| 亚洲承认在线| 精品999网站| 伊人成人在线视频| 亚洲精品你懂的| 亚洲特级片在线| 久久久久久免费| 999亚洲国产精| 99亚洲一区二区| av成人老司机| 欧美精品久久久久久| 亚洲激情成人在线| 开元免费观看欧美电视剧网站| 国产精品热久久久久夜色精品三区| 国产精品裸体一区二区三区| 欧美性大战久久久久久久蜜臀| 国产精品青草综合久久久久99| 国产亚洲亚洲| 亚洲三级国产| 欧美一级片一区| 欧美大片va欧美在线播放| 亚洲精品你懂的| 久久久久久久一区二区| 欧美激情网友自拍| 亚洲综合国产| 欧美国产欧美综合| 久久久国产精品一区| 欧美精品一区二区三区蜜桃 | 欧美久久婷婷综合色| 国产精品成人播放| 亚洲韩日在线| 久久精品欧美日韩| 亚洲精品一区中文| 另类成人小视频在线| 国产精品亚洲欧美| 宅男噜噜噜66国产日韩在线观看| 久久美女性网| 亚洲欧美国产高清| 欧美日本久久| 亚洲国产婷婷香蕉久久久久久99| 午夜性色一区二区三区免费视频| 亚洲国产欧美一区二区三区久久 | 国产精品vvv| 亚洲福利在线视频| 久久精品电影| 亚洲午夜精品久久久久久浪潮| 欧美sm极限捆绑bd| 在线成人中文字幕| 久久久水蜜桃| 欧美一区二区三区播放老司机| 欧美天天影院| 91久久精品一区二区三区| 久久先锋资源| 久久精品视频导航| 国产午夜精品美女视频明星a级 | 午夜在线观看免费一区| 欧美三级乱码| 亚洲一区二区免费在线| 欧美在线观看日本一区| 亚洲精品中文字幕女同| 久久久亚洲国产天美传媒修理工| 亚洲愉拍自拍另类高清精品| 亚洲香蕉伊综合在人在线视看| 玖玖综合伊人| 亚洲国产精品黑人久久久| 欧美不卡在线视频| 久久久久久久一区二区| 国产一区二区无遮挡| 久久久久久久久岛国免费| 欧美亚洲一区| 尤物九九久久国产精品的分类| 久久精品国产91精品亚洲| 夜夜嗨av一区二区三区四季av| 欧美日韩理论| 欧美一区二区三区免费观看 | 亚洲视频在线观看视频| 亚洲欧美日韩另类精品一区二区三区 | 男男成人高潮片免费网站| 亚洲人成网站色ww在线| 亚洲精品国产精品国自产观看浪潮 | 亚洲风情在线资源站| 亚洲第一精品影视| 欧美成人国产va精品日本一级| 在线免费观看一区二区三区| 欧美h视频在线| 久久精品国语| 亚洲激情六月丁香| 中文亚洲免费| 国内揄拍国内精品久久| 亚洲国产成人午夜在线一区| 欧美日韩国产va另类| 午夜亚洲视频| 葵司免费一区二区三区四区五区| 亚洲高清色综合| 一区二区三区国产| 在线观看不卡av| 一区二区福利| 亚洲国产另类 国产精品国产免费| 亚洲精品中文字幕女同| 国产真实久久| 一二美女精品欧洲| 国内精品视频666| 亚洲精品一区在线观看| 伊人成人在线视频| 日韩视频中文字幕| 国产精品久久久久99| 午夜精品亚洲| 久久这里只精品最新地址| 亚洲欧美日本视频在线观看| 久久久久久电影| 亚洲欧美另类在线观看| 欧美国产精品v| 欧美在线观看你懂的| 欧美日韩精品一区二区| 欧美不卡激情三级在线观看| 亚洲欧美一区二区激情| 亚洲国产网站| 久久国产精品久久久久久| 91久久久久久国产精品| 亚洲视频精选在线| 亚洲精品免费观看| 久久婷婷久久| 久久人人97超碰精品888 | 国产精品狠色婷| 国产精品高潮呻吟视频| 亚洲黄一区二区三区| 亚洲午夜精品久久久久久app| 亚洲国产精品成人一区二区 | 久久黄金**| 国产精品一区二区三区免费观看| 亚洲蜜桃精久久久久久久| 亚洲精品欧美日韩专区| 久久青青草综合| 噜噜爱69成人精品| 激情成人中文字幕| 久久精品国产亚洲5555| 欧美中日韩免费视频| 国产美女精品视频| 亚洲欧美另类久久久精品2019| 一区二区三区产品免费精品久久75 | 亚洲欧美精品中文字幕在线| 欧美激情国产日韩精品一区18| 毛片一区二区三区| 久久亚洲美女| 精品成人国产| 久久视频在线看| 欧美阿v一级看视频| 亚洲人成绝费网站色www| 欧美精品在线观看91| 日韩小视频在线观看| 亚洲综合欧美日韩| 国产色综合网| 久久精品国产欧美激情| 久久综合网络一区二区| 在线观看视频一区二区| 国产精品国产一区二区| av成人免费在线| 性欧美激情精品| 国产亚洲一本大道中文在线| 久久美女性网| 欧美福利影院| 一区二区三区四区五区精品视频 | 国产精品一区二区在线| 欧美一级理论性理论a| 免费看成人av| 亚洲午夜一区| 国语自产精品视频在线看一大j8| 久久裸体视频| 99国产精品自拍| 久久精品国产99| 亚洲精品一区在线观看香蕉| 国产精品久久久一区二区三区| 欧美亚洲免费在线| 极品日韩av| 国产精品成人一区二区艾草| 久久精品国产亚洲aⅴ| 日韩一级精品视频在线观看| 久久久美女艺术照精彩视频福利播放| 在线成人av网站| 欧美日韩国内自拍| 久久久精品性| 一区二区高清| 亚洲电影免费观看高清完整版在线 | 美女视频黄免费的久久| 一本色道久久综合亚洲精品高清| 国产欧美视频一区二区| 欧美成年视频| 久久久久高清| 亚洲欧美精品在线| 亚洲精品免费电影| 蜜臀va亚洲va欧美va天堂| 午夜欧美视频| 一区二区三区鲁丝不卡| 亚洲第一在线视频| 国产精品捆绑调教| 欧美激情视频一区二区三区免费 |