VB icon

^A Paint Program in Visual C++^

Submitted on: 1/4/2015 4:40:00 AM
By: Niloy Mondal (from psc cd)  
Level: Beginner
User Rating: By 13 Users
Compatibility: Microsoft Visual C++
Views: 10188
     This shows how to make a simple free-hand drawing program in Visual C++. The code is commented.


INCLUDE files:

Can't Copy and Paste this?
Click here for a copy-and-paste friendly version of this code!
//INCLUDE files for :^A Paint Program in Visual C++^
Can't Copy and Paste this?
Click here for a copy-and-paste friendly version of this code!
// Name: ^A Paint Program in Visual C++^
// Description:This shows how to make a simple free-hand drawing program in Visual C++. The code is commented.
// By: Niloy Mondal (from psc cd)

//Programmer:- Niloy Mondal. Email:- niloygk@yahoo.com
#include <windows.h>
int lastx,lasty,x,y;		//GLOBAL VARIABLES used in drawing.
//The WinMain contains all formality stuff that must be written in almost every Windows Program.
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
 PSTR szCmdLine, int iCmdShow)
static TCHAR szAppName[] = TEXT ("Paint") ;//Winddow Class name
HWND hwnd ;
MSG msg ;
WNDCLASSwndclass ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance= hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor= LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;
if (!RegisterClass (&wndclass))
 MessageBox (NULL, TEXT ("This program requires Windows 98!"), 
szAppName, MB_ICONERROR) ;
 return 0 ;
hwnd = CreateWindow (szAppName, // window class name
 TEXT ("Paint in Visual C++."), // window caption
 WS_OVERLAPPEDWINDOW,// window style
 CW_USEDEFAULT,// initial x position
 CW_USEDEFAULT,// initial y position
 CW_USEDEFAULT,// initial x size
 CW_USEDEFAULT,// initial y size
 NULL,// parent window handle
 NULL,// window menu handle
 hInstance, // program instance handle
 NULL) ;// creation parameters
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))				//The Message Loop
 TranslateMessage (&msg) ;
 DispatchMessage (&msg) ;
return msg.wParam ;
void line(HDC _hdc,int x1,int y1,int x2,int y2)//This function draws line by the given four coordinates.
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
HDC hdc ;
RECTrect ;
switch (message)
	 case WM_LBUTTONDOWN:					//If Left mouse button is pressed
			lastx=LOWORD(lParam);			//Store the x-coordiante in lastx
			lasty=HIWORD(lParam);			//Store the y-coordinate in lasty
			return 0;
case WM_MOUSEMOVE:						//When mouse is moved on the client area (or form for VB users)
		 hdc = GetDC(hwnd);					//hdc is handle to device context
		 x=LOWORD(lParam);					//Store the current x 
		 y=HIWORD(lParam);					//Store the current y
		 if (wParam & MK_LBUTTON)			//If Left mouse button is down then draw
			line(hdc,lastx,lasty,x,y);		//Draw the line frome the last pair of coordiates to current
			lastx=x;						//The current x becomes the lastx for next line to be drawn
			lasty=y;						//The current y becomes the lasty for next line to be drawn
		 return 0;
case WM_PAINT:
 hdc = BeginPaint (hwnd, &ps) ;
 GetClientRect (hwnd, &rect) ;
		 TextOut(hdc,0,0 ,"Programmer :- Niloy Mondal. Email:- niloygk@yahoo.com",53);		 		 		 
		 EndPaint (hwnd, &ps) ;
 return 0 ;
 PostQuitMessage (0) ;
 return 0 ;
return DefWindowProc (hwnd, message, wParam, lParam) ;

Other 9 submission(s) by this author


Report Bad Submission
Use this form to tell us if this entry should be deleted (i.e contains no code, is a virus, etc.).
This submission should be removed because:

Your Vote

What do you think of this code (in the Beginner category)?
(The code with your highest vote will win this month's coding contest!)
Excellent  Good  Average  Below Average  Poor (See voting log ...)

Other User Comments

 There are no comments on this submission.

Add Your Feedback
Your feedback will be posted below and an email sent to the author. Please remember that the author was kind enough to share this with you, so any criticisms must be stated politely, or they will be deleted. (For feedback not related to this particular code, please click here instead.)

To post feedback, first please login.