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

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

?? ddbasic.cpp

?? Windows 圖形編程 書籍
?? CPP
字號:
//-----------------------------------------------------------------------------------//
//              Windows Graphics Programming: Win32 GDI and DirectDraw               //
//                             ISBN  0-13-086985-6                                   //
//                                                                                   //
//  Written            by  Yuan, Feng                             www.fengyuan.com   //
//  Copyright (c) 2000 by  Hewlett-Packard Company                www.hp.com         //
//  Published          by  Prentice Hall PTR, Prentice-Hall, Inc. www.phptr.com      //
//                                                                                   //
//  FileName   : ddbasic.cpp					                                     //
//  Description: Basic DirectDraw demo, Chapter 18                                   //
//  Version    : 1.00.000, May 31, 2000                                              //
//-----------------------------------------------------------------------------------//

#define STRICT
#define WIN32_LEAN_AND_MEAN

#include <windows.h>
#include <assert.h>
#include <tchar.h>

#define INITGUID
#include <ddraw.h>
#include <d3d.h>

#include "..\..\include\win.h"
#include "..\..\include\ddsurf.h"
#include "..\..\include\ddwrap.h"

#include "resource.h"

BOOL PixelFillRect(KDDSurface & surface, int x, int y, int width, int height, DWORD dwColor[], int nColor)
{
	BYTE * pSurface = surface.LockSurface(NULL);
		
	const DDSURFACEDESC2 * pDesc = surface.GetSurfaceDesc();

	if ( pSurface )
	{
		int pitch   = surface.GetPitch();
		int byt     = pDesc->ddpfPixelFormat.dwRGBBitCount / 8; 
		
		for (int j=0; j<height; j++)
		{
			BYTE * pS   = pSurface + (y+j) * pitch + x * byt;
			DWORD color = dwColor[j % nColor];

			int i;

			switch ( byt )
			{
				case 1:
					memset(pS, color, width);
					break;

				case 2:
					for (i=0; i<width; i++)
					{
						* (unsigned short *) pS = (unsigned short) color;
						pS += sizeof(unsigned short);
					}
					break;

				case 3:
					for (i=0; i<width; i++)
					{
						* (RGBTRIPLE *) pS = * (RGBTRIPLE *) & color;
						pS += sizeof(RGBTRIPLE);
					}
					break;

				case 4:
					for (i=0; i<width; i++)
					{
						* (unsigned *) pS = color;
						pS += sizeof(unsigned);
					}
					break;
				
				default:
					return FALSE;
			}
		}

		surface.Unlock();
		return TRUE;
	}
	else
		return FALSE;
}


class KDDWin : public KWindow, public KDirectDraw
{
	HINSTANCE m_hInst;

	void OnNCPaint(void)
	{
		RECT rect;
		GetWindowRect(m_hWnd, & rect);

		DWORD dwColor[18];
		
		for (int i=0; i<18; i++)
			dwColor[i] = m_primary.ColorMatch(0, 0, 0x80 + abs(i-9)*12);

		PixelFillRect(m_primary, rect.left+24, rect.top+4, rect.right - 88 - rect.left, 18, dwColor, 18);

		BYTE * pSurface = m_primary.LockSurface(NULL); // just for address
		m_primary.Unlock(NULL);
	
		if ( SUCCEEDED(m_primary.GetDC()) )
		{
			TCHAR temp[MAX_PATH];
			const DDSURFACEDESC2 * pDesc = m_primary.GetSurfaceDesc();

			if ( pDesc )
				wsprintf(temp, "%dx%d %d-bpp, pitch=%d, lpSurface=0x%x", 
					pDesc->dwWidth, pDesc->dwHeight, pDesc->ddpfPixelFormat.dwRGBBitCount,
					pDesc->lPitch, pSurface);
			else
				strcpy(temp, "LockSurface failed");

			SetBkMode(m_primary, TRANSPARENT);
			SetTextColor(m_primary, RGB(0xFF, 0xFF, 0));
			TextOut(m_primary, rect.left+24, rect.top+4, temp, _tcslen(temp));
			
			m_primary.ReleaseDC();
		}
	}

