锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产另类久久久精品 ,久久久久无码精品国产不卡,久久亚洲天堂http://www.shnenglu.com/k71983/category/7061.html鎴戠煡閬撳茍涓嶆槸 鎵鏈夐笩鍎塊兘椋炵繑 zh-cnWed, 24 Sep 2008 05:11:58 GMTWed, 24 Sep 2008 05:11:58 GMT60緲昏瘧-C++鏈綆鍗曠殑windows紼嬪簭 The Simplest Windows Programhttp://www.shnenglu.com/k71983/archive/2008/09/23/62560.html鑱傚厓鏈?/dc:creator>鑱傚厓鏈?/author>Tue, 23 Sep 2008 03:01:00 GMThttp://www.shnenglu.com/k71983/archive/2008/09/23/62560.htmlhttp://www.shnenglu.com/k71983/comments/62560.htmlhttp://www.shnenglu.com/k71983/archive/2008/09/23/62560.html#Feedback2http://www.shnenglu.com/k71983/comments/commentRss/62560.htmlhttp://www.shnenglu.com/k71983/services/trackbacks/62560.html 鏉ヨ嚜錛歨ttp://www.relisoft.com/win32/winnie.html
璇戯細鑱傚厓鏈?
1. The Simplest Windows Program
1.鏈綆鍗曠殑Windows紼嬪簭

Before you can even begin thinking about programming in Windows, you have to be able to understand how this simple program works.

鍦ㄤ綘寮濮嬫兂濡備綍鍦╳indows涓嬬紪紼嬩箣鍓嶏紝浣犲繀欏昏寮勬竻妤氫笅闈㈣繖涓畝鍗晈indows紼嬪簭鐨勫伐浣滃師鐞嗐?

Windows API calls are highlighted in blue and Windows specific data types are shown in green. I will also usually put a double colon in front of API calls. In C++, that simply means that I'm calling a global function, in case there is some ambiguity.

鎴戠敤钃濊壊鏉ユ爣璇哤indows鐨凙PI璋冪敤錛岀敤緇胯壊鏉ユ爣璇哤indows涓殑鐗規畩鐨勬暟鎹被鍨嬨傚悓鏃舵垜鍦ˋPI鍑芥暟鐨勫墠闈㈡斁緗簡涓瀵瑰啋鍙?:銆傚湪C++涓紝榪欏鍐掑彿灝辨槸鍛婅瘔緙栬瘧鍣ㄦ垜鍦ㄨ皟鐢ㄤ竴涓叏灞鍑芥暟銆傜敱浜庢湁鏃跺欐湁鍚屽悕鐨勫嚱鏁幫紝涓轟簡涓嶅紩璧鋒販娣嗭紝鍦ㄥ墠闈㈡斁緗啋鍙鋒槸涓縐嶅緢濂界殑鍋氭硶

Sources (zipped file 4k) are right here. Remember to compile them as a Windows application. For instance, in Visual C++ select File.New.Projects.Win32 Application. Otherwise you'll get the error: unresolved external _main. (I provided project file Winnie.dsp for those of you who use MS VC++ 6.0 and Winnie.sln for the users of VC++ 7.0)

鎴戞彁渚涗簡婧愪唬鐮?涓涓?k澶у皬鐨勫帇緙╂枃浠?銆傝璁頒綇瑕佹妸瀹冧滑緙栬瘧鎴愪竴涓獁indows搴旂敤紼嬪簭鑰屼笉鏄痺indows鎺у埗鍙扮▼搴忋傚惁鍒欙紝浣犲氨浼氬緱鍒版壘涓嶅埌main鍑芥暟鐨勯敊璇傚湪VC++6.0涓紝鎴戜滑鍙互閫氳繃閫夋嫨File鈥斺擭ew Projects鈥斺擶in32 Application鏉ュ垱寤轟竴涓獁indows搴旂敤紼嬪簭鐨勫伐紼嬨傚綋鐒訛紝浣犵敤涓嶇潃榪欎箞鎷呭績錛屾垜宸茬粡鎻愪緵浜嗕袱涓仛濂界殑宸ョ▼鏂囦歡緇欎綘銆備竴涓槸winnie.dsp錛屼綘鍙互鍦╒C++6.0涓嬩嬌鐢ㄣ備竴涓槸Winnie.sln錛屼綘鍙互鍦╒C++7.0涓嬩嬌鐢ㄣ?

