CFanatic

Go Back   CFanatic > Programming > C++ Programming

c++ mini projects topic posted under C++ Programming which is a part of Programming category in CFanatic Forum
Reply
 
Thread Tools Display Modes
  #1  
Old 08-26-2010, 01:50 AM
Junior Member
 
Join Date: Aug 2010
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
rakesh is on a distinguished road
| More
Smile c++ mini projects

how to develop scientific calculator programimg
Reply With Quote
  #2  
Old 08-26-2010, 07:09 AM
shabbir's Avatar
Administrator
 
Join Date: Sep 2006
Posts: 1,225
Thanks: 79
Thanked 71 Times in 48 Posts
shabbir has a spectacular aura aboutshabbir has a spectacular aura about
| More
Re: c++ mini projects

Have you started anything with it.
Reply With Quote
  #3  
Old 10-22-2010, 07:10 AM
Junior Member
 
Join Date: Oct 2010
Posts: 9
Thanks: 0
Thanked 1 Time in 1 Post
pavankumar is on a distinguished road
| More
Re: c++ mini projects

u mean like a windows scientific calci using graphics or normal programming?
Reply With Quote
  #4  
Old 10-22-2010, 08:56 AM
shabbir's Avatar
Administrator
 
Join Date: Sep 2006
Posts: 1,225
Thanks: 79
Thanked 71 Times in 48 Posts
shabbir has a spectacular aura aboutshabbir has a spectacular aura about
| More
Re: c++ mini projects

I meant what have you started now.
Reply With Quote
  #5  
Old 10-23-2010, 05:32 AM
Junior Member
 
Join Date: Oct 2010
Posts: 9
Thanks: 0
Thanked 0 Times in 0 Posts
anubhooti is on a distinguished road
| More
Re: c++ mini projects

plz help me in making my program in tc++..i hav to make a program of cd world...contents-issuing a cd,date,return date,costs,details of person etc..n modifying dat...
Reply With Quote
  #6  
Old 10-23-2010, 05:53 AM
Junior Member
 
Join Date: Oct 2010
Posts: 9
Thanks: 0
Thanked 0 Times in 0 Posts
anubhooti is on a distinguished road
| More
Re: c++ mini projects

Code:
#include"stdio.h"
#include"conio.h"
#include"dos.h"
#include"stdlib.h"
#include"string.h"

