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

            換了個(gè)地址:http://www.cnblogs.com/vizhen/

             

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

             

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

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

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


            *變量的命名

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

            *函數(shù)命名

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

            *類型和常量的命名

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

            *類的命名

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

            *參數(shù)的命名

                        函數(shù)的參數(shù)命名和標(biāo)準(zhǔn)變量命名約定相同。

                

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

                   2.1 Windows類
                          “ Windows中的每一個(gè)窗口、控件、列表框、對話框和小部件等等實(shí)際上都是一個(gè)窗口。區(qū)別它們的就是定義它們的類。一個(gè)Windows類就是Windows能夠操作的一個(gè)窗口類型的描述。”
                           “控制Windows類信息的數(shù)據(jù)結(jié)構(gòu)有兩個(gè):WNDCLASS和WNDCLASSEX。WNDCLASS是比較古老的一個(gè),可能不久將廢棄,因此我們應(yīng)當(dāng)使用新的擴(kuò)展版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)建一個(gè)這樣的結(jié)構(gòu),然后就是填寫里面所有的成員變量:WNDCLASSEX  winclass;
               2.2事件句柄
            這里所說的句柄(exent handler)就是當(dāng)事件發(fā)生時(shí)Windows從主事件循環(huán)調(diào)用的回調(diào)
            函數(shù)。對于創(chuàng)建的任何一個(gè)Windows類,都有一個(gè)獨(dú)立的事件句柄,我們稱呼它為WinProc,當(dāng)用戶
            和Windows運(yùn)行任務(wù)時(shí),你的窗口和/或其他的應(yīng)用程序窗口產(chǎn)生事件和消息。所有的消息都進(jìn)入一
            個(gè)隊(duì)列,而你的窗口的消息發(fā)送你的窗口專用隊(duì)列中。然后主事件循環(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ù)實(shí)現(xiàn),使用一個(gè)指向新類定義的指針來實(shí)現(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 閱讀(453) 評論(0)  編輯 收藏 引用 所屬分類: 學(xué)習(xí)筆記

            導(dǎo)航

            統(tǒng)計(jì)

            公告

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

            隨筆分類(40)

            隨筆檔案(48)

            搜索

            積分與排名

            最新評論

            評論排行榜

            亚洲欧美久久久久9999| 久久香蕉一级毛片| 亚洲va久久久久| 国产美女亚洲精品久久久综合| 亚洲国产精品无码久久青草 | 久久久91精品国产一区二区三区 | 久久艹国产| 久久亚洲sm情趣捆绑调教| 久久婷婷五月综合色奶水99啪| 亚洲日本va中文字幕久久| 岛国搬运www久久| 久久免费的精品国产V∧| 国产成人精品久久亚洲高清不卡 | 午夜视频久久久久一区 | 国产精品亚洲美女久久久| 久久婷婷五月综合国产尤物app | 久久黄视频| 久久综合88熟人妻| 怡红院日本一道日本久久| 久久久久人妻一区二区三区| 精品久久香蕉国产线看观看亚洲| 欧美一级久久久久久久大| 精品久久久久久| 精品久久久久久久无码| 亚洲精品国产综合久久一线| 超级碰久久免费公开视频| 亚洲精品蜜桃久久久久久| 亚洲а∨天堂久久精品| 久久九色综合九色99伊人| 亚洲午夜久久久精品影院| 亚洲国产精品高清久久久| 亚洲人成电影网站久久| 亚洲国产一成久久精品国产成人综合 | 国产真实乱对白精彩久久| 久久精品国产91久久麻豆自制| 久久精品人人做人人爽97| 久久狠狠高潮亚洲精品| 久久超碰97人人做人人爱| 日本人妻丰满熟妇久久久久久| 国产成人无码精品久久久性色| 久久笫一福利免费导航 |