Custom Search
Translate | Print | Email | del.icio.us | 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,2,RGB(0,0,255));
    //hnb = CreateSolidBrush(RGB(0,0,0));
      hnb = CreateHatchBrush(3,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_PAINT:
      hdc=GetDC(hwnd);
      Ellipse(hdc,10,10,200,300);
      Rectangle(hdc,200,300,500,600);
      SelectObject(hdc, GetStockObject(WHITE_BRUSH));
      ReleaseDC(hwnd,hdc);
      break;

  case WM_LBUTTONDBLCLK:
      MessageBox(hwnd,"Left Mouse Button DOUBLE Clicked","MOUSE OPTIONS",MB_OK);
      break;

   case WM_RBUTTONDBLCLK:
      MessageBox(hwnd,"Right Mouse Button DOUBLE Clicked","MOUSE OPTIONS",MB_OK);
      break;

  case WM_MBUTTONDBLCLK:
      MessageBox(hwnd,"Middle Mouse Button DOUBLE Clicked","MOUSE OPTIONS",MB_OK);
      break;

/*  case WM_NCLBUTTONDOWN:
      MessageBox(hwnd,"Left Mouse Button in Non-Client Area","MOUSE OPTIONS",MB_OK);
      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;
    }
*/
  
    case WM_KEYDOWN:
        char str[20];
        if(wParam >= 'A' && wParam <= 'Z')
        {
//          str = itoa(wParam);
          sprintf(str," Button Pressed is %c",wParam);
          MessageBox(hwnd, str ,"A-Z",MB_OK);
        }
        else if(wParam == VK_SHIFT)
            MessageBox(hwnd,"Shift + Ctrl Key is pressed","Key",MB_OK);
        else if(wParam == VK_ESCAPE)
        {
          MessageBox(hwnd,"Closing Windows ESC Key is pressed","ESC Key",MB_OK);
          SendMessage(hwnd,WM_CLOSE,0,0);
        }
        break;

    
    case WM_KEYUP:
        if(wParam == 'Q')
          MessageBox(hwnd,"Q is released","Q",MB_OK);
        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,"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 ]