麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發(fā)設計 > 正文

windows---窗口

2019-11-14 12:07:42
字體:
來源:轉載
供稿:網(wǎng)友
//-----------------------------------【程序說明】----------------------------------------------// 程序名稱::GameCore// 2013年3月 Create by 淺墨// 描述:用代碼勾勒出游戲開發(fā)所需的程序框架//------------------------------------------------------------------------------------------------//-----------------------------------【頭文件包含部分】---------------------------------------// 描述:包含程序所依賴的頭文件//------------------------------------------------------------------------------------------------#include <windows.h>//-----------------------------------【宏定義部分】--------------------------------------------// 描述:定義一些輔助宏//------------------------------------------------------------------------------------------------#define WINDOW_WIDTH 800 //為窗口寬度定義的宏,以方便在此處修改窗口寬度#define WINDOW_HEIGHT 600 //為窗口高度定義的宏,以方便在此處修改窗口高度#define WINDOW_TITLE L"【致我們永不熄滅的游戲開發(fā)夢想】程序核心框架" //為窗口標題定義的宏//-----------------------------------【全局函數(shù)聲明部分】-------------------------------------// 描述:全局函數(shù)聲明,防止“未聲明的標識”系列錯誤//------------------------------------------------------------------------------------------------LRESULT CALLBACK WndPRoc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ); //窗口過程函數(shù)//-----------------------------------【W(wǎng)inMain( )函數(shù)】--------------------------------------// 描述:Windows應用程序的入口函數(shù),我們的程序從這里開始//------------------------------------------------------------------------------------------------int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nShowCmd){ //【1】窗口創(chuàng)建四步曲之一:開始設計一個完整的窗口類 WNDCLASSEX wndClass = { 0 }; //用WINDCLASSEX定義了一個窗口類 wndClass.cbSize = sizeof( WNDCLASSEX ) ; //設置結構體的字節(jié)數(shù)大小 wndClass.style = CS_HREDRAW | CS_VREDRAW; //設置窗口的樣式。當窗口寬度、高度變化時,重繪窗口 wndClass.lpfnWndProc = WndProc; //設置指向窗口過程函數(shù)的指針 wndClass.cbClsExtra = 0; //窗口類的附加內存,取0就可以了 wndClass.cbWndExtra = 0; //窗口的附加內存,依然取0就行了 wndClass.hInstance = hInstance; //指定包含窗口過程的程序的實例句柄。WinMain函數(shù)的第一個參數(shù) //本地加載自定義ico圖標,在debug目錄下 //NULL:包含被加載圖像的實例句柄,若從硬盤或資源文件中加載,為NULL //L"icon.ico":被加載的資源所在的路徑與文件名或資源名稱 //IMAGE_ICON:指定被加載的圖像的類型 //0:圖標加載后在內存中存儲的寬度,單位為像素,0表示系統(tǒng)預設 //0:圖標加載后在內存中存儲的高度,單位為像素,0表示系統(tǒng)預設 //位圖加載方式,LR_LOADFROMFILE表示從文件中加載 wndClass.hIcon=(HICON)::LoadImage(NULL, L"icon.ico",IMAGE_ICON, 0, 0, LR_DEFAULTSIZE|LR_LOADFROMFILE); wndClass.hCursor = LoadCursor( NULL, IDC_ARROW ); //指定窗口類的光標句柄。 //指定窗口類的背景畫刷句柄。為hbrBackground成員指定一個灰色畫刷句柄,當窗口發(fā)生重繪時,用該畫刷擦除背景顏色 wndClass.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH); wndClass.lpszMenuName = NULL; //用一個以空終止的字符串,指定菜單資源的名字。 wndClass.lpszClassName = L"ForTheDreamOfGameDevelop"; //用一個以空終止的字符串,指定窗口類的名字。 //【2】窗口創(chuàng)建四步曲之二:注冊窗口類 if( !RegisterClassEx( &wndClass ) ) //設計完窗口后,需要對窗口類進行注冊,這樣才能創(chuàng)建該類型的窗口 return -1; //【3】窗口創(chuàng)建四步曲之三:正式創(chuàng)建窗口 //指定窗口類的名稱,為設計窗口時的名稱;顯示在標題欄上的窗口的名稱; //指定窗口的樣式:產(chǎn)生一個層疊的窗口,具有標題欄和邊框;窗口水平位置,默認為CW_USERDEFAULT //窗口豎直位置,默認為CW_USERDEFAULT;窗口寬度;窗口高度;父窗口句柄NULL;菜單資源句柄NULL; //窗口所屬的應用程序實例的句柄;MFC中創(chuàng)建多文檔界面時用到,一般為NULL HWND hwnd = CreateWindow( L"ForTheDreamOfGameDevelop",WINDOW_TITLE, //喜聞樂見的創(chuàng)建窗口函數(shù)CreateWindow WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, WINDOW_WIDTH, WINDOW_HEIGHT, NULL, NULL, hInstance, NULL ); //【4】窗口創(chuàng)建四步曲之四:窗口的移動、顯示與更新 true:重畫窗口 MoveWindow(hwnd, 250, 80, WINDOW_WIDTH, WINDOW_HEIGHT, true); //調整窗口顯示時的位置,使窗口左上角位于(250,80)處 ShowWindow( hwnd, nShowCmd ); //調用ShowWindow函數(shù)來顯示窗口 UpdateWindow(hwnd); //對窗口進行更新,就像我們買了新房子要裝修一樣 //【5】消息循環(huán)過程 MSG msg = { 0 }; //定義并初始化msg while( msg.message != WM_QUIT ) //使用while循環(huán),如果消息不是WM_QUIT消息,就繼續(xù)循環(huán) { //將取出的消息保存在msg中;0:接收屬于調用線程的所有窗口的窗口消息;0:指定要獲取消息的最小值 //0:指定要獲取消息的最大值;PM_REMOVE:指定要獲取消息的方式,取出某條消息后,將該條消息從消息隊列中移除 if( PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) ) //查看應用程序消息隊列,有消息時將隊列中的消息派發(fā)出去。 { TranslateMessage( &msg ); //將虛擬鍵消息轉換為字符消息 DispatchMessage( &msg ); //分發(fā)一個消息給窗口程序。 } } //【6】窗口類的注銷 //要注銷的類的名稱;創(chuàng)建這個類的應用程序的實例句柄 UnregisterClass(L"ForTheDreamOfGameDevelop", wndClass.hInstance); //程序準備結束,注銷窗口類 return 0; }//-----------------------------------【W(wǎng)ndProc( )函數(shù)】--------------------------------------// 描述:窗口過程函數(shù)WndProc,對窗口消息進行處理//------------------------------------------------------------------------------------------------//hwnd: 需要處理消息的窗口的句柄//message: 待處理消息的ID,即消息類型LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { switch( message ) //switch語句開始 { case WM_PAINT: // 若是客戶區(qū)重繪消息 ValidateRect(hwnd, NULL); // 更新客戶區(qū)的顯示 break; //跳出該switch語句 case WM_KEYDOWN: // 若是鍵盤按下消息 if (wParam == VK_ESCAPE) // 如果被按下的鍵是ESC DestroyWindow(hwnd); // 銷毀窗口, 并發(fā)送一條WM_DESTROY消息 break; //跳出該switch語句 case WM_DESTROY: //若是窗口銷毀消息 PostQuitMessage( 0 ); //向系統(tǒng)表明有個線程有終止請求。用來響應WM_DESTROY消息 break; //跳出該switch語句 default: //若上述case條件都不符合,則執(zhí)行該default語句 return DefWindowProc( hwnd, message, wParam, lParam ); //調用缺省的窗口過程 } return 0; //正常退出}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产一区二区不卡视频 | xxxx欧美视频 | 亚洲小视频在线 | 91精品国产九九九久久久亚洲 | 精品国产乱码久久久久久久久 | 最污网站| 国产精品免费一区二区三区都可以 | www国产成人免费观看视频 | 久久久久久免费 | 日本中文字幕电影在线观看 | 国产无限资源在线观看 | 爱视频福利 | 免费日本一区二区 | 一级外国毛片 | 欧美一级免费视频 | 97久久精品一区二区三区观看 | 性少妇freeseⅹbbwhd | 视频一区二区三区在线播放 | 久久av一区二区 | 国产精品高潮视频 | 国产精品免费在线 | 97人操| 日韩a毛片免费观看 | 国产日韩在线观看一区 | 亚洲电影在线播放 | 91久久精品一 | 伊人成人免费视频 | 色综合久久久久久久久久久 | 毛片免费视频播放 | 成人羞羞视频在线观看免费 | 中文字幕电影免费播放 | 在线成人一区二区 | 国产亚洲精品久久久久婷婷瑜伽 | 中文字幕视频在线播放 | 激情在线观看视频 | 久久久久久久久国产 | 国产精品成人av片免费看最爱 | 国产乱淫av一区二区三区 | 久久tv免费国产高清 | 精品一区二区在线视频 | 国产精品久久久久一区二区 |