void DISPNUM(char *);
void main()
{
	clrscr();

	_setcursortype(0);
	gotoxy(30,19);
	textcolor(GREEN+BLINK);
	cprintf("SIMPLE CALCULATOR");
	gotoxy(50,21);
	textcolor(BLUE+BLINK);
	cprintf("By Rakesh Juyal");
	getch();
//	clrscr();

	int x=30,y=10;

	textcolor(WHITE);
	gotoxy(x,y);
	cprintf("7    8    9");
	gotoxy(x,y+2);
	cprintf("4    5    6");
	gotoxy(x,y+4);
	cprintf("1    2    3");
	gotoxy(x,y+6);
	cprintf("0");

	textcolor(RED);
	gotoxy(x+5,y+6);
	cprintf(".    =");


	textcolor(GREEN);
	x=x+15;
	gotoxy(x,y);
	cprintf("/");

	gotoxy(x,y+2);
	cprintf("*");

	gotoxy(x,y+4);
	cprintf("-");

	gotoxy(x,y+6);
	cprintf("+");

//Draw The For Calc//
	x=28;y=5;
	gotoxy(x,y);

	textcolor(WHITE);

	//  Ú	     & 		¿ //
	cprintf("%c",218);
	gotoxy(28+20,y);
	cprintf("%c",191);
	//  Ú	     & 		¿ //

//Horiz. Boundary
	for(x=29;x<=28+19;x++)
	{
		gotoxy(x,y);
		cprintf("%c",196);
		gotoxy(x,y+12);
		cprintf("%c",196);
	}
//End of Horiz. Bound

//  Ù  		    &           À  //
	cprintf("%c",217);
	x=28;y=y+12;
	gotoxy(x,y);
	cprintf("%c",192);
//End of  Ù  		    &           À  //

//Vertic. Bound.

	for(y=6;y<=16;y++)
	{
		gotoxy(x,y);
		cprintf("%c",179);
		gotoxy(x+20,y);
		cprintf("%c",179);
	}
//End of Vertic Bou.

	y=6;

	for(x=30;x<=30+16;x++)
	{
		gotoxy(x,y);
		cprintf("%c",196);
		gotoxy(x,y+2);
		cprintf("%c",196);
	}

	gotoxy(30,y+1);
	cprintf("%c               %c",179,179);

	gotoxy(30,y);
	cprintf("%c",218);
	gotoxy(30+16,y);
	cprintf("%c",191);


	gotoxy(30,y+2);
	cprintf("%c",192);
	gotoxy(30+16,y+2);
	cprintf("%c",217);


//End of Vertic Bound.

	//OutPut at X=30,Y=8//


	char ch;
char operand1[15]="",operand2[15]="",BLANK[15]="            ";
	char operator1,first='y';
	long double num1=0,num2=0;
	int i=0,ERROR=0; //Digits
	int MAX=10;
	DISPNUM(0);
	do
	{
		ch=getch();
		if(ch=='x1b')
		{
			for(int i=1000;i>=200;i=i-50)
			{
				sound(i);
				delay(100);
			}
			nosound();
			break;
		}

		//Numeric//
		if((ch>='0')&&(ch<='9'))
		{
			if(i<MAX)
			{
				if(first=='y')
				{
					operand1[i]=ch;
					DISPNUM(operand1);
					i++;
				}
				else
				{
					operand2[i]=ch;
					DISPNUM(operand2);
					i++;
				}
			}
			else		//More than 8 digit
			{
				ERROR=1;
			}
		}
		else if(ch=='.')
		{
			if(first=='y')
			{
				if(strchr(operand1,'.')==NULL)
				{
					operand1[i]=ch;
					i++;
				}
				DISPNUM(operand1);
			}
			else
			{
				if(strchr(operand2,'.')==NULL)
				{
					operand2[i]=ch;
					i++;
				}
				DISPNUM(operand2);
			}
		}
		//Non Numeric
		else if (ch=='*')
		{
			operator1='*';
			first='n';
			i=0;
		}
		else if (ch=='/')
		{
			operator1='/';
			first='n';
			i=0;
		}
		else if (ch=='+')
		{
			operator1='+';
			first='n';
			i=0;
		}
		else if (ch=='-')
		{
			operator1='-';
			first='n';
			i=0;
		}
		else if ((ch=='=')||(ch=='
'))
		{
			//Store in Floating
			if(strcmpi(operand1,BLANK)!=0)
			{
				num1=_atold(operand1);
			}
			if(strcmpi(operand2,BLANK)!=0)
			{
				num2=_atold(operand2);
			}
			//Now Calculate
			switch (operator1)
			{
				case '+':
					num1=num1+num2;
					break;
				case '-':
					num1=num1-num2;
					break;
				case '*':
					num1=num1*num2;
					break;
				case '/':
					num1=num1/num2;
					break;
			}
			//ltoa(num1,operand1,10);
			gcvt(num1,12,operand1);
			DISPNUM(operand1);
			i=0;
			first='y';

			strcpy(operand1,BLANK);
			strcpy(operand2,BLANK);
		}
		else              //Invalid Choice
		{
			ERROR=1;
		}

//Beep On ERROR else ------ //
		if (ERROR==0)
		{
			sound(920);
		}
		else
		{
			sound(100);
			ERROR=0;
		}
		delay(250);
		nosound();

		gotoxy(1,1);
		cprintf("%d",i);

	}while(1);


//	clrscr();
	gotoxy(30,19);
	textcolor(GREEN+BLINK);
	cprintf("SIMPLE CALCULATOR");
	gotoxy(50,21);
	textcolor(BLUE+BLINK);
	cprintf("By Rakesh Juyal");
//	getch();
}
void DISPNUM(char *num)
{
	textbackground(RED);
	gotoxy(31,7);
	cprintf("               ");
	gotoxy(31,7);
	cprintf("%s",num);
}

Last edited by shabbir; 10-23-2010 at 07:35 AM. Reason: Code Blocks
Reply With Quote
  #7  
Old 10-25-2010, 09:27 AM
Junior Member
 
Join Date: Oct 2010
Posts: 8
Thanks: 0
Thanked 8 Times in 5 Posts
ashken is on a distinguished road
| More
Re: c++ mini projects

I have a developed a UI with basic functionality, from here you can go ahead to implement the functionality of the calculator.

Code:
//To be compiled with visual C++ 2008.create a blank win32 project

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")

#include <windows.h>
#include <commctrl.h>

#define ID_FILE 0
#define ID_ABOUT 22
#define ID_EXIT 23
//edit box
#define ID_EDIT 1
//buttons
#define BTN1 2
#define BTN2 3
#define BTN3 4
#define BTN4 5
#define BTN5 6
#define BTN6 7
#define BTN7 8
#define BTN8 9
#define BTN9 10
#define BTN0 11
#define BTNd 12
#define BTNmod 13

#define plus 14
#define minus 15
#define mult 16
#define div 17
#define Cl 18
#define equi 19
#define MC 20
#define MR 21

char classname[]="mycalc";

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
void menus(HWND);

HINSTANCE hInst;
HWND editbox;

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpstr,int cmd)
{

    HWND hwnd;
    WNDCLASSEX wc;
    MSG msg;

    wc.hInstance = hInstance;
    wc.lpszClassName = classname;
    wc.lpfnWndProc = WndProc;
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = 0;

    wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
    wc.hIconSm = LoadIcon(NULL,IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL,IDC_ARROW);
    wc.lpszMenuName =0;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = wc.cbClsExtra;
    wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);

    if(!RegisterClassEx(&wc))
    {
        MessageBox(0,"Window Class Registration Failed","Error",MB_OK);
        return 1;
    }

    hwnd = CreateWindowEx(
                          0,
                          classname,
                          "Calculator",
                          WS_OVERLAPPEDWINDOW&~(WS_MAXIMIZEBOX|WS_THICKFRAME),//disable window resizing & maximizebox
                          CW_USEDEFAULT,
                          CW_USEDEFAULT,
                          230,
                          250,
                          0,
                          NULL,
                          hInstance,
                          NULL
                          );

    ShowWindow(hwnd,cmd);

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

    return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam)
{

    switch(message)
    {
        case WM_CREATE:
        menus(hwnd);
        //HWND editbox;
        HWND one,two,three,four,five,six,seven ,eight,nine,zero,dot,modulo;
        HWND add,mc,sub,mr,timx, cls,equival,divi;

        editbox = CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT","",WS_CHILD|WS_VISIBLE,10,10,200,25,hwnd,(HMENU)ID_EDIT,GetModuleHandle(NULL),NULL);

        one = CreateWindow("button","1",BS_PUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,10,55,30,25,hwnd,(HMENU)BTN1,hInst,0);
        two = CreateWindow("button","2",BS_PUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,45,55,30,25,hwnd,(HMENU)BTN2,hInst,0);
        three = CreateWindow("button","3",BS_PUSHBUTTON|WS_TABSTOP|WS_CHILD|WS_VISIBLE,80,55,30,25,hwnd,(HMENU)BTN3,hInst,0);
        four = CreateWindow("button","4",BS_PUSHBUTTON|WS_TABSTOP|WS_CHILD|WS_VISIBLE,10,90,30,25,hwnd,(HMENU)BTN4,hInst,0);
        five = CreateWindow("button","5",BS_PUSHBUTTON|WS_TABSTOP|WS_CHILD|WS_VISIBLE,45,90,30,25,hwnd,(HMENU)BTN5,hInst,0);
        six = CreateWindow("button","6",BS_PUSHBUTTON|WS_TABSTOP|WS_CHILD|WS_VISIBLE,80,90,30,25,hwnd,(HMENU)BTN6,hInst,0);
        seven = CreateWindow("button","7",BS_PUSHBUTTON|WS_TABSTOP|WS_CHILD|WS_VISIBLE,10,125,30,25,hwnd,(HMENU)BTN7,hInst,0);
        eight = CreateWindow("button","8",BS_PUSHBUTTON|WS_TABSTOP|WS_CHILD|WS_VISIBLE,45,125,30,25,hwnd,(HMENU)BTN8,hInst,0);
        nine = CreateWindow("button","9",BS_PUSHBUTTON|WS_TABSTOP|WS_CHILD|WS_VISIBLE,80,125,30,25,hwnd,(HMENU)BTN9,hInst,0);
        zero = CreateWindow("button","0",BS_PUSHBUTTON|WS_TABSTOP|WS_CHILD|WS_VISIBLE,10,160,30,25,hwnd,(HMENU)BTN0,hInst,0);
        dot = CreateWindow("button",".",BS_PUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,45,160,30,25,hwnd,(HMENU)BTNd,hInst,0);
        modulo = CreateWindow("button","%",BS_PUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,80,160,30,25,hwnd,(HMENU)BTNmod,hInst,0);

        add = CreateWindow("button","+",BS_DEFPUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,145,55,30,25,hwnd,(HMENU)plus,hInst,0);
        mc = CreateWindow("button","MC",BS_DEFPUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,180,55,30,25,hwnd,(HMENU)MC,hInst,0);
        sub = CreateWindow("button","-",BS_DEFPUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,145,90,30,25,hwnd,(HMENU)minus,hInst,0);
        mr = CreateWindow("button","MR",BS_DEFPUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,180,90,30,25,hwnd,(HMENU)MR,hInst,0);
        timx = CreateWindow("button","x",BS_DEFPUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,145,125,30,25,hwnd,(HMENU)mult,hInst,0);
        cls = CreateWindow("button","C",BS_DEFPUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,180,125,30,25,hwnd,(HMENU)Cl,hInst,0);
        divi = CreateWindow("button","/",BS_DEFPUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,145,160,30,25,hwnd,(HMENU)div,hInst,0);
        equival = CreateWindow("button","=",BS_DEFPUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,180,160,30,25,hwnd,(HMENU)equi,hInst,0);

        break;

        case WM_COMMAND:
        DWORD len;
        DWORD buffsize;
        LPSTR text;
        switch(LOWORD(wparam))
        {
            case ID_about:
            MessageBox(hwnd,"Calculator Application Example Using Win32 API\nBy - Ashken","About",MB_OK);
            break;
            case ID_EXIT:
            SendMessage(hwnd,WM_CLOSE,0,0);
            break;

            case BTN0:
			SetWindowText(editbox,"0");
            break;

            case BTN1:
            SetWindowText(editbox,"1");
            break;

            case BTN2:
            SetWindowText(editbox,"2");
            break;
            case BTN3:
            SetWindowText(editbox,"3");
            break;
            case BTN4:
            SetWindowText(editbox,"4");
            break;
            case BTN5:
            SetWindowText(editbox,"5");
            break;
            case BTN6:
            SetWindowText(editbox,"6");
            break;
            case BTN7:
            SetWindowText(editbox,"7");
            break;
            case BTN8:
            SetWindowText(editbox,"8");
            break;

            case BTN9:
            SetWindowText(editbox,"9");
            break;
			case BTNd:
				SetWindowText(editbox,".");
				break;
			case BTNmod:
				SetWindowText(editbox,"%");
				break;
			case Cl:
				SetWindowText(editbox,"");
				break;


        }


        break;

        case WM_DESTROY:
        PostQuitMessage(0);
        break;

        default:
        return DefWindowProc(hwnd,message,wparam,lparam);
    }
    return 0;
}

