亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? demo4_3.cpp

?? 一本外國人寫的關于3D游戲編程的書的源碼
?? CPP
字號:
// DEMO4_3.CPP  - Rectangle drawing demo

// INCLUDES ///////////////////////////////////////////////
#define WIN32_LEAN_AND_MEAN  // just say no to MFC

#include <windows.h>   // include all the windows headers
#include <windowsx.h>  // include useful macros
#include <mmsystem.h>  // very important and include WINMM.LIB too!
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

// DEFINES ////////////////////////////////////////////////

// defines for windows 
#define WINDOW_CLASS_NAME "WINCLASS1"

#define WINDOW_WIDTH  400
#define WINDOW_HEIGHT 300

// MACROS /////////////////////////////////////////////////

#define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
#define KEYUP(vk_code)   ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)

// GLOBALS ////////////////////////////////////////////////
HWND      main_window_handle = NULL; // globally track main window

HINSTANCE hinstance_app      = NULL; // globally track hinstance
char buffer[80];                     // general printing buffer

// FUNCTIONS //////////////////////////////////////////////
LRESULT CALLBACK WindowProc(HWND hwnd, 
						    UINT msg, 
                            WPARAM wparam, 
                            LPARAM lparam)
{
// this is the main message handler of the system
PAINTSTRUCT		ps;		// used in WM_PAINT
HDC				hdc;	// handle to a device context
char buffer[80];        // used to print strings

// what is the message 
switch(msg)
	{	
	case WM_CREATE: 
        {
		// do initialization stuff here
        // return success
		return(0);
		} break;
   
	case WM_PAINT: 
		{
		// simply validate the window 
   	    hdc = BeginPaint(hwnd,&ps);	 
        
        // end painting
        EndPaint(hwnd,&ps);

        // return success
		return(0);
   		} break;

	case WM_DESTROY: 
		{

		// kill the application, this sends a WM_QUIT message 
		PostQuitMessage(0);

        // return success
		return(0);
		} break;

	default:break;

    } // end switch

// process any messages that we didn't take care of 
return (DefWindowProc(hwnd, msg, wparam, lparam));

} // end WinProc

// WINMAIN ////////////////////////////////////////////////
int WINAPI WinMain(	HINSTANCE hinstance,
					HINSTANCE hprevinstance,
					LPSTR lpcmdline,
					int ncmdshow)
{

WNDCLASSEX winclass; // this will hold the class we create
HWND	   hwnd;	 // generic window handle
MSG		   msg;		 // generic message
HDC        hdc;      // graphics device context

// first fill in the window class stucture
winclass.cbSize         = sizeof(WNDCLASSEX);
winclass.style			= CS_DBLCLKS | CS_OWNDC | 
                          CS_HREDRAW | CS_VREDRAW;
winclass.lpfnWndProc	= WindowProc;
winclass.cbClsExtra		= 0;
winclass.cbWndExtra		= 0;
winclass.hInstance		= hinstance;
winclass.hIcon			= LoadIcon(NULL, IDI_APPLICATION);
winclass.hCursor		= LoadCursor(NULL, IDC_ARROW); 
winclass.hbrBackground	= (HBRUSH)GetStockObject(BLACK_BRUSH);
winclass.lpszMenuName	= NULL;
winclass.lpszClassName	= WINDOW_CLASS_NAME;
winclass.hIconSm        = LoadIcon(NULL, IDI_APPLICATION);

// save hinstance in global
hinstance_app = hinstance;

// register the window class
if (!RegisterClassEx(&winclass))
	return(0);

// create the window
if (!(hwnd = CreateWindowEx(NULL,                // extended style
                            WINDOW_CLASS_NAME,   // class
						    "Rectangle Drawing Demo", // title
						    WS_OVERLAPPEDWINDOW | WS_VISIBLE,
					 	    0,0,	  // initial x,y
						    WINDOW_WIDTH, // initial width
                            WINDOW_HEIGHT,// initial height
						    NULL,	  // handle to parent 
						    NULL,	  // handle to menu
						    hinstance,// instance of this application
						    NULL)))	// extra creation parms
return(0);

// save main window handle
main_window_handle = hwnd;


// enter main event loop, but this time we use PeekMessage()
// instead of GetMessage() to retrieve messages
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

       // draw a random line
    
    // get the graphics device context 
    hdc = GetDC(hwnd);

    RECT rect; // used to hold rect info

    // create a random rectangle
    rect.left   = rand()%WINDOW_WIDTH;
    rect.top    = rand()%WINDOW_HEIGHT;
    rect.right  = rand()%WINDOW_WIDTH;
    rect.bottom = rand()%WINDOW_HEIGHT;

    // create a random brush
    HBRUSH hbrush = CreateSolidBrush(RGB(rand()%256,rand()%256,rand()%256));

    // draw either a filled rect or a wireframe rect
    if ((rand()%2)==1)
        FillRect(hdc,&rect,hbrush);
    else
        FrameRect(hdc,&rect,hbrush);

    // now delete the brush
    DeleteObject(hbrush);
    
    // release the device context
    ReleaseDC(hwnd,hdc);

     // main game processing goes here
    if (KEYDOWN(VK_ESCAPE))
       SendMessage(hwnd, WM_CLOSE, 0,0);
       
	} // end while