First, in a Windows program, you have to define a Window Class, the "class" of window(s) that will be displayed by your application (not a C++ class). In our case we will display only one window, but still, we need to give Windows some minimal information about its Class. The most important part of the WinClass (now, that's a C++ class that describes the Window Class) is the address of the callback procedure, or the Window Procedure. Windows is supposed to call us--Windows sends messages to our program by calling this procedure.

濂戒簡錛岃鎴戜滑鏉ョ湅鐪嬪浣曞啓榪欎釜鏈綆鍗曠殑紼嬪簭鍚с傞鍏堬紝鍦ㄤ竴涓獁indows紼嬪簭閲岄潰錛屼綘闇瑕佸畾涔変竴涓獥鍙g被錛屾敞鎰忚繖涓被鐨勬蹇典笉鍚屼簬C++涓殑綾伙紝榪欎釜紿楀彛綾葷浉褰撲簬C璇█涓殑緇撴瀯浣擄紝浣犳妸榪欎釜緇撴瀯浣撳~濂戒簡錛岀劧鍚庝綘鐨勫簲鐢ㄧ▼搴忓氨浼氭牴鎹綘濉殑榪欎簺淇℃伅鏉ユ樉紺虹獥鍙c傚湪鎴戜滑鐨勪緥瀛愰噷闈紝鎴戜滑浠呬粎鏄劇ず涓涓獥鍙c備絾鏄氨綆楁槸榪欐牱錛屾垜浠篃蹇呴』瑕佺粰鎴戜滑鐨勭獥鍙f渶灝戠殑紿楀彛綾諱俊鎭傝屽叾涓渶閲嶈鐨勯儴鍒嗗氨鏄洖璋冨嚱鏁頒簡錛屾湁鏃跺欐垜浠篃縐板畠涓虹獥鍙h繃紼嬨傚叾瀹炶繖鏄竴涓嚱鏁版寚閽堬紝姣忔紼嬪簭闇瑕佸鐞嗘秷鎭殑鏃跺欙紝windows灝遍氳繃榪欎釜鍑芥暟鎸囬拡鏉ヨ皟鐢ㄦ垜浠啓濂界殑鍥炶皟鍑芥暟銆傛槸鐨勶紝浣犵湅鍒幫紝鏄痺indows璋冪敤鎴戜滑緙栧啓鐨勫嚱鏁般備綘榪樿寰楀嚱鏁版寚閽堝悧錛熷鏋滀笉鏄緢娓呮錛屽彲浠oogle涓涓嬶紝o(∩_∩)o…

Notice the declaration of WindowProcedure. Windows calls it with a handle to the window in question, the message, and two data items associated with the message, the paramters, WPARAM and LPARAM.

璁╂垜浠湅鐪媁indowProcedure(紿楀彛榪囩▼銆佸洖璋冨嚱鏁?鐨勫畾涔夈備粩緇嗙湅涓涓嬶紝絎竴涓嚱鏁版槸涓涓彞鏌勶紝涔熷氨鏄釜鏁存暟銆俉indows鐢ㄥ畠鏉ュ尯鍒槸鍝釜紿楀彛銆傜劧鍚庢槸娑堟伅錛岀劧鍚庢槸涓庢秷鎭叧緋誨瘑鍒囩殑涓や釜鍙傛暟WPARAM鍜孡PARAM銆傝繖涓垜鏈潵鎯寵涓涓嬶紝鐣欏埌浠ュ悗鍚э紝姣曠珶鍘熸枃涓湪榪欓噷娌℃湁璁層?

In WinClass we also have to specify things like the program instance handle HINSTANCE, the mouse cursor (we just load the standard arrow cursor), the brush to paint the window's background (we chose the default window color brush), and the symbolic name of our class (you don't have to understand the meaning of all those yet).

鍦ㄤ笅闈㈢殑WinClass綾諱腑鎴戜滑蹇呴』緇欎竴浜涚獥鍙g被鐨勫瓧孌佃祴鍊鹼紝濡傜獥鍙g殑瀹炰緥鍙ユ焺HINSTACE,榧犳爣鍏夋爣(鎴戜滑浠呬粎鍔犺澆浜嗘爣鍑嗙殑綆ご榧犳爣)錛岀敾紿楀彛鑳屾櫙鐨勭敾鍒?鎴戜滑鐢ㄧ殑鏄獥鍙g己鐪佺殑鑳屾櫙棰滆壊鐢誨埛)錛屾渶鍚庤繕鏈夌獥鍙g被鐨勫悕瀛?紿楀彛綾葷殑鍚嶅瓧鏈濂藉拰鍒漢鐨勪笉鍚?.(褰撶劧錛岀幇鍦ㄤ綘涓嶉渶瑕佸紕鏄庣櫧榪欎簺鍙傛暟鐨勬剰涔?

Once all the fields of WNDCLASS are filled, we register the class with the Windows system.

涓鏃︽垜浠妸WNDCLASS緇撴瀯浣撳~瀹屼簡錛屾垜浠氨閫氳繃璋冪敤RegisterClass鍑芥暟鍦╳indows緋葷粺涓敞鍐屾垜浠殑紿楀彛綾匯傚ソ浜嗭紝鍏堢湅鐪嬫垜鏄庢牱灝佽WNDCLASS鍒頒竴涓猈inClass綾諱腑鍘葷殑銆?

#include <windows.h>
LRESULT CALLBACK WindowProcedure
    (HWND hwnd, unsigned int message, WPARAM wParam, LPARAM lParam);
class WinClass
{
public:
    WinClass (WNDPROC winProc, char const * className, HINSTANCE hInst);
    void Register ()
    {
        ::RegisterClass (&_class);//now we don’t deal with the error
    }//we will process the error in the next version
private:
    WNDCLASS _class;//define a private WNDCLASS object member
};

WinClass::WinClass
    (WNDPROC winProc, char const * className, HINSTANCE hInst)
{
    _class.style = 0;
    _class.lpfnWndProc = winProc; // window procedure: mandatory
    _class.cbClsExtra = 0;
    _class.cbWndExtra = 0;
    _class.hInstance = hInst;         // owner of the class: mandatory
    _class.hIcon = 0;
    _class.hCursor = ::LoadCursor (0, IDC_ARROW); // optional
    _class.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1); // optional
    _class.lpszMenuName = 0;
    _class.lpszClassName = className; // mandatory
}
Once the Window Class is registered, we can proceed with the creation of a window. This is done by calling the CreateWindow API. It takes a lot of arguments: the name of the window class that we have just registered, the caption that will appear in the title bar, window style, position, size, and the application instance. The rest of the arguments, for the time being, will be left equal to zero.