void menus(HWND handle)
{
    HMENU bar,menu;
    bar = CreateMenu();
    menu = CreateMenu();
    AppendMenu(menu,MF_STRING,ID_ABOUT,"&About");
	AppendMenu(menu,MF_SEPARATOR,0,0);
    AppendMenu(menu,MF_STRING,ID_EXIT,"&Quit");

    AppendMenu(bar,MF_POPUP,(UINT_PTR)menu,"&File");
    SetMenu(handle,bar);

}
regards!!
Attached Files
File Type: zip calculator UI.zip (6.8 KB, 15 views)
Reply With Quote
The Following 2 Users Say Thank You to ashken For This Useful Post:
coderzone (10-25-2010), shabbir (10-25-2010)
  #8  
Old 10-25-2010, 10:26 PM
coderzone's Avatar
Senior Member
 
Join Date: May 2007
Posts: 277
Thanks: 16
Thanked 12 Times in 12 Posts
coderzone is on a distinguished road
| More
Re: c++ mini projects

Askhen this is really nice. Thanks for sharing.
Reply With Quote
  #9  
Old 11-05-2010, 08:14 AM
Junior Member
 
Join Date: Oct 2010
Posts: 8
Thanks: 0
Thanked 8 Times in 5 Posts
ashken is on a distinguished road
| More
Re: c++ mini projects

