青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

  C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
  117 Posts :: 2 Stories :: 61 Comments :: 0 Trackbacks

常用鏈接

留言簿(8)

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

        在“構(gòu)建游戲設(shè)計(jì)的舞臺”這一隨筆中,建立的項(xiàng)目便是一個(gè)標(biāo)準(zhǔn)Windows API的程序架構(gòu),主程序文件“canvas.cpp”由下表中幾個(gè)重要的函數(shù)所構(gòu)成:
 

函數(shù)名稱

說明

WinMain

主程序,程序起始點(diǎn)

WndProc

自定義函數(shù),處理程序消息

MyRegisterClass

自定義函數(shù),注冊窗口類別

InitInstance

自定義函數(shù),建立及顯示窗口的初始化函數(shù)


下面來說說這些函數(shù)的內(nèi)容與功能。

1.WinMain函數(shù)
        主程序,也就是整個(gè)項(xiàng)目程序開始運(yùn)行的地方,如同Console程序中的main()函數(shù)。

//****主程序***********************************
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR     lpCmdLine,
int       nCmdShow)
{
MSG msg;
/**********************************************************
*              自定義函數(shù),注冊窗口類別
* 調(diào)用MyRegisterClass()函數(shù),向系統(tǒng)注冊窗口類別,輸入?yún)?shù)
* “hInstance”是目前程序運(yùn)行個(gè)體的對象代碼
*********************************************************
*/

MyRegisterClass(hInstance);
// 運(yùn)行初始化函數(shù),調(diào)用InitInstance()函數(shù),進(jìn)行初始化操作
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}

/******************************************************************
*                           消息循環(huán)
* 程序通過此消息循環(huán)來獲取消息,并進(jìn)行必要的鍵盤消息轉(zhuǎn)換,
* 而后將控制權(quán)交給操作系統(tǒng),由操作系統(tǒng)決定該由哪個(gè)程序的
* 消息處理函數(shù)處理消息。這個(gè)循環(huán)使用了3個(gè)API函數(shù)
* GetMessage 獲取程序消息
* TranslateMessage 轉(zhuǎn)換偽碼及字符
* DispatchMessage 將控制權(quán)交給系統(tǒng),再由系統(tǒng)決定負(fù)責(zé)處理消息的程序
*****************************************************************
*/

while (GetMessage(&msg, NULL, 00))
{
TranslateMessage(
&msg);
DispatchMessage(
&msg);
}

return msg.wParam;
}

2.MyRegisterClass函數(shù)    
/*****************************************************************
 * 在建立程序窗口的實(shí)體之前,必須先定義一個(gè)窗口類別,其中包含所要
 * 建立窗口的相關(guān)信息,并向系統(tǒng)注冊。這里的MyRegisterClass()函數(shù)
 * 就是進(jìn)行定義及注冊窗口類別的函數(shù)
 ****************************************************************
*/