    void OnDraw(void)
    {
		SetClientRect(m_hWnd);
		int n = min(m_rcDest.right-m_rcDest.left, m_rcDest.bottom-m_rcDest.top)/2;
		
		for (int i=0; i<n; i++)
		{
			DWORD color = m_primary.ColorMatch( 0xFF*(n-1-i)/(n-1), 0xFF*(n-1-i)/(n-1), 0xFF*i/(n-1) );

			m_primary.FillColor(m_rcDest.left+i, m_rcDest.top+i, m_rcDest.right-i, m_rcDest.bottom-i, color);
		}
    }

	LRESULT WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
	{
		switch( uMsg )
		{
			case WM_CREATE:
				m_hWnd = hWnd;
				if ( FAILED(SetupDirectDraw(GetParent(hWnd), hWnd, false)) ) // initialize DirectDraw
				{
					MessageBox(NULL, _T("Unable to Initialize DirectDraw"), _T("KDDWin"), MB_OK);
					CloseWindow(hWnd);
				}
				return 0;

			case WM_PAINT:
				OnDraw();
				ValidateRect(hWnd, NULL);
				return 0;

			case WM_NCPAINT:
				DefWindowProc(hWnd, uMsg, wParam, lParam);
				OnNCPaint();
				return 0;

			case WM_DESTROY:
				PostQuitMessage(0);
				return 0;

			default:
				return DefWindowProc(hWnd, uMsg, wParam, lParam);
		}
	}

	void GetWndClassEx(WNDCLASSEX & wc)
	{
		KWindow::GetWndClassEx(wc);
	
		wc.style |= (CS_HREDRAW | CS_VREDRAW);
		wc.hIcon = LoadIcon(m_hInst, MAKEINTRESOURCE(IDI_GRAPH));
	}

public:
	KDDWin(HINSTANCE hInst)
	{
		m_hInst = hInst;
	}
};