涓鏃︾獥鍙g被娉ㄥ唽鎴愬姛錛屾垜浠氨鍙互鐢ㄥ畠鏉ュ垱寤轟竴涓獥鍙c傛垜浠氳繃璋冪敤CreateWindow榪欎釜API鍑芥暟鏉ュ畬鎴愬畠銆傚畠鏈夊緢澶氬弬鏁幫紝榪欏彲鑳借浣犳湁鐐圭儲錛屼笉榪囦笉瑕佽繘錛屼綘鍙鍐欎竴嬈″氨濂戒簡銆傝繖浜涘弬鏁板寘鎷細鎴戜滑鍒氬垰娉ㄥ唽濂界殑紿楀彛綾葷殑鍚嶅瓧(榪欎釜瑕佹槸鎼為敊浜嗭紝浣犵殑紿楀彛鍙兘灝卞嚭涓嶆潵浜?,鎴戜滑紿楀彛鐨勬爣棰樻爮涓婄殑鏍囬錛岀獥鍙g殑鏍峰紡錛屼綅緗紝澶у皬榪樻湁搴旂敤紼嬪簭鐨勫疄渚嬪彞鏌勩傚墿涓嬬殑鍙傛暟鏆傛椂鎴戜滑榪樹笉闇瑕佺敤鍒幫紝鎴戜滑鎶婂畠浠垵濮嬪寲涓?銆?

This part of the program can also be encapsulated into a C++ class, WinMaker.

紼嬪簭鐨勮繖閮ㄥ垎涔熻鎴戝皝瑁呭埌浜嗕竴涓狢++鐨勭被WinMaker褰撲腑銆?

The window will not appear on the screen until you tell Windows to show it.

灝辯畻浣犲垱寤哄ソ浜嗙獥鍙o紝浣嗕綘榪樻槸鐪嬩笉鍒幫紝浣犲繀欏昏皟鐢⊿howWindow鍑芥暟璁╁畠鏄劇ず銆?
class WinMaker
{
public:
    WinMaker (): _hwnd (0) {}
    WinMaker (char const * caption, 
              char const * className,
              HINSTANCE hInstance);
    void Show (int cmdShow)
    {
        ::ShowWindow (_hwnd, cmdShow);
        ::UpdateWindow (_hwnd);
    }
protected:
    HWND _hwnd;
};
WinMaker::WinMaker (char const * caption, 
                    char const * className,
                    HINSTANCE hInstance)
{
    _hwnd = ::CreateWindow (
        className,            // name of a registered window class
        caption,              // window caption
        WS_OVERLAPPEDWINDOW,  // window style
        CW_USEDEFAULT,        // x position
        CW_USEDEFAULT,        // y position
        CW_USEDEFAULT,        // witdh
        CW_USEDEFAULT,        // height
        0,                    // handle to parent window
        0,                    // handle to menu
        hInstance,            // application instance
        0);                   // window creation data
}
A Windows program is event-driven. It means that you, as a programmer, are supposed to be on the defensive. The user will bombard Windows with various input actions, and Windows will bombard your program with messages corresponding to these actions. All you have to do is to respond to these messages. The picture below shows schematically how it works.

Windows紼嬪簭鏄簨浠墮┍鍔ㄧ殑銆傝繖灝辨槸璇翠綘浣滀負涓涓獁indows紼嬪簭鍛橈紝鎵鍋氱殑搴旇鏄槻寰″紡緙栫▼銆傚叾瀹炰篃娌℃湁榪欎箞涓ラ噸銆傚叿浣撴潵璇村氨鏄紝鐢ㄦ埛浼氬彂緇檞indows澶氱杈撳叆琛屼負錛岃寃indows鎶婅繖浜涜緭鍏ョ敤娑堟伅鐨勬柟寮忓彂緇欎綘鐨勭▼搴忋傝屼綘錛屾墍鍋氱殑灝辨槸閽堝姣忎竴涓秷鎭湪鍥炶皟鍑芥暟涓仛鍑哄鐞嗐備笅闈㈢殑榪欏紶鍥劇ず鎰忔х殑璇存槑浜嗚繖涓繃紼嬨傚浘鍦ㄤ笅涓欏電殑涓嬩竴欏碉紝o(∩_∩)o…

Windows gets various events from the keyboard, the mouse, the ports, etc. Each event is quickly converted into a message. Windows (the operating system) dispatches messages to appropriate windows. For instance, all keyboard messages go to the window that currently has the input focus (the active window). Mouse messages are dispatched according to the position of the mouse cursor. They usually go to the window that is directly under the cursor (unless some program captured the mouse).

棣栧厛,windows緋葷粺浠庨敭鐩樸侀紶鏍囥佺鍙g瓑絳夊悇縐嶈澶囦腑鑾峰緱鍚勭浜嬩歡銆傛瘡涓簨浠惰蹇熺殑杞崲涓烘秷鎭俉indows鍒嗘淳榪欎簺娑堟伅緇欏悎閫傜殑紿楀彛銆備婦涓緥瀛愶紝鎵鏈夌殑閿洏娑堟伅閮戒細浼犵粰褰撳墠鍏鋒湁杈撳叆鐒︾偣鐨勭獥鍙?涔熷氨鏄墍璋撶殑媧誨姩紿楀彛)銆傞紶鏍囨秷鎭垯浼氭牴鎹紶鏍囧厜鏍囨墍鍦ㄧ殑浣嶇疆鍒嗘淳緇欑浉搴旂殑紿楀彛銆傝繖浜涚獥鍙i氬父鏄洿鎺ヤ綅浜庡厜鏍囦笅鐨勭涓涓獥鍙?闄ら潪鏈夋煇浜涚▼搴忔崟鑾烽紶鏍囨秷鎭?銆?

All these messages end up in message queues. Windows keeps a message queue for every running application (actually, for every thread). It is your duty to retrieve these messages one-by-one in what is called a message loop. Your program has to call GetMessage to retrieve a message. Then you call DispatchMessage to give it back to Windows. Couldn't Windows just go ahead and dispatch all these messages itself? In principle it could, but a message loop gives your program a chance to have a peek at them and maybe perform some additional actions before dispatching them. Or not...

