• <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>

            單鏈DNA

            換了個地址:http://www.cnblogs.com/vizhen/

             

            《WINDOWS 游戲編程大師技巧》學(xué)習(xí)筆記--windows編程模型小結(jié)

             

                  “Windows編程就像去見牙科醫(yī)生:雖然明明知道最自己是有益處的,可還是沒人喜歡總是找牙醫(yī)。”記得很早的時候,看了一下MFC,還根本不知道窗口啊,按鈕啊,菜單啊,現(xiàn)在讀這一章才看到的Windows的真面目了。

                 1. 傳說中的“匈牙利符號表示法”,早有耳聞此法,但未曾一見啊,最是頭痛的就屬看幫助文檔的,尤其是MSDN了,不過要想閱讀Microsoft的一些代碼,還真的懂此法呀。
                                               
            *  匈牙利符號表示法前綴代碼

            前綴 數(shù)據(jù)類型(基礎(chǔ)類型)
            c Char字符
            by BYTE字節(jié)(無符號字符)
            n Short短整數(shù)和整數(shù)(表示一個數(shù))
            i int整數(shù)
            x,y Short短整數(shù)(通常用于x和y坐標)
            cx,cy short短整數(shù)(通常用于x和y的長度;c表示計數(shù))
            b BOOL(整數(shù))
            w UINT(無符號數(shù))和WORD(無符號字)
            l LONG(長整數(shù))
            dw DWORD(無符號長整數(shù))
            fn 函數(shù)指針
            s 字符串
            sz,str 以一個字節(jié)的0(空值)終止的字符串
            lp 32位指針
            h 編號(常用于表示W(wǎng)indows對象)
            msg 消息


            *變量的命名

                    變量的命名應(yīng)用匈牙利符號表示法,變量可用上表中的前綴代碼表示。另外,變量由一個或幾個子名構(gòu)成時,每一個子名都要大寫字母開頭。
                         例如:      char   *szFileName;   // a null terminated string
                                            int      *lpiData;           //a 32-bit pointer to a int
                            還有一點就是,全局變量以g_或g開頭。

            *函數(shù)命名

                    函數(shù)命名和變量命名規(guī)則相同,但是沒有前綴。也就是說,只需要子名的第一個字母要大寫。
            而且函數(shù)名中使用下劃線是非法的。例如,下面的函數(shù)名表示是無效的匈牙利符號表示法:
                                      int    Get_Pixel(int  ix,int  iy);

            *類型和常量的命名

                     所有的類型和常量都是大寫的字母,但名字中可以允許使用下劃線。

            *類的命名

                     所有c++的類必須使用大寫的C為前綴。類名字的每一個子名的第一個字母要大寫。

            *參數(shù)的命名

                        函數(shù)的參數(shù)命名和標準變量命名約定相同。

                

            2.怎樣創(chuàng)建一個完全實用的Windows程序,也就是那個我們經(jīng)常見面的那個窗口。你只需要下面幾步:
                         1.創(chuàng)建一個Windows類。
                         2.創(chuàng)建一個事件句柄或WinProc。
                         3.用Windows注冊Windows類。
                         4.用前面創(chuàng)建的Windows類創(chuàng)建一個窗口。
                         5.創(chuàng)建一個能夠從事件句柄獲得或向事件句柄傳遞Windows信息的主事件循環(huán)。

                   2.1 Windows類
                          “ Windows中的每一個窗口、控件、列表框、對話框和小部件等等實際上都是一個窗口。區(qū)別它們的就是定義它們的類。一個Windows類就是Windows能夠操作的一個窗口類型的描述。”
                           “控制Windows類信息的數(shù)據(jù)結(jié)構(gòu)有兩個:WNDCLASS和WNDCLASSEX。WNDCLASS是比較古老的一個,可能不久將廢棄,因此我們應(yīng)當(dāng)使用新的擴展版WNDCLASSEX。”

               typedef  struct   _WNDCLASSEX
            {
            UNIT              cbsize;
            UINT              style;
            WNDPROC  lpfnWndProc;
            int                   cbClsExtra;
            int                   cbWndExtra;
            HANDLE       hInstance;
            HICON          hIcon;
            HCURSON  hCoursor;
            HBRUSH      hbrBackground;
            LPCTSTR     lpszMenuName;
            LPCTSTR     lpszClassName;
            HICON           hIconSm;
            }WNDCLASSEX;
                    創(chuàng)建一個這樣的結(jié)構(gòu),然后就是填寫里面所有的成員變量:WNDCLASSEX  winclass;
               2.2事件句柄
            這里所說的句柄(exent handler)就是當(dāng)事件發(fā)生時Windows從主事件循環(huán)調(diào)用的回調(diào)
            函數(shù)。對于創(chuàng)建的任何一個Windows類,都有一個獨立的事件句柄,我們稱呼它為WinProc,當(dāng)用戶
            和Windows運行任務(wù)時,你的窗口和/或其他的應(yīng)用程序窗口產(chǎn)生事件和消息。所有的消息都進入一
            個隊列,而你的窗口的消息發(fā)送你的窗口專用隊列中。然后主事件循環(huán)檢索這些消息,并且將它們發(fā)
            送到你的窗口的WinProc中來處理。
            WinProc原型:
            LRESULT CALLBACK WindowProc(
            HWND hWnd,
            UINT
            uMsg,
            WPARAM
            wParam,
            LPARAM
            lParam );
                2.3注冊Windows類
            Windows類已經(jīng)定義并且存放在Windsclass中,必須將新的類通知Windows。該功能通過
            RegisterClassEx()函數(shù)實現(xiàn),使用一個指向新類定義的指針來實現(xiàn)。如下:
            RegisterClassEx(&winclass);
                2.4創(chuàng)建窗口
            創(chuàng)建窗口使用CreateWindow()或CreateWindowEx()函數(shù)。
                2.5主事件循環(huán)
            shijianxunhuan

                                     while(TRUE)
                                  {
                                          // test if there is a message in queue, if so get it
                                         if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
                                        {
                                               // test if this is a quit
                                               if (msg.message == WM_QUIT)
                                               break;
                                            
                                            // translate any accelerator keys
                                              TranslateMessage(&msg);
                                           
                                            // send the message to the window proc
                                            DispatchMessage(&msg);
                                        } // end if
                                     
                                      // main game processing goes here
                                      Game_Main();
                               } // end while

            posted on 2010-03-27 10:24 Geek.tan 閱讀(457) 評論(0)  編輯 收藏 引用 所屬分類: 學(xué)習(xí)筆記

            導(dǎo)航

            統(tǒng)計

            公告

            coding是我的寂寞,我是誰的寂寞

            隨筆分類(40)

            隨筆檔案(48)

            搜索

            積分與排名

            最新評論

            評論排行榜

            久久久久亚洲AV无码去区首| 久久国产视频99电影| 亚洲AV无码1区2区久久| 欧美一区二区三区久久综合| 亚洲va久久久噜噜噜久久天堂| 国内精品九九久久久精品| 热久久国产精品| 2020国产成人久久精品| 久久久久久毛片免费播放| 青青草原1769久久免费播放| 亚洲国产成人久久笫一页| 久久久国产精品亚洲一区| 日本欧美国产精品第一页久久| 日本强好片久久久久久AAA| 国产精品日韩欧美久久综合| 7777精品久久久大香线蕉| 四虎国产精品免费久久久| 久久精品无码一区二区WWW| 91精品国产91久久久久久青草| 久久亚洲AV成人无码| 久久91精品综合国产首页| 精品精品国产自在久久高清| 久久这里有精品| 久久综合一区二区无码| 国产精品久久久久久| 五月丁香综合激情六月久久 | 伊人久久大香线蕉av一区| 久久se精品一区精品二区国产| 奇米影视7777久久精品| 久久经典免费视频| 欧美性大战久久久久久| 热re99久久精品国产99热| 日韩精品国产自在久久现线拍| 中文字幕乱码人妻无码久久| 人人妻久久人人澡人人爽人人精品| 丁香五月综合久久激情| 国产成人香蕉久久久久| 9191精品国产免费久久| 国产AV影片久久久久久| 51久久夜色精品国产| 人人狠狠综合久久亚洲|