I was able to add some functionality on the calculator,it can now perform simple math on integers.

Code:
#include <windows.h>
#include <commctrl.h>
#include <shlwapi.h>

#define ID_FILE 0
#define ID_ABOUT 22
#define ID_EXIT 23
//edit box
#define ID_EDIT 1
//buttons
#define BTN1 2
#define BTN2 3
#define BTN3 4
#define BTN4 5
#define BTN5 6
#define BTN6 7
#define BTN7 8
#define BTN8 9
#define BTN9 10
#define BTN0 11
#define BTNd 12
#define BTNmod 13

#define plus 14
#define minus 15
#define mult 16
#define div 17
#define Cl 18
#define equi 19
#define MC 20
#define MR 21

#define statab 23
#define okbut 24
char classname[]="mycalc";

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
LRESULT CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM);
void reg();
void create();

void sum(HWND);
void subt(HWND);
void division(HWND);
void multiplication(HWND);

void menus(HWND);
HINSTANCE dhinst;
HINSTANCE hInst;
HWND editbox;
HWND zero;

int plusb;
int alt;
int multiply;
int divide;
int subtract;
HWND stat,okb;

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpstr,int cmd)
{
	dhinst=hInstance;
    HWND hwnd;
    WNDCLASSEX wc;
    MSG msg;
    wc.hInstance = hInstance;
    wc.lpszClassName = classname;
    wc.lpfnWndProc = WndProc;
    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = 0;
    wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
    wc.hIconSm = LoadIcon(NULL,IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL,IDC_ARROW);
    wc.lpszMenuName =0;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = wc.cbClsExtra;
    wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);
    if(!RegisterClassEx(&wc))
    {
        MessageBox(0,"Window Class Registration Failed","Error",MB_OK);
        return 1;
    }
    hwnd = CreateWindowEx(
                          0,
                          classname,
                          "Calculator",
                          WS_OVERLAPPEDWINDOW&~(WS_MAXIMIZEBOX|WS_THICKFRAME),
                          300,
                          150,
                          230,
                          250,
                          0,
                          NULL,
                          hInstance,
                          NULL
                          );
    ShowWindow(hwnd,cmd);
    while(GetMessage(&msg,NULL,0,0)>0)
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam)
{
    switch(message)
    {
        case WM_CREATE:
			reg();
        menus(hwnd);
        HWND one,two,three,four,five,six,seven ,eight,nine,dot,modulo;
        HWND add,mc,sub,mr,timx, cls,equival,divi;
        editbox = CreateWindowEx(WS_EX_CLIENTEDGE,"EDIT","",ES_NUMBER|WS_CHILD|WS_VISIBLE,10,10,200,25,hwnd,(HMENU)ID_EDIT,GetModuleHandle(NULL),NULL);
        one = CreateWindow("button","1",BS_PUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,10,55,30,25,hwnd,(HMENU)BTN1,hInst,0);
        two = CreateWindow("button","2",BS_PUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,45,55,30,25,hwnd,(HMENU)BTN2,hInst,0);
        three = CreateWindow("button","3",BS_PUSHBUTTON|WS_TABSTOP|WS_CHILD|WS_VISIBLE,80,55,30,25,hwnd,(HMENU)BTN3,hInst,0);
        four = CreateWindow("button","4",BS_PUSHBUTTON|WS_TABSTOP|WS_CHILD|WS_VISIBLE,10,90,30,25,hwnd,(HMENU)BTN4,hInst,0);
        five = CreateWindow("button","5",BS_PUSHBUTTON|WS_TABSTOP|WS_CHILD|WS_VISIBLE,45,90,30,25,hwnd,(HMENU)BTN5,hInst,0);
        six = CreateWindow("button","6",BS_PUSHBUTTON|WS_TABSTOP|WS_CHILD|WS_VISIBLE,80,90,30,25,hwnd,(HMENU)BTN6,hInst,0);
        seven = CreateWindow("button","7",BS_PUSHBUTTON|WS_TABSTOP|WS_CHILD|WS_VISIBLE,10,125,30,25,hwnd,(HMENU)BTN7,hInst,0);
        eight = CreateWindow("button","8",BS_PUSHBUTTON|WS_TABSTOP|WS_CHILD|WS_VISIBLE,45,125,30,25,hwnd,(HMENU)BTN8,hInst,0);
        nine = CreateWindow("button","9",BS_PUSHBUTTON|WS_TABSTOP|WS_CHILD|WS_VISIBLE,80,125,30,25,hwnd,(HMENU)BTN9,hInst,0);
        zero = CreateWindow("button","0",BS_PUSHBUTTON|WS_TABSTOP|WS_CHILD|WS_VISIBLE,10,160,30,25,hwnd,(HMENU)BTN0,hInst,0);
        dot = CreateWindow("button",".",BS_PUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,45,160,30,25,hwnd,(HMENU)BTNd,hInst,0);
        modulo = CreateWindow("button","%",BS_PUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,80,160,30,25,hwnd,(HMENU)BTNmod,hInst,0);
        add = CreateWindow("button","+",BS_DEFPUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,145,55,30,25,hwnd,(HMENU)plus,hInst,0);
        mc = CreateWindow("button","MC",BS_DEFPUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,180,55,30,25,hwnd,(HMENU)MC,hInst,0);
        sub = CreateWindow("button","-",BS_DEFPUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,145,90,30,25,hwnd,(HMENU)minus,hInst,0);
        mr = CreateWindow("button","MR",BS_DEFPUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,180,90,30,25,hwnd,(HMENU)MR,hInst,0);
        timx = CreateWindow("button","x",BS_DEFPUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,145,125,30,25,hwnd,(HMENU)mult,hInst,0);
        cls = CreateWindow("button","C",BS_DEFPUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,180,125,30,25,hwnd,(HMENU)Cl,hInst,0);
        divi = CreateWindow("button","/",BS_DEFPUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,145,160,30,25,hwnd,(HMENU)div,hInst,0);
        equival = CreateWindow("button","=",BS_DEFPUSHBUTTON|WS_TABSTOP|WS_VISIBLE|WS_CHILD,180,160,30,25,hwnd,(HMENU)equi,hInst,0);

        break;
        case WM_COMMAND:
        INT len;
        
        LPSTR text;
		

        len=GetWindowTextLength(editbox)+1;
		text=(LPSTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,len);
		GetWindowText(editbox,text,len);
		BOOL success;

        switch(LOWORD(wparam))
        {
            case ID_about:
            create();
            break;
            case ID_EXIT:
            SendMessage(hwnd,WM_CLOSE,0,0);
            break;

			case BTN0:
            if(text==NULL)
				{
					StrCpy(text,"0");
				}
			    else{
					StrCat(text,"0");
				}
			SetWindowText(editbox,text);
            break;

            case BTN1:
				if(text==NULL)
				{
					StrCpy(text,"1");
				}
				else{
					StrCat(text,"1");
				}
            SetWindowText(editbox,text);
            break;
            case BTN2:
				if(text==NULL)
				{
					StrCpy(text,"2");
				}
				else
				{
					StrCat(text,"2");
				}
            SetWindowText(editbox,text);
            break;

            case BTN3:
           if(text==NULL)
			{
				StrCpy(text,"3");
			}
			else
			{
				StrCat(text,"3");
			}
            SetWindowText(editbox,text);
            break;
            case BTN4:
				if(text==NULL)
				{
					StrCpy(text,"4");
				}
				else
				{
					StrCat(text,"4");
				}
            SetWindowText(editbox,text);
            break;
            case BTN5:
				if(text==NULL)
				{
					StrCpy(text,"5");
				}
				else
				{
					StrCat(text,"5");
				}
            SetWindowText(editbox,text);
            break;
            case BTN6:
				if(text==NULL)
				{
					StrCpy(text,"6");
				}
				else{
					StrCat(text,"6");
				}
            SetWindowText(editbox,text);
            break;
            case BTN7:
				if(text==NULL)
				{
					StrCpy(text,"7");
				}
				else
				{
					StrCat(text,"7");
				}
            SetWindowText(editbox,text);
            break;
            case BTN8:
				if(text==NULL)
				{
					StrCpy(text,"8");
				}
				else
				{
					StrCat(text,"8");
				}
            SetWindowText(editbox,text);
            break;
            case BTN9:
				if(text==NULL)
				{
					StrCpy(text,"9");
				}
				else
				{
					StrCat(text,"9");
				}
            SetWindowText(editbox,text);
            break;
			case BTNd:
				MessageBeep(MB_ICONERROR);
				break;
			case BTNmod:
				MessageBeep(MB_ICONERROR);
				SetWindowText(editbox,text);
				break;
			case MC:
				SetWindowText(editbox,"");
				break;
			case MR:
				SetWindowText(editbox,"");
				break;
			case Cl:
				SetWindowText(editbox,"");
				break;
			case plus:
				plusb=GetDlgItemInt(hwnd,ID_EDIT,&success,FALSE);
				SetWindowText(editbox,"");
				break;

			case mult:
				multiply=GetDlgItemInt(hwnd,ID_EDIT,&success,FALSE);
			    SetWindowText(editbox,"");
				break;

			case div:
				divide = GetDlgItemInt(hwnd,ID_EDIT,&success,FALSE);
				SetWindowText(editbox,"");
				break;

			case minus:
				subtract=GetDlgItemInt(hwnd,ID_EDIT,&success,FALSE);
				SetWindowText(editbox,"");
				break;

			case equi:
				alt=GetDlgItemInt(hwnd,ID_EDIT,&success,FALSE);
			
				if(plusb!=NULL)
					sum(hwnd);
				
			    else if(multiply !=NULL)
					multiplication(hwnd);
				
				else if(divide != NULL && alt != NULL)
					division(hwnd);
				else if(subtract !=NULL)
					subt(hwnd);
				
				break;
        }
		
        break;
        case WM_DESTROY:
        PostQuitMessage(0);
        break;
        default:
        return DefWindowProc(hwnd,message,wparam,lparam);
    }
    return 0;
}

