Графика в Winapi

  • Автор темы rezor
  • Дата начала
R

rezor

Гость
#1
Подскажите как сделать окно и вывести в него квадрат???
Я в winApi не разбираюсь дайте исходник попонятней я переделаю под себя!
Я так пытался но не выходит.
[codebox]#define UNICODE
#include <windows.h> // includes basic windows functionality
#include <windowsx.h>
#include <tchar.h>
void DrawRectangles(HDC);
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);

switch (wmId)
{
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);

EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
WNDCLASS wc;
MSG Messages;

wc.style = 0;
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = NULL;
wc.hCursor = LoadCursor (NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1); //не может быть NULL
wc.lpszMenuName = L"LISTMENU";
wc.lpszClassName = L"MonClass";
RegisterClass( &wc );
HWND hWndMain;


hWndMain = CreateWindow( L"MonClass",
L"Title",
WS_OVERLAPPEDWINDOW,
10, 10,
20, 20,
NULL, NULL, hInstance, NULL );// An unhandled win32 exception occured in PROG.EXE

// if window could not be created, return "failure"
if ( ! hWndMain ) {
return NULL;
}
MessageBox(NULL, L"MESSAGEBOX",L"IS WORKS",MB_OK);
ShowWindow( hWndMain, nCmdShow );
UpdateWindow( hWndMain );

/*!!!цикл обработки сообщений!!!*/
while (GetMessage (&Messages, NULL, 0, 0))
{
TranslateMessage(&Messages);
DispatchMessage(&Messages);
}
BeginPaint();
HBRUSH hbrush, hbrushOldBrush;
int nOldPolyFillMode;

// Координаты вершин первого многоугольника
POINT ptPoints1[] =
{
{10, 10}, {100, 310}, {40, 300},
{300, 15}, {135, 340}, {113, 125},
{250, 137}, {300, 300}
};

// Координаты вершин второго многоугольника
POINT ptPoints2[] =
{
{310, 10}, {400, 310}, {340, 300},
{600, 15}, {435, 340}, {413, 125},
{550, 137}, {600, 300}
};

// Выбираем встроенную серую кисть
hbrush = GetStockBrush(GRAY_BRUSH);
hbrushOldBrush = SelectBrush(HDC, hbrush);

// Рисуем первый многоугольник в режиме
// заполнения ALTERNATE, установленном
// по умолчанию
Polygon(HDC, ptPoints1,
sizeof ptPoints1 / sizeof ptPoints1[0]);
EndPaint ();



return Messages.wParam;

}[/codebox]

[codebox]1>------ Rebuild All started: Project: winapi, Configuration: Debug Win32 ------
1>Deleting intermediate and output files for project 'winapi', configuration 'Debug|Win32'
1>Compiling...
1>1.cpp
1>c:\documents and settings\стас\мои документы\visual studio 2008\projects\winapi\winapi\1.cpp(1) : warning C4005: 'UNICODE' : macro redefinition
1> command-line arguments : see previous definition of 'UNICODE'
1>c:\documents and settings\стас\мои документы\visual studio 2008\projects\winapi\winapi\1.cpp(21) : warning C4065: switch statement contains 'default' but no 'case' labels
1>c:\documents and settings\стас\мои документы\visual studio 2008\projects\winapi\winapi\1.cpp(77) : error C2660: 'BeginPaint' : function does not take 0 arguments
1>c:\documents and settings\стас\мои документы\visual studio 2008\projects\winapi\winapi\1.cpp(99) : error C2059: syntax error : ','
1>c:\documents and settings\стас\мои документы\visual studio 2008\projects\winapi\winapi\1.cpp(104) : error C2275: 'HDC' : illegal use of this type as an expression
1> c:\program files\microsoft sdks\windows\v6.0a\include\windef.h(267) : see declaration of 'HDC'
1>c:\documents and settings\стас\мои документы\visual studio 2008\projects\winapi\winapi\1.cpp(106) : error C2660: 'EndPaint' : function does not take 0 arguments
1>Build log was saved at "file://c:\Documents and Settings\Стас\Мои документы\Visual Studio 2008\Projects\winapi\winapi\Debug\BuildLog.htm"
1>winapi - 4 error(s), 2 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========[/codebox]