ATOM MyRegisterClass(HINSTANCE hInstance)
{
    
//聲明一個(gè)窗口類別“WNDCLASSEX”和結(jié)構(gòu)“wcex”
    WNDCLASSEX wcex;

    
/***************************Begin***********************************/
    
// 定義“wcex”結(jié)構(gòu)的各項(xiàng)信息,其中設(shè)定消息處理函數(shù)(IpfnWndProc)為
    
// “WndProc”,類別名稱(lpszClassName)為“canvas”。
    wcex.cbSize = sizeof(WNDCLASSEX); 
    wcex.style            
= CS_HREDRAW | CS_VREDRAW;
    
    
// 設(shè)定消息處理函數(shù)
    wcex.lpfnWndProc    = (WNDPROC)WndProc;
    
    wcex.cbClsExtra        
= 0;
    wcex.cbWndExtra        
= 0;
    wcex.hInstance        
= hInstance;
    wcex.hIcon            
= NULL;
    wcex.hCursor        
= NULL;
    wcex.hCursor        
= LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground    
= (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszMenuName    
= NULL;

    
//類別名稱
    wcex.lpszClassName    = "canvas";
    
    wcex.hIconSm        
= NULL;
    
/****************************End************************************/

    
// 調(diào)用RegisterClassEx()函數(shù)注冊類別,返回一個(gè)“ATOM”形態(tài)的字符串,此字符串即為類別名稱“canvas”
    return RegisterClassEx(&wcex);
}

3.InitInstance函數(shù) 
// 在這一初始函數(shù)中,按照前面所定義的窗口類別來建立并顯示實(shí)際的程序窗口
//*****初始化函數(shù)*******************************
// 1.存儲instance handle于全局變量中
// 2.建立并顯示主窗口
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
    HWND hWnd;

    hInst 
= hInstance;
    
// 調(diào)用CreateWindow()函數(shù)來建立一個(gè)窗口對象,所輸入的第1個(gè)參數(shù)
    
// 就是窗口建立所依據(jù)的類別名稱,也就是前面程序所定義的“canvas”
    hWnd = CreateWindow("canvas""繪圖窗口" , WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, 
0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

    
if (!hWnd)
    
{
        
return FALSE;
    }


    
// 下面三條語句,設(shè)定窗口的顯示位置及窗口大小,然后繪制在顯示設(shè)備上
    
// 設(shè)定窗口顯示的位置及窗口大小
    MoveWindow(hWnd,10,10,600,450,true);
    
// 設(shè)定窗口顯示時(shí)的狀態(tài)
    ShowWindow(hWnd, nCmdShow);
    
// 將窗口繪制于顯示設(shè)備上
    UpdateWindow(hWnd);

    
return TRUE;
}

4.WndPro函數(shù) 
/********************************************************************************
 * 在前面定義類別的時(shí)候把WndPro定義為消息處理函數(shù),也就是當(dāng)某些外部消息發(fā)生時(shí),會
 * 按照消息的類型來決定該如何進(jìn)行處理。
 * 此外,WndPro函數(shù)也是一個(gè)所謂的“回調(diào)函數(shù)(CALLBACK)”,簡單地說,回調(diào)函數(shù)是屬于
 * Windows操作系統(tǒng)所調(diào)用的函數(shù),而非程序本身所調(diào)用的函數(shù),這是因?yàn)閃indows是一個(gè)多任
 * 務(wù)的作業(yè)環(huán)境,在同一時(shí)刻可能會有多個(gè)程序正在運(yùn)行,而當(dāng)某一事件發(fā)生時(shí),有可能每一
 * 個(gè)程序都會接受到此消息,因此系統(tǒng)必須去判斷該由哪個(gè)程序進(jìn)行處理,然后再調(diào)用該程序
 * 的消息處理函數(shù)。
 *******************************************************************************
*/

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc;

    
// 判斷消息類型
    switch (message) 
    
{
        
case WM_PAINT:                        //窗口重繪消息
            hdc = BeginPaint(hWnd, &ps);
            EndPaint(hWnd, 
&ps);
            
break;
        
case WM_DESTROY:                    //窗口結(jié)束消息
            /***********************************************************
             * 調(diào)用PostQuitMessage()函數(shù)發(fā)送窗口結(jié)束消息給系統(tǒng),通知
             * 系統(tǒng)結(jié)束目前程序的運(yùn)行,然后由系統(tǒng)處理程序結(jié)束的后續(xù)操作
             **********************************************************
*/

            PostQuitMessage(
0);
            
break;
        
default:                            //其他消息
            
// DefWindowProc()函數(shù)調(diào)用預(yù)設(shè)的系統(tǒng)函數(shù)來處理程序本身不處理的消息
            return DefWindowProc(hWnd, message, wParam, lParam);
   }

   
return 0;
}

下載源代碼:canvas.rar(文件上傳在Windows live空間,可能需要有msn賬號進(jìn)行登錄)


