![]() |
|
|||||||
![]() |
|
|
Thread Tools | Display Modes |
|
#6
|
|||
|
|||
|
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);
}
|
|
#7
|
|||
|
|||
|
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);
}
|
|
#9
|
|||
|
|||
|
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;
}
|
![]() |
| Thread Tools | |
| Display Modes | |
|
|
|
|||||||||||||||