鎵鏈夌殑娑堟伅閮芥斁鍦ㄦ秷鎭槦鍒楅噷闈€俉indows涓烘瘡涓涓繍琛岀殑搴旂敤紼嬪簭緇存姢涓涓秷鎭槦鍒?瀹為檯涓婏紝鏄負姣忎竴涓嚎紼?銆傛妸榪欎簺娑堟伅涓涓釜鐨勫彇鍑烘潵錛岃繖鏄綘鐨勮矗浠匯傞氬父鎴戜滑鎶婅繖孌典唬鐮佸彨鍋氭秷鎭驚鐜傚湪浣犵殑紼嬪簭閲岋紝棣栧厛璋冪敤GetMessage鍑芥暟鍙栧嚭涓鏉℃秷鎭紝鐒跺悗璋冪敤DispatchMessage鎶婂畠榪斿洖緇橶indows銆俉indows榪樹細閲嶆柊鍒嗘淳榪欎簺娑堟伅鍚?鍘熷垯涓婁笉浼氾紝浣嗘槸浣犲彲浠ュ湪娑堟伅寰幆涓嬌鐢≒eekMessage鍑芥暟鏉ユ煡鐪嬫秷鎭屼笉鍒嗘淳瀹冿紝鍥犱負鏌愪簺鎯呭喌涓嬶紝浣犻渶瑕佸湪鍒嗘淳榪欎簺娑堟伅涔嬪墠鍋氫竴浜涢澶栫殑宸ヤ綔銆?

Each message is addressed to a particular window. When you tell Windows to dispatch such a message, it will figure out the class of this window, find the associated Window Procedure, and call it. Every single message sent to our window will end up in our window procedure. It is now up to us to respond to it. So, do we have to respond appropriately to every possible type of Windows message? There a hundreds of them! Fortunately, no! We only need to intercept those messages that we are interested in. Everything else we pass back to Windows for default processing using DefWindowProc.

姣忎釜娑堟伅琚紶閫掑埌涓涓壒孌婄殑紿楀彛銆傚綋浣犲憡璇墂indows鍒嗘淳涓鏉′俊鎭殑鏃跺欙紝windows浼氬厛鎵懼嚭榪欎釜紿楀彛鐨勭被錛岀劧鍚庢壘鍒頒笌涔嬪叧鑱旂殑紿楀彛榪囩▼錛屾渶鍚庤皟鐢ㄨ繖涓獥鍙h繃紼嬨傛瘡涓彂閫佸埌鎴戜滑紿楀彛鐨勬秷鎭兘浼氬湪鎴戜滑鐨勭獥鍙h繃紼嬩腑緇堟銆傜幇鍦ㄨ疆鍒版垜浠潵澶勭悊榪欎簺娑堟伅浜嗐傚洜姝わ紝鎴戜滑蹇呴』瑕佸鐞嗘墍鏈夌殑娑堟伅綾誨瀷錛熶笉錛岃繖閲屾湁鍑犵櫨縐嶆秷鎭紝鎴戜滑鍙渶瑕佸鐞嗗鎴戜滑鏈夌敤鐨勬秷鎭氨鍙互浜嗐備絾鍏跺畠娑堟伅鎬庝箞鍔炲憿錛熶笉鐢ㄦ媴蹇冿紝鍏跺畠娑堟伅鎴戜滑閫氳繃璋冪敤DefWindowProc榪欎釜鍑芥暟鏉ヨ嚜鍔ㄥ鐞嗐?

Let's have a look at WinMain. The execution of a Windows program doesn't start in main--it starts in WinMain. In our WinMain, we create a WinClass and register it. Then we create an actual window (of the class we've just registered) and show it. Actually, WinMain is called with the appropriate show directive--the user might want to start the application minimized or maximized. So we just follow this directive. Next, we enter the message loop and keep retrieving and dispatching messages until GetMessage returns 0. At that point the message's wParam will contain the return code of the whole program.

璁╂垜浠湅鐪媁inMain榪欎釜鍑芥暟銆備竴涓獁indows鍑芥暟鐨勫紑濮嬩笉鏄痬ain鍑芥暟錛岃屾槸WinMain銆傚湪鎴戜滑鐨剋inMain鍑芥暟閲岋紝鎴戜滑鍒涘緩浜嗕竴涓猈inClass鐨勫璞inClass錛岀劧鍚庢垜浠湪windows涓敞鍐屼簡瀹冦傛帴涓嬫潵鎴戜滑鍒涘緩浜嗕竴涓獥鍙?鎴戜滑鍒氬垰娉ㄥ唽鐨勭獥鍙g被鎵瀵瑰簲鐨勭獥鍙?騫朵笖鏄劇ず瀹冦傚疄闄呬笂錛學inMain鐢變竴涓弬鏁版槸鐢ㄦ潵鎸囨槑紿楀彛鏄劇ず鏁堟灉鐨?榪欐牱錛岀敤鎴峰彲浠ユ寚瀹氱獥鍙f樉紺虹殑鏂瑰紡)鈥斺旂敤鎴峰彲鑳藉笇鏈涙墦寮榪欎釜紼嬪簭鐢ㄦ渶灝忓寲鎴栬呮渶澶у寲鐨勬柟寮忔墦寮錛屽洜姝わ紝鎴戜滑鍦ㄨ繖閲屽彧闇瑕佺洿鎺ヤ嬌鐢ㄨ繖涓弬鏁板氨鍙互浜嗐傜劧鍚庢垜浠繘鍏ユ秷鎭驚鐜茍涓嶆柇鍙栧嚭娑堟伅鍜岃繘琛屽垎媧撅紝鐩村埌GetMessage鍑芥暟榪斿洖0銆傝繖涓椂鍊欐秷鎭殑wParam鍙傛暟灝嗕細鍖呭惈鏁翠釜紼嬪簭鐨勮繑鍥炲箋?
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInst,
                    char * cmdParam, int cmdShow)
{
    char className [] = "Winnie";
    WinClass winClass (WindowProcedure, className, hInst);
    winClass.Register ();
    WinMaker win ("Hello Windows!", className, hInst);
    win.Show (cmdShow);
    
MSG msg; int status; while ((status = ::GetMessage (& msg, 0, 0, 0)) != 0) { if (status == -1) return -1; ::DispatchMessage (& msg); }
return msg.wParam; }
The GetMessage API is an interesting example of the bizarre Microsoft Troolean (as opposed to traditional, Boolean) logic. GetMessage is defined to return a BOOL, but the documentation specifies three types of returns, non-zero, zero and -1. I am not making it up! Here's an excerpt from the help file:

GetMessage鍑芥暟鏄竴涓緢濂界瑧鐨勫井杞殑涓夊煎竷灝旂被鍨嬬殑渚嬪瓙銆侴etMessage鍑芥暟瀹氫箟鐨勮繑鍥炲兼槸BOOL綾誨瀷錛屼絾鏄枃妗e嵈鏄庣‘鎸囧嚭瀹冨惈鏈変笁縐嶈繑鍥炲鹼紝闈?銆?鍜?1銆傛垜涓嶆兂鍦ㄨ繖閲屽璐瑰彛鑸屻備笅闈㈡槸浠嶮SDN涓殑鎽樺綍銆?

· If the function retrieves a message other than WM_QUIT, the return value is nonzero.
· If the function retrieves the WM_QUIT message, the return value is zero.
· If there is an error, the return value is -1.


The other important part of every Windows program is the Windows Procedure. Remember, Windows will call it with all kinds of messages. All these messages can be ignored by sending them to DefWindowProc. There is only one message that we must intercept. That's the WM_DESTROY message that is sent by Windows when the user decides to close the window (by pressing the close button in the title bar). The standard response to WM_DESTROY is to post the quit message and return zero. That's all there is to it.

璁╂垜浠湅鐪嬫墍鏈墂indows紼嬪簭閮藉緢閲嶈鐨勫洖璋冨嚱鏁板惂銆備綘闇瑕佹敞鎰忕殑鏄紝windows灝嗕負鎵鏈夌殑娑堟伅璋冪敤榪欎釜鍑芥暟銆傛墍浠ュ墿浣欑殑娑堟伅涓瀹氳閫佺粰DefWindowProc鍘誨鐞嗐傚湪榪欓噷鎴戜滑鍙鐞嗕簡涓涓秷鎭傞偅灝辨槸WM_DESTROY銆傚綋鐢ㄦ埛瑕佸叧闂竴涓獥鍙g殑鏃跺欙紝windows浼氬彂閫佽繖涓秷鎭傛爣鍑嗙殑澶勭悊WM_DESTROY娑堟伅鏄彂閫佷竴鏉¢鍑烘秷鎭紝騫惰繑鍥?銆傚ソ浜嗭紝榪欏氨鏄垜浠璁茬殑鍏ㄩ儴浜嗐?_*