int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int nShow)
{
	KDDWin main(hInst);
	
	main.CreateEx(0, _T("ClassName"), _T("Basic DirectDraw"),
		WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
	    CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 
	    NULL, NULL, hInst);

    main.ShowWindow(nShow);
    main.UpdateWindow();
    main.MessageLoop();

	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品福利一二区| 制服丝袜亚洲精品中文字幕| 亚洲宅男天堂在线观看无病毒| 中文字幕一区二区三区视频| 国产欧美日韩一区二区三区在线观看 | 欧美一区欧美二区| 欧美亚洲国产一区二区三区va| 91无套直看片红桃| 91小视频免费观看| 欧美性大战久久久久久久蜜臀 | 欧美日韩高清在线| 欧美日本在线看| 欧美日韩国产高清一区二区三区 | 色哦色哦哦色天天综合| 91年精品国产| 欧美日韩卡一卡二| 精品国产三级a在线观看| 26uuu久久天堂性欧美| 国产香蕉久久精品综合网| 国产精品免费看片| 一级日本不卡的影视| 日韩成人午夜精品| 成人性生交大片| 在线看日韩精品电影| 欧美一区二区三区在线电影| 2019国产精品| 一区二区三区小说| 麻豆精品一区二区三区| 成人精品国产免费网站| 色老头久久综合| 精品国产一区久久| 亚洲人成网站精品片在线观看| 亚洲成人综合视频| 国产91精品入口| 欧洲av在线精品| 国产亚洲福利社区一区| 一区二区三区不卡视频在线观看| 午夜av电影一区| eeuss鲁片一区二区三区在线观看| 4438x成人网最大色成网站| 日本一区二区在线不卡| 青青草97国产精品免费观看| 岛国av在线一区| 色综合久久88色综合天天6| 日韩欧美国产精品| 亚洲伊人伊色伊影伊综合网| 一本久道久久综合中文字幕| 天堂久久久久va久久久久| 成人欧美一区二区三区| 国产成人av电影在线观看| 日本aⅴ精品一区二区三区| 日韩精品91亚洲二区在线观看| 日本韩国一区二区三区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 不卡视频在线看| 亚洲高清一区二区三区| 337p亚洲精品色噜噜狠狠| 卡一卡二国产精品| 国产精品欧美极品| 欧美日韩精品欧美日韩精品一 | 日韩美一区二区三区| 国产高清久久久久| 一区二区在线观看免费视频播放| 欧美日韩免费电影| 成人免费毛片嘿嘿连载视频| 亚洲一区免费视频| 久久综合一区二区| 在线观看不卡一区| 麻豆91在线看| 亚洲精品视频观看| 精品国产91洋老外米糕| 91精品福利在线| 国产中文字幕一区| 亚洲午夜久久久久| 国产精品免费丝袜| 欧美刺激脚交jootjob| 色婷婷激情综合| 国内成人精品2018免费看| 亚洲电影在线免费观看| 国产欧美视频一区二区三区| 欧美群妇大交群中文字幕| 暴力调教一区二区三区| 精品一区二区三区免费| 亚洲国产精品一区二区久久| 国产精品三级视频| 精品欧美一区二区在线观看| 欧美视频在线播放| 99re66热这里只有精品3直播| 久久99精品国产91久久来源| 午夜精品久久一牛影视| 亚洲欧美一区二区三区极速播放| 久久综合九色综合97_久久久 | aa级大片欧美| 国产91综合网| 国内精品免费在线观看| 亚洲成人你懂的| 国产精品不卡视频| 欧美成人国产一区二区| 色欧美片视频在线观看| 国产一区二区三区四区五区美女 | 一区二区三区欧美激情| 精品免费国产二区三区| 欧美日韩一区二区在线观看视频 | 亚洲成人综合在线| 国产精品萝li| 久久久久久久久久久久久夜| 欧美影院精品一区| 成人黄色综合网站| 国产真实精品久久二三区| 五月婷婷激情综合| 午夜电影一区二区| 日韩在线观看一区二区| 不卡免费追剧大全电视剧网站| 国产精品护士白丝一区av| 国产亚洲精品资源在线26u| 久久久久国产一区二区三区四区| 日韩精品在线一区| 精品国产sm最大网站免费看| 2023国产精品| 国产欧美日韩在线看| 国产精品你懂的在线欣赏| 亚洲欧洲av在线| 亚洲免费av在线| 午夜精彩视频在线观看不卡| 天天综合日日夜夜精品| 九九久久精品视频| 国产成人超碰人人澡人人澡| 成人福利视频在线| 欧美日韩在线播放| 日韩欧美国产精品一区| 国产蜜臀97一区二区三区| 亚洲桃色在线一区| 亚洲va国产天堂va久久en| 裸体歌舞表演一区二区| 国产成人aaa| 欧美亚日韩国产aⅴ精品中极品| 欧美日韩小视频| 久久嫩草精品久久久精品| 亚洲欧美偷拍卡通变态| 午夜视频一区二区三区| 国产精品一区在线观看乱码| aaa国产一区| 欧美一区二区啪啪| 中文字幕乱码久久午夜不卡| 亚洲成人一二三| 国产老女人精品毛片久久| 在线观看成人小视频| 欧美白人最猛性xxxxx69交| 亚洲色图欧洲色图| 日韩av电影一区| 成人av网站在线| 777久久久精品| 国产精品亲子伦对白| 五月天激情综合| 成人国产精品视频| 91精品国产综合久久久久| 中文一区在线播放| 男女性色大片免费观看一区二区| jlzzjlzz亚洲日本少妇| 欧美日韩国产综合草草| 久久久综合激的五月天| 亚洲动漫第一页| 白白色亚洲国产精品| 欧美xxxxxxxxx| 无码av免费一区二区三区试看| 亚洲狼人国产精品| 欧美日韩中字一区| 久久99精品久久久久久动态图| 亚洲影视在线观看| 国产大陆a不卡| 欧美日韩电影一区| 1024成人网| 国产.欧美.日韩| 性做久久久久久久免费看| 国产精品69久久久久水密桃| 欧美日韩中文字幕精品| 中文字幕一区二区三区不卡| 精品一区二区国语对白| 欧美精品久久99| 一区二区三区国产豹纹内裤在线| 懂色av中文字幕一区二区三区 | 亚洲v日本v欧美v久久精品| 成人综合在线网站| 精品福利一二区| 美日韩一级片在线观看| 91精品国产综合久久精品app| 亚洲精品一卡二卡| 成人深夜视频在线观看| 91精品国产丝袜白色高跟鞋| 五月婷婷久久丁香| 欧美日韩精品一区二区在线播放| 亚洲精品国产第一综合99久久 | 91精品国产91久久久久久一区二区 | 久久久久久黄色| 亚洲成国产人片在线观看| av一区二区三区黑人| 国产精品素人一区二区| 精品亚洲aⅴ乱码一区二区三区| 欧美日韩一卡二卡三卡| 一区二区三区在线免费观看|