PS:如想獲得更多關(guān)于Visual C++游戲開發(fā)的內(nèi)容,可點(diǎn)擊隨筆:《Visual C++游戲編程基礎(chǔ)》學(xué)習(xí)筆記——索引隨筆
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲国产欧美一区| 在线观看成人av| 亚洲韩国青草视频| 免费看成人av| 久久一区亚洲| 亚洲精品一区二区三区福利| 欧美成人午夜激情在线| 欧美成人在线免费观看| 亚洲第一级黄色片| 亚洲国产高清在线| 欧美四级电影网站| 欧美在线影院| 久久综合精品国产一区二区三区| 亚洲第一精品福利| 一本色道久久综合亚洲精品小说 | 久久久www成人免费毛片麻豆| 激情综合色综合久久综合| 免费在线看一区| 欧美日本韩国一区| 久久av一区| 欧美 日韩 国产 一区| 亚洲亚洲精品三区日韩精品在线视频| 亚洲视频在线观看三级| 黄网站色欧美视频| 亚洲美女诱惑| 激情国产一区| 在线视频免费在线观看一区二区| 国产视频久久| 亚洲动漫精品| 国产无一区二区| 欧美一区二区精品| 国产伦精品一区二区三区四区免费| 亚洲欧美在线看| 麻豆成人精品| 欧美在线在线| 欧美日韩亚洲综合在线| 久久亚洲风情| 国产精品精品视频| 欧美好骚综合网| 国产欧美精品日韩精品| 91久久久亚洲精品| 国语自产精品视频在线看8查询8| 亚洲三级电影全部在线观看高清| 国产一区二区三区四区三区四| 亚洲欧洲日本专区| 激情欧美日韩一区| 性感少妇一区| 亚洲综合欧美| 欧美日韩亚洲视频一区| 欧美成人四级电影| 黑人巨大精品欧美黑白配亚洲| 一区二区三区免费网站| 亚洲毛片播放| 美女爽到呻吟久久久久| 久久久精品国产一区二区三区 | 亚洲专区在线| 亚洲视频在线观看三级| 免费观看久久久4p| 美日韩精品免费| 国模精品一区二区三区色天香| 一区二区三区欧美在线| 亚洲色诱最新| 欧美日韩免费观看一区三区 | 久久婷婷国产综合精品青草| 国产精品欧美日韩| aaa亚洲精品一二三区| 亚洲免费观看在线观看| 欧美激情国产日韩精品一区18| 欧美gay视频激情| 黄色日韩精品| 久久日韩粉嫩一区二区三区| 久久久久九九九| 激情亚洲网站| 久久婷婷综合激情| 亚洲第一页中文字幕| 最新国产成人av网站网址麻豆| 久久尤物视频| 亚洲国产精品va在线看黑人 | 国产精品自拍一区| 午夜一区二区三视频在线观看| 欧美一区二粉嫩精品国产一线天| 国产毛片一区| 久久精品道一区二区三区| 老司机免费视频一区二区| 狠狠色狠狠色综合日日tαg| 久久亚洲午夜电影| 亚洲精品麻豆| 欧美亚洲一区二区在线| 国内精品久久久久久久影视蜜臀 | 亚洲午夜精品久久| 欧美一区二区三区在线观看| 国产一区二区三区久久久久久久久 | 午夜精品久久久久久久白皮肤| 国产精品日韩欧美| 久久精品日韩| 最近中文字幕mv在线一区二区三区四区| 亚洲毛片一区| 国产精品一区二区三区四区| 久久精品盗摄| 亚洲美女淫视频| 久久久久天天天天| 日韩亚洲成人av在线| 国产精品日日摸夜夜摸av| 久久嫩草精品久久久久| 亚洲精选一区二区| 久久久久国产精品麻豆ai换脸| 亚洲欧洲精品成人久久奇米网| 国产精品porn| 久久综合婷婷| 亚洲欧美日本精品| 亚洲激情视频| 久久久亚洲国产美女国产盗摄| 99国产精品久久久| 国色天香一区二区| 国产精品www.| 欧美国产第一页| 久久精品一级爱片| 在线中文字幕一区| 亚洲国产日韩欧美在线99| 久久国产精彩视频| 亚洲午夜av在线| 亚洲黄色在线看| 国产综合精品| 国产精品系列在线播放| 欧美日韩高清不卡| 久久影视三级福利片| 午夜精品福利在线| 亚洲视频一二三| 亚洲精品一区在线观看| 欧美国产高清| 欧美1区视频| 久久亚洲精品中文字幕冲田杏梨| 亚洲欧美日韩在线一区| 一本色道婷婷久久欧美| 亚洲国产精品传媒在线观看| 国产主播一区二区三区| 国产美女精品免费电影| 国产精品免费一区豆花| 欧美系列精品| 欧美午夜精品一区| 欧美性猛交一区二区三区精品| 欧美日韩午夜精品| 欧美精品一区二区高清在线观看| 猛男gaygay欧美视频| 久久综合九色欧美综合狠狠| 久久久久国产精品www| 久久er99精品| 久久九九免费视频| 久久免费精品日本久久中文字幕| 欧美一区二区三区在线视频| 欧美专区在线观看| 久久成人av少妇免费| 久久久国产91| 嫩草影视亚洲| 欧美日本一区| 国产精品久久久久久av下载红粉| 欧美午夜不卡视频| 国产麻豆日韩| 黄色精品一二区| 亚洲黄色片网站| 一区二区欧美激情| 欧美大片在线观看一区| 欧美午夜精品电影| 欧美久久电影| 国产精品户外野外| 国产一区二区三区免费不卡| 狠狠色丁香久久婷婷综合丁香| 亚洲国产成人在线播放| 99re6这里只有精品视频在线观看| 中文日韩在线| 久久激情一区| 亚洲大胆视频| 亚洲一区美女视频在线观看免费| 性欧美大战久久久久久久免费观看| 欧美亚洲一级| 欧美激情国产高清| 国产日韩一区二区三区| 亚洲国产一区在线观看| 亚洲网站在线播放| 久久免费视频在线观看| 亚洲激情婷婷| 久久成人国产精品| 欧美区日韩区| 狠狠色丁香婷婷综合影院| 一本色道久久88精品综合| 欧美一区二区三区在线观看| 美日韩精品免费| 亚洲一区二区免费在线| 免费欧美网站| 国产美女诱惑一区二区| 亚洲精品久久久久久久久久久久久| 亚洲欧美日韩精品一区二区| 欧美搞黄网站| 欧美一区二区三区喷汁尤物| 欧美激情精品久久久久久大尺度 | 久久亚洲国产成人| 国产精品久久久一本精品| 最新亚洲一区| 免费成人高清| 亚洲在线视频网站|