void menus(HWND handle)
{
    HMENU bar,menu;
    bar = CreateMenu();
    menu = CreateMenu();
    AppendMenu(menu,MF_STRING,ID_ABOUT,"&About");
	AppendMenu(menu,MF_SEPARATOR,0,0);
    AppendMenu(menu,MF_STRING,ID_EXIT,"&Quit");

    AppendMenu(bar,MF_POPUP,(UINT)menu,"&File");
    SetMenu(handle,bar);
}

void reg()
{
	WNDCLASSEX wc={0};
	wc.hInstance =dhinst;
	wc.lpfnWndProc = DlgProc;
	wc.cbSize=sizeof(WNDCLASSEX);
	wc.lpszClassName = "aap";
	wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);

	RegisterClassEx(&wc);
}
void create()
{
	CreateWindowEx(
		WS_EX_DLGMODALFRAME|WS_EX_TOPMOST,
		"aap",
		"About",
		WS_VISIBLE|WS_CAPTION,
		370,
		270,
		180,
		150,
		0,
		0,
		dhinst,
		0);
}

LRESULT CALLBACK DlgProc(HWND hwndd,UINT dmsg,WPARAM wpar,LPARAM lpar)
{
	switch(dmsg)
	{
	case WM_CREATE:
		stat = CreateWindow("static","Calculator Application \n\n     by  ashken",WS_CHILD|WS_VISIBLE,10,10,200,100,hwndd,(HMENU)statab,0,0);
		okb = CreateWindow("button","Close",BS_DEFPUSHBUTTON|WS_CHILD|WS_VISIBLE,50,80,80,25,hwndd,(HMENU)okbut,0,0);
       break;
	case WM_COMMAND:
		switch(wpar)
		{
		case okbut:
			DestroyWindow(hwndd);
			break;
		}
		break;
	case WM_DESTROY:
		DestroyWindow(hwndd);
		break;
	default:
		return(DefWindowProc(hwndd,dmsg,wpar,lpar));
	}
	return 0;
}

