помогите доделать
Знаю что не реально, но очень нужно в течении 2-3 дней.
HELP!!!
//++++++++++++++++++++++++++++++++++
#include <windows.h>
#include <stdio.h>
#include "KWnd.h"
#include "resource.h"
#include <math.h>
#include "bitmap.h"
struct pt
{
double X,Y;
};
pt a[100];
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
////////////////////////////////////////////////////////////////////////////////////////////////////
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
MSG msg;
KWnd mainWnd("picture", hInstance, nCmdShow, WndProc,
MAKEINTRESOURCE(IDR_MENU1), 100, 100, 400, 300);
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
HRGN hRgn;
////////////////////////////////////////////////////////////////////////////////////////////////////
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
HDC hDC;
PAINTSTRUCT ps;
RECT rect;
static HMENU hMenu;
int userreply;
static int iCount=0;
static int bisTrack=false;
static int iisTrack=-1;
int i;
switch (uMsg)
{
case WM_COMMAND:
switch(wParam)
{
case IDM_SAVE:
CreateBMPFile("picture.bmp",hWnd,BI_RGB,24);
break;
case IDM_NEW:
iCount=0;
InvalidateRect(hWnd,NULL,TRUE);
break;
case IDM_about :
MessageBox(hWnd," Создать приложение picture. Пользователь отмечает нажатиями клавиши мыши 3 точки, не лежащие на одной прямой. Программа рисует крестики в отмеченных точках. После третьей точки программа должна нарисовать треугольник ABC, а также медиану, биссектрису и высоту, проведенные из вершины A. Треугольник рисуется черным цветом, медиана красным, биссектриса синим, высота зеленым . Приложение должно иметь 3 меню – «Файл», «Новое задание», «О программе». В меню «Файл» расположены подменю – «Сохранить» и «Выход». Нарисованное изображение должно сохраняться в файл формата bmp.","About",MB_OK);
break;
case IDM_EXIT:
SendMessage(hWnd, WM_CLOSE, 0, 0);
break;
}
break;
case WM_LBUTTONUP:
bisTrack=false;
break;
case WM_MOUSEMOVE:
if (bisTrack)
{
a[iisTrack].X=LOWORD(lParam);
a[iisTrack].Y=HIWORD(lParam);
InvalidateRect(hWnd,NULL,TRUE);
}
break;
case WM_LBUTTONDOWN:
if (iCount<10)
{
a[iCount].X=LOWORD(lParam);
a[iCount].Y=HIWORD(lParam);
InvalidateRect(hWnd,NULL,TRUE);
}
if (iCount==10)
{
for (int j=0; j<iCount; j++)
{
if ((abs(a[j].X-LOWORD(lParam))<5) && (abs(a[j].Y-HIWORD(lParam))<5))
{
bisTrack=true;
iisTrack=j;
}
}
break;
}
iCount++;
break;
case WM_CREATE:
hMenu = GetMenu(hWnd);
break;
case WM_PAINT:
hDC = BeginPaint(hWnd, &ps);
for (i=0;i<iCount;i++)
{
MoveToEx(hDC, a.X-3,a.Y+3, NULL);
LineTo(hDC, a.X+3,a.Y-3);
MoveToEx(hDC, a.X-3,a.Y-3, NULL);
LineTo(hDC, a.X+3,a.Y+3);
}
if (iCount==10)
{
for (i=0;i<iCount-1;i++)
{
MoveToEx(hDC, a.X,a.Y,NULL);
//TextOut(hDC , a.X+5, a.Y+5,"A",1);
LineTo(hDC,a[i+1].X, a[i+1].Y);
}
ValidateRect(hWnd, NULL);
}
EndPaint(hWnd, &ps);
break;
case WM_CLOSE:
userreply = MessageBox(hWnd, "вы уверены в своем желании закрыть приложение?",
"", MB_YESNO | MB_ICONQUESTION);
if (IDYES == userreply)
DestroyWindow(hWnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
return 0;
}
код оформляйте тегами, тогда помогут!:)