// return to Windows like this
return(msg.wParam);

} // end WinMain

///////////////////////////////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人精品午夜| 福利电影一区二区三区| 国产激情一区二区三区桃花岛亚洲| 成人国产精品免费网站| 欧美精品日韩精品| 亚洲欧美日韩系列| 国产精选一区二区三区| 欧美一区二区三区播放老司机| 亚洲乱码国产乱码精品精可以看 | 亚洲成人动漫一区| av电影一区二区| 欧美国产97人人爽人人喊| 免费高清视频精品| 欧美日韩久久不卡| 一区二区三区免费看视频| 国产91富婆露脸刺激对白| 日韩一区二区三区在线观看 | 国产在线看一区| 91精品国产一区二区三区香蕉| 亚洲女同一区二区| proumb性欧美在线观看| 国产欧美日韩三级| 丰满少妇在线播放bd日韩电影| 精品美女在线播放| 久久爱www久久做| 精品国产伦一区二区三区观看方式 | 亚洲最快最全在线视频| aaa亚洲精品一二三区| 国产精品美日韩| av网站一区二区三区| 中文子幕无线码一区tr| a级高清视频欧美日韩| 国产精品免费视频观看| av午夜一区麻豆| 亚洲精品视频免费看| 色狠狠一区二区| 亚洲成人免费电影| 欧美精品三级日韩久久| 日韩精品亚洲专区| 欧美电影免费观看高清完整版| 麻豆成人综合网| 日韩一区二区电影网| 国产露脸91国语对白| 中文字幕高清一区| 91亚洲精华国产精华精华液| 一区二区不卡在线视频 午夜欧美不卡在| 色婷婷综合五月| 石原莉奈在线亚洲二区| 久久久久一区二区三区四区| 国产成人精品亚洲777人妖| 成人欧美一区二区三区黑人麻豆 | 成人app网站| 亚洲一区二区黄色| 欧美不卡视频一区| 成人99免费视频| 日韩精品电影一区亚洲| 日韩精品一区二区三区三区免费 | 国产欧美精品一区二区色综合朱莉| 成人国产亚洲欧美成人综合网| 亚洲裸体xxx| 日韩免费一区二区| 大陆成人av片| 日韩主播视频在线| 国产亚洲欧洲997久久综合 | 天天色天天操综合| 国产欧美日韩视频在线观看| 在线观看一区不卡| 国产福利精品一区| 亚洲综合999| 久久男人中文字幕资源站| 色综合久久99| 激情综合色综合久久| 亚洲精品视频在线观看免费| wwwwww.欧美系列| 欧美亚洲免费在线一区| 成人午夜免费电影| 青青草国产精品亚洲专区无| 国产精品日韩成人| 国产精品国产精品国产专区不蜜 | 韩国av一区二区三区四区| **欧美大码日韩| 2020日本不卡一区二区视频| 色悠悠亚洲一区二区| 国产美女在线精品| 婷婷综合另类小说色区| 亚洲欧美乱综合| 国产精品乱子久久久久| 精品久久久久久久久久久久久久久久久 | 在线视频一区二区三区| 国产精品中文有码| 老色鬼精品视频在线观看播放| 一区在线观看免费| 久久精品视频在线看| 91精品国产综合久久久久久久| 99国内精品久久| 国产成人综合在线| 精品一区免费av| 毛片av中文字幕一区二区| 亚洲国产中文字幕在线视频综合| 国产精品成人午夜| 久久久精品黄色| 久久精品在线免费观看| 欧美不卡一区二区三区| 日韩三级视频中文字幕| 91精品欧美综合在线观看最新 | 亚洲狠狠爱一区二区三区| 亚洲欧美综合在线精品| 国产精品久久夜| 中文字幕av一区 二区| 亚洲国产高清在线| 国产精品麻豆久久久| 欧美国产禁国产网站cc| 日本一区二区三级电影在线观看 | 免费观看成人av| 蜜臀av性久久久久蜜臀av麻豆| 亚洲.国产.中文慕字在线| 午夜精品成人在线| 人人爽香蕉精品| 精油按摩中文字幕久久| 国产一区二区三区在线观看免费视频| 免费成人你懂的| 国产精品一卡二卡| 成人ar影院免费观看视频| 91亚洲永久精品| 色香色香欲天天天影视综合网| 色综合一个色综合| 欧美日韩一区国产| 日韩欧美一区二区在线视频| 久久看人人爽人人| 一区免费观看视频| 午夜不卡av在线| 美女看a上一区| 国产成都精品91一区二区三| 成av人片一区二区| 欧美色图12p| 日韩午夜在线观看视频| 久久久亚洲精华液精华液精华液| 国产精品天美传媒沈樵| 亚洲一区二区黄色| 国产一区二区三区久久久| 成人动漫精品一区二区| 久久久久97国产精华液好用吗| 久久精品人人爽人人爽| 亚洲情趣在线观看| 喷水一区二区三区| 国产福利91精品一区| 欧亚一区二区三区| 精品国产免费一区二区三区香蕉| 国产精品第一页第二页第三页| 亚洲一区二区在线观看视频 | 99精品黄色片免费大全| 欧美一区二区视频在线观看2020 | 精品视频一区 二区 三区| 2021中文字幕一区亚洲| 一区二区三区免费| 国产成人在线网站| 欧美色图第一页| 国产精品乱人伦中文| 男女激情视频一区| 91麻豆蜜桃一区二区三区| 欧美一区二区三区免费大片 | 中文字幕在线一区免费| 视频一区二区中文字幕| 不卡的av网站| 欧美tickle裸体挠脚心vk| 亚洲精选视频免费看| 国产乱码字幕精品高清av | 亚洲成人久久影院| 99视频在线精品| 久久尤物电影视频在线观看| 亚洲国产成人精品视频| 97se亚洲国产综合在线| 久久久久久久综合色一本| 日韩电影免费一区| 欧美色网站导航| 亚洲素人一区二区| 国产精品18久久久久久久久久久久 | 国产婷婷色一区二区三区在线| 蜜臀va亚洲va欧美va天堂 | 国产精品一区在线观看乱码| 91精品欧美综合在线观看最新| 亚洲免费观看高清完整版在线观看熊| 国产精品综合网| 欧美成人精精品一区二区频| 欧美精品v国产精品v日韩精品 | 国产精品影视在线观看| 久久久久国产精品人| 亚洲一二三级电影| 久久久国产午夜精品| 国产亚洲福利社区一区| 麻豆国产精品一区二区三区| 色狠狠色噜噜噜综合网| 中文字幕中文在线不卡住| 国产成人av电影在线| 久久久久国产成人精品亚洲午夜| 奇米精品一区二区三区四区| 欧美一区二区三区免费在线看 | 亚洲综合免费观看高清完整版在线 | 久久综合久久鬼色| 精品一区在线看|