Direct Draw





#include <iostream>
using namespace std;


#include <ddraw.h>
#pragma   comment(lib,   "ddraw.lib")
#pragma   comment(lib,   "Dxguid.lib")


LRESULT CALLBACK WndProc(   HWND hWnd,              // handle to window
  UINT Msg,               // message
  WPARAM wParam,          // first message parameter
  LPARAM lParam           // second message parameter
  );


HWND hwnd;


void  InitWindows(HINSTANCE hInstance)
{
MSG msg;
TCHAR lpszClassName[] = TEXT("kuan");

WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = ::LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor = ::LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground = (HBRUSH)::GetStockObject(BLACK_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = lpszClassName;

RegisterClass(&wc);

// WS_OVERLAPPEDWINDOW 可以改变窗口大小
// WS_OVERLAPPED 不可以改变窗口大小
// WS_POPUP 全屏
hwnd = CreateWindow(lpszClassName,
TEXT("fangyukuan"),
WS_OVERLAPPEDWINDOW | WS_VISIBLE,80,100,800,600,
NULL,
NULL,
hInstance,
NULL);


/* while(TRUE)
{
if (::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))

if (msg.message == WM_QUIT)
break;
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
}*/
}




int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{
InitWindows( hInstance);


LPDIRECTDRAW pDD = NULL;
    HRESULT hr;

    // Create a DirectDraw object using the enumerated GUID
    if( FAILED( hr = DirectDrawCreate( NULL, &pDD, NULL ) ) )//IID_IDirectDraw7,
{
MessageBox(NULL,"DirectDraw Create Error","Wrong!", MB_OK);
return 0;
}


LPDIRECTDRAW7 lpDDraw7;
if(FAILED(pDD->QueryInterface(IID_IDirectDraw7,(LPVOID*)&lpDDraw7)))
{
MessageBox(NULL,"IID_IDirectDraw7 Create Error","Wrong!", MB_OK);
return 0;
}


if(FAILED(lpDDraw7->SetCooperativeLevel(hwnd, DDSCL_FULLSCREEN|DDSCL_ALLOWMODEX|DDSCL_EXCLUSIVE|DDSCL_ALLOWREBOOT)))
{
MessageBox(NULL,"SetCooperativeLevel Create Error","Wrong!", MB_OK);
return 0;
}


if(FAILED(lpDDraw7->SetDisplayMode(80,100,800,600,0)));
{
MessageBox(NULL,"SetDisplayMode Create Error","Wrong!", MB_OK);
return 0;
}


}




LRESULT CALLBACK WndProc( HWND hWnd,UINT Msg,WPARAM wParam, LPARAM lParam    )
{
switch(Msg)
{
case WM_LBUTTONDOWN:
{
::MessageBeep(MB_ICONHAND); 
}
break;
case WM_DESTROY:
::PostQuitMessage(0);
break;
default:
return ::DefWindowProc(hWnd,Msg,wParam,lParam);
}
   return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值