void sum(HWND hwnd)
{
    plusb += alt;
    SetWindowText(editbox,"");
    SetDlgItemInt(hwnd,ID_EDIT,plusb,FALSE);
	plusb=NULL;
}
void subt(HWND hwnd)
{
   subtract-=alt;
   SetWindowText(editbox,"");
   SetDlgItemInt(hwnd,ID_EDIT,subtract,FALSE);
   subtract=NULL;
}
void multiplication(HWND hwnd)
{
     multiply *= alt;
     SetWindowText(editbox,"");
	 SetDlgItemInt(hwnd,ID_EDIT,multiply,FALSE);
	 multiply=NULL;
}
void division(HWND hwnd)
{
    divide /=alt;
	SetWindowText(editbox,"");
	SetDlgItemInt(hwnd,ID_EDIT,divide,FALSE);
	divide=NULL;
}
Attached Files
File Type: zip calc.zip (8.2 KB, 19 views)
Reply With Quote
The Following 2 Users Say Thank You to ashken For This Useful Post:
coderzone (11-07-2010), shabbir (11-05-2010)
  #10  
Old 11-07-2010, 07:22 AM
coderzone's Avatar
Senior Member
 
Join Date: May 2007
Posts: 277
Thanks: 16
Thanked 12 Times in 12 Posts
coderzone is on a distinguished road
| More
Re: c++ mini projects

Thanks for sharing.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
Mini Project Using C vmanojnair C Programming 0 12-31-2006 01:22 AM



Powered by vBulletin® Version 3.7.4
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2010, Crawlability, Inc.