L
LovePower
Здравствуйте, уважаемые программисты)). Я в программировании на с++ сравнительно недавно.. Ну основы программирования уже знаю на мой взгляд хорошо)). Код бью на зарошем паутиной продукте Microsoft Visual C++ 6.0.. Вот начал изучать DirectX SDK, в своем первом приложении Windows 32 Applications хочу инициализировать DirectX в окне, это даст представление о том, как можно сделать обычную программу внедрив в нее средства DirectX, мне кажется ее можно будет сделать намного красивее и динамичнее, минус только один у конечного пользователя должен быть установленный DirectX 9.0, но думаю в наше время уже все распологают этим программным продуктом.
И так собственно к делу, создаю я окно, а оно тупо не появляется, вроде все правильно забил, и функции ShowWindow, UpdateWindow вбил, а оно все равно не появляется, и самое главное, компилятор даже не ругается ни на что((. говорит 0 ошибок, 0 предостережений. Нувот собственно мой горе код))), на инициализацию DirectX можно забить, главное помогите пожалуйста с выведение окна на экран, спасибо большое заренее).
Добавлено: помогите плиз, пока я себе весь фейс об тэйбол не разбил)))) еще, если кто этим уже занимался, может подскажете хорошие доки по DirectX 9? было бы вообще прекрасно если бы книга была ориентированна под Visual c++ 6.0)
И так собственно к делу, создаю я окно, а оно тупо не появляется, вроде все правильно забил, и функции ShowWindow, UpdateWindow вбил, а оно все равно не появляется, и самое главное, компилятор даже не ругается ни на что((. говорит 0 ошибок, 0 предостережений. Нувот собственно мой горе код))), на инициализацию DirectX можно забить, главное помогите пожалуйста с выведение окна на экран, спасибо большое заренее).
C++:
#include "windows.h"
#include "d3d9.h"
LPARAM _stdcall MyWindProc (HWND,UINT,WPARAM,LPARAM);
int _stdcall WinMain (HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
WNDCLASS MyWindow;
MyWindow.cbClsExtra = 0;
MyWindow.cbWndExtra = 0;
MyWindow.hbrBackground = (HBRUSH) (6);
MyWindow.hCursor = LoadCursor (NULL,IDC_ARROW);
MyWindow.hIcon = LoadIcon (NULL,IDI_APPLICATION);
MyWindow.hInstance = hInstance;
MyWindow.lpfnWndProc = MyWindProc;
MyWindow.lpszClassName = TEXT("class");
MyWindow.lpszMenuName = NULL;
MyWindow.style = CS_OWNDC;
RegisterClass (&MyWindow);
HWND hWnd = CreateWindow (TEXT("class"),TEXT("Moe okno!!"),WS_OVERLAPPEDWINDOW,
200,100,500,500,NULL,NULL,hInstance,NULL);
ShowWindow (hWnd,nShowCmd);
UpdateWindow(hWnd);
IDirect3D9 *d3d=NULL;
IDirect3DDevice9 *dev=NULL;
d3d = Direct3DCreate9(D3D_SDK_VERSION);
D3DPRESENT_PARAMETERS pp;
ZeroMemory(&pp,sizeof(pp));
pp.BackBufferWidth = 500;
pp.BackBufferHeight = 500;
pp.BackBufferFormat = D3DFMT_X8R8G8B8;
pp.BackBufferCount = 1;
pp.SwapEffect = D3DSWAPEFFECT_DISCARD;
pp.hDeviceWindow = hWnd;
pp.Windowed = true;
d3d->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_REF,hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING, &pp, &dev);
MSG msg;
while (1)
{
if (PeekMessage(&msg,NULL,0,0,PM_REMOVE)){
if (msg.message == WM_QUIT)
break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
dev->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(255,255,255),
1.0f,0);
dev->BeginScene();
dev->EndScene();
dev->Present(NULL,NULL,NULL,NULL);
}
if (d3d != NULL)
d3d->Release();
if (dev != NULL)
dev->Release();
return 0;
}
LPARAM _stdcall MyWindProc (HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch (msg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return MyWindProc (hWnd,msg,wParam,lParam);
}
Добавлено: помогите плиз, пока я себе весь фейс об тэйбол не разбил)))) еще, если кто этим уже занимался, может подскажете хорошие доки по DirectX 9? было бы вообще прекрасно если бы книга была ориентированна под Visual c++ 6.0)