Custom Search
| Translate | Print | A | A | A |


#include <windows.h>
#include <stdio.h>


int x1,y1,x2,y2,x3,y3,x4,y4;

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg,
             WPARAM wParam, LPARAM lParam)
{
HDC hdc;
HDC new_hdc;
static HPEN hnp,hop;
static HBRUSH hnb;

static POINT ptBeg,ptEnd;

//char st[50];
//PAINTSTRUCT ps;


  switch(msg)
  {
      
  case WM_CLOSE :
    DestroyWindow(hwnd);
    break;

  case WM_CREATE:
      hnp = CreatePen(PS_DOT,3,RGB(255,255,0));
      hnb = CreateSolidBrush(RGB(0,0,0));
    break;      

  case WM_DESTROY :
    PostQuitMessage(0);
    break;

  case WM_LBUTTONDOWN:
      ptBeg.x = LOWORD(lParam);
      ptBeg.y = HIWORD(lParam);
      SetCursor(LoadCursor(NULL,IDC_CROSS));
      break;

  case WM_LBUTTONUP:
      new_hdc=GetDC(hwnd);
      SelectObject(new_hdc,hnp);
      SelectObject(new_hdc,hnb);
      Rectangle(new_hdc,ptBeg.x,ptBeg.y,LOWORD(lParam),HIWORD(lParam));
      SelectObject(new_hdc, GetStockObject(WHITE_BRUSH));
      ReleaseDC(hwnd,new_hdc);
      break;


  case WM_RBUTTONDOWN:
      ptEnd.x = LOWORD(lParam);
      ptEnd.y = HIWORD(lParam);
      SetCursor(LoadCursor(NULL,IDC_CROSS));
      break;

  case WM_RBUTTONUP:
      new_hdc=GetDC(hwnd);
      SelectObject(new_hdc,hnp);
      SelectObject(new_hdc,hnb);
      Ellipse(new_hdc,ptEnd.x,ptEnd.y,LOWORD(lParam),HIWORD(lParam));
      SelectObject(new_hdc, GetStockObject(WHITE_BRUSH));
      ReleaseDC(hwnd,new_hdc);
      break;
  
  case WM_MOUSEMOVE :
    SetCursor(LoadCursor(NULL,IDC_CROSS));
      break;
      
  /*
  case WM_MOUSEMOVE :
    {
    hdc=GetDC(hwnd);
    SetCursor(LoadCursor(NULL,IDC_CROSS));

    if (wParam & MK_LBUTTON)
        {
          x1 = LOWORD(lParam);
          y1 = HIWORD(lParam);      
          Ellipse(hdc,x3,y3,x1,y1);
        }
    if (wParam & MK_RBUTTON)
        {
          x2 = LOWORD(lParam);
          y2 = HIWORD(lParam);      
          Rectangle(hdc,x3,y3,x2,y2);      
        }
      break;
    }

  */
    
  }
  return DefWindowProc(hwnd, msg, wParam, lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
           LPSTR lpCmdLine, int nShowCmd)
{
  LPCTSTR className = "ClassName";
  WNDCLASSEX wc;

  wc.cbSize = sizeof(WNDCLASSEX);
  wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
  wc.lpfnWndProc = WndProc;
  wc.cbClsExtra = 0;
  wc.cbWndExtra = 0;
  wc.hInstance = hInstance;
  wc.hIcon = LoadIcon(NULL, IDI_WINLOGO);
  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  wc.lpszMenuName = NULL;
  wc.lpszClassName = className;
  wc.hIconSm = LoadIcon(NULL, IDI_WINLOGO);

  if (!RegisterClassEx(&wc))
  {
    MessageBox(NULL, "Error registering class",
      "Error", MB_OK | MB_ICONERROR);
    return 1;
  }

  HWND hwnd = CreateWindowEx(
    0,
    className,
    "08 - Mouse Input",
    WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, CW_USEDEFAULT,
    300, 300,
    NULL,
    NULL,
    hInstance,
    NULL
    );

  if (!hwnd)
  {
    MessageBox(NULL, "Error creating window",
      "Error", MB_OK | MB_ICONERROR);
    return 1;
  }

  ShowWindow(hwnd, nShowCmd);

  MSG msg;

  while (GetMessage(&msg, NULL, 0, 0) > 0)
  {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
  }

  return (int)msg.wParam;
}



--
------------------------~!~----------------------
Best Regards,
G.Arun Bala
B.Tech Information Technology
SSNCE,Kalavakkam
http://dmatriz.wordpress.com
-------------------------~!~---------------------




Comments [Refresh] [ RSS ]