// Window Procedure called by Windows
LRESULT CALLBACK WindowProcedure
    (HWND hwnd, unsigned int message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
        case WM_DESTROY:
            ::PostQuitMessage (0);
            return 0;
    }
    return ::DefWindowProc (hwnd, message, wParam, lParam );
}


]]>
緇忓吀windows sdk 紼嬪簭璁捐緗戠珯 鈥斺旀湁濂界珯灝變細鏇存柊錛屽厤寰楀埌澶勫幓鎵?/title><link>http://www.shnenglu.com/k71983/archive/2008/05/22/50777.html</link><dc:creator>鑱傚厓鏈?/dc:creator><author>鑱傚厓鏈?/author><pubDate>Thu, 22 May 2008 08:27:00 GMT</pubDate><guid>http://www.shnenglu.com/k71983/archive/2008/05/22/50777.html</guid><wfw:comment>http://www.shnenglu.com/k71983/comments/50777.html</wfw:comment><comments>http://www.shnenglu.com/k71983/archive/2008/05/22/50777.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/k71983/comments/commentRss/50777.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/k71983/services/trackbacks/50777.html</trackback:ping><description><![CDATA[<a >http://www.winprog.org/tutorial/</a><br>涓漢鏈鍠滄鐨凷DK鍏ラ棬鏁欑▼ 浣跨敤C<br><br><a >http://www.relisoft.com/win32/index.htm</a><br>杈冨枩嬈㈢殑錛屼嬌鐢–++<br><br><a >http://adrianxw.dk/</a>   <br>涓浜涘叧浜巜indows涓嬬殑console鏂歸潰鐨凷DK鍑芥暟璋冪敤<br><br><a >http://www.functionx.com/win32/</a> <br><font color=#0000ff>This site's goal is to provide a few lessons on Win32 programming. Keep in mind that everything you can do with Win32 using a C++ compiler<br><br><a >http://www.mdstud.chalmers.se/~md7amag/code/wintut/</a><br>榪欎釜涓嶆槸澶ソ錛屼笉榪囩湅鐪嬩篃涓嶉敊<br><br>http://www.vckbase.com<br>寰堝婧愪唬鐮佸拰鏂囨湰璧勬枡錛屾枃妗o紝<br><br><a >http://www.<font color=#0000ff>c</font>sdn.net</a><br>榪欎釜涓嶇敤璇翠簡錛岄棶闂鐨勫ソ鍦版柟<br><br><a >http://ntt.cc/2008/05/12/over-480-free-and-fresh-icon-sets-help-you-to-create-your-beautiful-skins-and-themes-in-flex.html</a><br>鍚勭鍥捐〃璧勬簮绱㈠紩,欏轟究灝辯洿鎺ヤ粠鏀懼埌榪欓噷浜嗭紝鍏嶅緱榪樿鐐瑰嚮閾炬帴錛?br><br> <p>4 free icons of iPhone, designed in scribbled style. </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=ipod align=left src="http://ntt.cc/wp-content/uploads/2008/05/ipod-thumb.png" width=200 height=137></a> </p> <p>  By: <a rel=nofollow target=_blank><font color=#006699>Dirceu Veiga</font></a> </p> <p>  Icons in package: 4 </p> <p>  </p> <p> </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>Web 2 - Social Bookmark Icons</font></strong></a></p> <p>12 freeware “iPhone-like” icons of Web 2 Social Bookmarks for use in blogs, websites, desktops, softwares.</p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=iPhone-like align=left src="http://ntt.cc/wp-content/uploads/2008/05/iphone-like-thumb.png" width=200 height=140></a> </p> <p>   By: <a rel=nofollow target=_blank><font color=#006699>Dirceu Veiga</font></a></p> <p>  Icons in package: 12 </p> <p>  </p> <p>  </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>iPod Shuffle Icons</font></strong></a></p> <p><a ><font color=#006699><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=ipodshuffle_preview align=left src="http://ntt.cc/wp-content/uploads/2008/05/ipodshuffle-preview-thumb.jpg" width=200 height=155></font></a> </p> <p>  By: <a rel=nofollow target=_blank><font color=#006699>Dirceu Veiga</font></a> </p> <p>  Icons in package: 2 </p> <p>  </p> <p> </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>3D RSS Feeds Icon</font></strong></a> </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=feeds align=left src="http://ntt.cc/wp-content/uploads/2008/05/feeds-thumb.jpg" width=200 height=145></a> </p> <p>  By:<a rel=nofollow target=_blank><font color=#006699>Dirceu Veiga</font></a> </p> <p>  Icons in package: 1</p> <p>  </p> <p>  </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>Circle Feeds Icons</font></strong></a> </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=circle_feeds align=left src="http://ntt.cc/wp-content/uploads/2008/05/circle-feeds-thumb.jpg" width=200 height=156></a> </p> <p>  By:<a rel=nofollow target=_blank><font color=#006699>Dirceu Veiga</font></a> </p> <p>  Icons in package: 4</p> <p>  </p> <p>  </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>Smiley DevKit</font></strong></a> </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=smiley_devkit align=left src="http://ntt.cc/wp-content/uploads/2008/05/smiley-devkit-thumb.png" width=200 height=191></a> By: <a rel=nofollow target=_blank><font color=#006699>bartelmedesign</font></a></p> <p> </p> <p>  </p> <p> </p> <p>  </p> <p>  </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>Flag Button Devkit</font></strong></a> </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=flags align=left src="http://ntt.cc/wp-content/uploads/2008/05/flags-thumb.jpg" width=200 height=120></a>  By: <a rel=nofollow target=_blank><font color=#006699>bartelmedesign</font></a></p> <p>   </p> <p> </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>Yellow Icon</font></strong></a> </p> <p>There are many types icons for free download, like PlayStation 3, SuperMan Returns, Star Wars…etc.. </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=yellowicon align=left src="http://ntt.cc/wp-content/uploads/2008/05/yellowicon-thumb.png" width=200 height=123></a> </p> <p>By: <a rel=nofollow target=_blank><font color=#006699>yellowicon team</font></a></p> <p>  </p> <p>  </p> <p>  </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>OPENPHONE PACK</font></strong></a> </p> <p>This package includes icons inspirated on the new iPhone </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=openphone align=left src="http://ntt.cc/wp-content/uploads/2008/05/openphone-thumb.png" width=200 height=227></a> </p> <p>  Icons in package: 12 </p> <p>  Icons size: 256×256 </p> <p>  Icons formats: PNG, ICO </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>Social Bookmark Iconset</font></strong></a> </p> <p>These icons designed by a chinese. </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=socialbookmark align=left src="http://ntt.cc/wp-content/uploads/2008/05/socialbookmark-thumb.png" width=200 height=90></a> </p> <p>  By: <a rel=nofollow target=_blank><font color=#006699>yichi</font></a> </p> <p>  </p> <p>  </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>Mac OS Boxes</font></strong></a> </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=1972_boxes align=left src="http://ntt.cc/wp-content/uploads/2008/05/1972-boxes-thumb.jpg" width=200 height=107></a> </p> <p>  By: <a rel=nofollow target=_blank><font color=#006699>Alejandro Lopez</font></a> </p> <p>  Icons in package: 6 </p> <p>  </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>FastIcon.com</font></strong></a></p> <p>Icons by FastIcon.com: This artist has 41 icon sets containing 657 total icons for Mac OS X listed on InterfaceLIFT. The sets are shown in order of popularity.</p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=FastIcon align=left src="http://ntt.cc/wp-content/uploads/2008/05/fasticon-thumb.png" width=200 height=151></a> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>Iconshock’s Icon Sets</font></strong></a> </p> <p>There are many cartoon and film icons in the website include Transormers, Finding Nemo, Dragon Ball…  </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt="Iconshock’s Icon Sets" align=left src="http://ntt.cc/wp-content/uploads/2008/05/iconshocks-icon-sets-thumb.png" width=200 height=128></a> </p> <p>  </p> <p>  </p> <p>  </p> <p>  </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>Adobe CS 3 Icon Pack</font></strong></a> </p> <p>9 PNG icons based on the design of Adobe CS3’s applications’ boxes </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=CS3_Icons_pack_by_Pedro_de_la_Luna align=left src="http://ntt.cc/wp-content/uploads/2008/05/cs3-icons-pack-by-pedro-de-la-luna-thumb.jpg" width=200 height=140></a> </p> <p>  By: Pedro de la Luna </p> <p>  Icons in package: 9 </p> <p> </p> <p>  </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>CS 3 Icon Pack</font></strong></a> </p> <p>Including 28 icons, three for each CS3 application (Application - File - Folder) and one empty folder. </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=CS3_Icons_pack_Reloaded_by_Pedro_de_la_Luna.png align=left src="http://ntt.cc/wp-content/uploads/2008/05/cs3-icons-pack-reloaded-by-pedro-de-la-lunapng-thumb.jpg" width=200 height=140></a> </p> <p>By: Pedro de la Luna </p> <p>  Icons in package: 9</p> <p>  </p> <p>  </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>mAqua ChronoSync</font></strong></a> </p> <p>Free for personal use only, if for commercial use, need payment. </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt="mAqua ChronoSync" align=left src="http://ntt.cc/wp-content/uploads/2008/05/maqua-chronosync-thumb.png" width=200 height=168></a> </p> <p>  </p> <p>  </p> <p>  </p> <p>  </p> <p>  </p> <p> </p> <p><strong>  </strong><a rel=nofollow target=_blank><strong><font color=#006699>Aqua Neue (Graphite)</font></strong></a> </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=01865_aquaneuegraphite align=left src="http://ntt.cc/wp-content/uploads/2008/05/01865-aquaneuegraphite-thumb.jpg" width=200 height=106></a> </p> <p>  By: Pedro de la Luna </p> <p>  Icons in package: 86 </p> <p> </p> <p> </p> <h5><a rel=nofollow target=_blank><font color=#006699>Feedicons 2</font></a></h5> <p><a ><font color=#006699><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=2 align=left src="http://ntt.cc/wp-content/uploads/2008/05/2-thumb.png" width=200 height=148></font></a> </p> <p>  By: Kuswanto </p> <p>  Download: </p> <p>  </p> <p> </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>104 Standard PC Keyboard Key Icons</font></strong></a> </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=pckeys1 align=left src="http://ntt.cc/wp-content/uploads/2008/05/pckeys1-thumb.jpg" width=200 height=175></a> </p> <p>  By: <a rel=nofollow target=_blank><font color=#006699>Alan Who</font></a> </p> <p>  Icons in package: 104 </p> <p>  Download: </p> <p>  </p> <p> </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>Mac OS X Icons</font></strong></a> </p> <p>There are 248 icon sets in Mac OS X.</p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt="Mac OS X Icons " align=left src="http://ntt.cc/wp-content/uploads/2008/05/mac-os-x-icons-thumb.png" width=200 height=169></a> </p> <p> </p> <p>  </p> <p>  </p> <p>  </p> <p>  </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>Icon Bee</font></strong></a></p> <p>It is like a Bee collect many interesting free icon download website.  </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=iconbee align=left src="http://ntt.cc/wp-content/uploads/2008/05/iconbee-thumb.png" width=200 height=123></a> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>Vistaicons.com</font></strong></a></p> <p>VistaIcons.com is a collection of free Vista Style icon sets of over 2500 high quality icons in png and ico format. From VistaIcons.com you can freely download 256×256 PNG icons for Windows Vista</p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=Vistaicons align=left src="http://ntt.cc/wp-content/uploads/2008/05/vistaicons-thumb.png" width=200 height=148></a> </p> <p>  </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>Free Microsoft Windows Icons</font></strong></a></p> <p>It has a big database of Windows icon artists and designers.</p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=icons-win align=left src="http://ntt.cc/wp-content/uploads/2008/05/icons-win-thumb.png" width=200 height=152></a>  </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>famfamfam.com</font></strong></a> </p> <p>It is apersonal site and web playground of Birmingham (UK) based developer Mark James. There are many sets of icon for free download include silk web icons, flag icons…</p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=famfamfam align=left src="http://ntt.cc/wp-content/uploads/2008/05/famfamfam-thumb.png" width=200 height=122></a> </p> <h5></h5> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>iconbuffet.com</font></strong></a></p> <p>IconBuffet is home to a tasty plethora of free icons. Collect them, download them, trade them with your friends. They’re kinda like baseball cards, only without the steroids. And you can use them on your website.</p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=IconBuffet align=left src="http://ntt.cc/wp-content/uploads/2008/05/iconbuffet-thumb.png" width=200 height=123></a> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>interfacelift.com</font></strong></a></p> <p>InterfaceLIFT is your source for graphical user interface enhancements for Mac OS X, Microsoft Windows, and Linux. They specialize in desktop wallpaper, icons, themes, and news with a focus on community. New content is posted virtually every day.</p> <p><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=InterfaceLIFT align=left src="http://ntt.cc/wp-content/uploads/2008/05/interfacelift.png" width=200 height=130> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>iconshock.com</font></strong></a> </p> <p>There are 497225 quality icons in 175 icon collections… and counting. </p> <p><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=iconshock align=left src="http://ntt.cc/wp-content/uploads/2008/05/iconshock.png" width=200 height=123> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>iconbase.com</font></strong></a> </p> <p>Here you´ll find the best icons from the best artists in the world. The icons here listed belong to the individual authors and companies. They are free for personal and non commercial use. If you are an icon artist and desire to share your work with the world, this is your place. Just click on the submit menu and follow the easy steps to add your icons. </p> <p><a ><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=iconbase align=left src="http://ntt.cc/wp-content/uploads/2008/05/iconbase-thumb.png" width=200 height=130></a>  </p> <p> </p> <p> </p> <p> </p> <p> </p> <p><a rel=nofollow target=_blank><strong><font color=#006699>Mintywhite.com</font></strong></a></p> <p>A list of 90 icon packs that you can download for free.<br>(include Vista High PX, Office Space Icon Set for Windows Vista, iVista Icon Pack, iVista Icon Pack 2, XP Icons,Royalty Free Icons for Toolbar and Web,Friendly Fire Icon Pack,Yoritsuki Icons,Antique Icons,Vista Glass Folder Icons,Arzo Icons Vol. 1,Gaming Icons Pack,Mario Galaxy Luma Icons,Christmas Icons,Wifun Icons by Rokey,Grzanka’s Icons,Fantastic Dream by Rokey,Eico 1 year by Rokey,128×128 Icons Set 5,Antares Iconset,Perfect Fanstasy,Monster Icons,128×128 Icons Set 4,iMac Icons,Camino Icons,Nes Icons Pack,iLife and iWork ‘08 Icons,Mouse Category Season 03 etc…)</p> <p><img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" border=0 alt=high-quality-free-icon-sets src="http://ntt.cc/wp-content/uploads/2008/05/high-quality-free-icon-sets.png" width=200 height=174></p> </font> <img src ="http://www.shnenglu.com/k71983/aggbug/50777.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/k71983/" target="_blank">鑱傚厓鏈?/a> 2008-05-22 16:27 <a href="http://www.shnenglu.com/k71983/archive/2008/05/22/50777.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.51saer.cn" target="_blank">久久免费视频观看</a>| <a href="http://www.021-10000.cn" target="_blank">久久久噜噜噜久久中文福利</a>| <a href="http://www.dyhotel.com.cn" target="_blank">日韩一区二区久久久久久</a>| <a href="http://www.su117q.cn" target="_blank">人人狠狠综合久久亚洲婷婷</a>| <a href="http://www.gnkk.net.cn" target="_blank">久久免费大片</a>| <a href="http://www.baiduotui.cn" target="_blank">色婷婷久久综合中文久久蜜桃av</a>| <a href="http://www.spbbs.cn" target="_blank">久久精品国产一区</a>| <a href="http://www.giep.cn" target="_blank">久久久这里有精品</a>| <a href="http://www.elzx.com.cn" target="_blank">久久亚洲国产中v天仙www</a>| <a href="http://www.kou365.cn" target="_blank">免费久久人人爽人人爽av</a>| <a href="http://www.fjqcbks.cn" target="_blank">77777亚洲午夜久久多喷</a>| <a href="http://www.gongyeyongbu.com.cn" target="_blank">精品视频久久久久</a>| <a href="http://www.vulm.cn" target="_blank">99久久精品午夜一区二区</a>| <a href="http://www.abloom.com.cn" target="_blank">久久久久久毛片免费看</a>| <a href="http://www.fvnnv.cn" target="_blank">99久久99这里只有免费的精品</a>| <a href="http://www.sony888.cn" target="_blank">色婷婷久久综合中文久久一本</a>| <a href="http://www.lwtjf.cn" target="_blank">亚洲色大成网站www久久九</a>| <a href="http://www.bobofans.cn" target="_blank">久久精品夜色噜噜亚洲A∨</a>| <a href="http://www.hzyzhongyuan.cn" target="_blank">久久精品无码午夜福利理论片</a>| <a href="http://www.designelite.com.cn" target="_blank">国产精品xxxx国产喷水亚洲国产精品无码久久一区 </a>| <a href="http://www.rocchetta.com.cn" target="_blank">亚洲国产成人久久一区WWW</a>| <a href="http://www.kbsfrp.cn" target="_blank">久久精品aⅴ无码中文字字幕不卡</a>| <a href="http://www.tgl999.cn" target="_blank">久久精品无码一区二区三区</a>| <a href="http://www.mosphere.cn" target="_blank">国产A级毛片久久久精品毛片</a>| <a href="http://www.gbdv.cn" target="_blank">欧美午夜A∨大片久久</a>| <a href="http://www.happy925.cn" target="_blank">岛国搬运www久久</a>| <a href="http://www.haoq98.cn" target="_blank">久久中文娱乐网</a>| <a href="http://www.yizhuyuan.cn" target="_blank">青青草国产成人久久91网</a>| <a href="http://www.hthdw.cn" target="_blank">97久久香蕉国产线看观看</a>| <a href="http://www.4527.com.cn" target="_blank">伊人色综合久久天天人手人婷</a>| <a href="http://www.ccssoo.com.cn" target="_blank">国内精品久久久久久久久电影网 </a>| <a href="http://www.by2043.cn" target="_blank">久久久久亚洲av成人网人人软件</a>| <a href="http://www.robuts.com.cn" target="_blank">AAA级久久久精品无码区</a>| <a href="http://www.idccyy.cn" target="_blank">99久久国产综合精品麻豆</a>| <a href="http://www.schooldvd.cn" target="_blank">久久er99热精品一区二区</a>| <a href="http://www.qxmobile.cn" target="_blank">97久久国产综合精品女不卡</a>| <a href="http://www.laobianjing.cn" target="_blank">性做久久久久久久久</a>| <a href="http://www.guidegogo.cn" target="_blank">日韩久久无码免费毛片软件</a>| <a href="http://www.jsbcly.cn" target="_blank">亚洲国产成人久久一区WWW</a>| <a href="http://www.arqing.cn" target="_blank">亚洲一区精品伊人久久伊人</a>| <a href="http://www.feimatuan.cn" target="_blank">三级片免费观看久久</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>