Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2011, 11:06   #1
natalya1990
Новичок
Джуниор
 
Регистрация: 17.06.2011
Сообщений: 2
По умолчанию создаю калькулятор WinApi

помогите пожалуйста добавить обработчик нажатия на кнопки
Код:
#include <windows.h>

char className[] = "WindowClass1";
MSG msg;
HWND hbutton, hbutton1,hbutton2,hbutton3,hbutton4,hbutton5,hbutton6,hbutton7,hbutton8,hbutton9,hbutton10,hbutton11,hbutton12,hbutton13,hbutton14,hbutton15, hEdit, hedit2;
HINSTANCE hInst;
int count = 1, s = 1;
int resX, resY;
double k;
 buff;

#define ID_BUTTON1	 3000
#define ID_BUTTON15	 3015
#define ID_MAIN_BUTTON	 3002
#define ID_EDIT1	 3001

LRESULT CALLBACK WndProc(HWND wnd, UINT msg, WPARAM wParam, LPARAM lParam){
    switch(msg){

	case WM_CREATE: {

		hEdit = CreateWindow("edit","Ok",WS_CHILD|WS_VISIBLE|WS_BORDER, 20,20,200,20,wnd,(HMENU)ID_EDIT1,hInst,0);

		


		hbutton1 = CreateWindow("button","1",WS_CHILD|WS_VISIBLE, 40,60,30,30,wnd,(HMENU)ID_MAIN_BUTTON,hInst,0);
        hbutton2 = CreateWindow("button","5",WS_CHILD|WS_VISIBLE, 80,100,30,30,wnd,(HMENU)ID_BUTTON2,hInst,0);
        hbutton3 = CreateWindow("button","3",WS_CHILD|WS_VISIBLE, 120,60,30,30,wnd,(HMENU)ID_BUTTON3,hInst,0);
        hbutton4 = CreateWindow("button","4",WS_CHILD|WS_VISIBLE, 40,100,30,30,wnd,(HMENU)ID_BUTTON4,hInst,0);
        hbutton5 = CreateWindow("button","2",WS_CHILD|WS_VISIBLE, 80,60,30,30,wnd,(HMENU)ID_BUTTON5,hInst,0);
        hbutton6 = CreateWindow("button","6",WS_CHILD|WS_VISIBLE, 120,100,30,30,wnd,(HMENU)ID_BUTTON6,hInst,0);
        hbutton7 = CreateWindow("button","7",WS_CHILD|WS_VISIBLE, 40,140,30,30,wnd,(HMENU)ID_BUTTON7,hInst,0);
        hbutton8 = CreateWindow("button","8",WS_CHILD|WS_VISIBLE, 80,140,30,30,wnd,(HMENU)ID_BUTTON8,hInst,0);
        hbutton9 = CreateWindow("button","9",WS_CHILD|WS_VISIBLE, 120,140,30,30,wnd,(HMENU)ID_BUTTON9,hInst,0);
        hbutton = CreateWindow("button","0",WS_CHILD|WS_VISIBLE, 40,180,30,30,wnd,(HMENU)ID_BUTTON,hInst,0);
hbutton10 = CreateWindow("button","+",WS_CHILD|WS_VISIBLE, 160,60,30,30,wnd,(HMENU)ID_BUTTON10,hInst,0);
hbutton11 = CreateWindow("button","-",WS_CHILD|WS_VISIBLE, 160,100,30,30,wnd,(HMENU)ID_BUTTON11,hInst,0);
hbutton12 = CreateWindow("button","*",WS_CHILD|WS_VISIBLE, 160,140,30,30,wnd,(HMENU)ID_BUTTON12,hInst,0);
hbutton13 = CreateWindow("button","/",WS_CHILD|WS_VISIBLE, 160,180,30,30,wnd,(HMENU)ID_BUTTON13,hInst,0);
hbutton14 = CreateWindow("button","=",WS_CHILD|WS_VISIBLE, 120,180,30,30,wnd,(HMENU)ID_BUTTON14,hInst,0);
hbutton15 = CreateWindow("button","C",WS_CHILD|WS_VISIBLE, 80,180,30,30,wnd,(HMENU)ID_BUTTON15,hInst,0);


        return 0;
    }
case WM_COMMAND:{

        if((LOWORD(wParam)==ID_BUTTON15)&&(HIWORD(wParam)==BN_CLICKED)){
			//char s=0;
            //MoveWindow(hbutton,50,0,50,20,1);
						{ switch (LOWORD(wParam))
						{
	case ID_MAIN_BUTTON:
		{
			//int s = 1;
			
			//GetWindowText(hbutton1,s);
			//SetWindowText(hedit,s,40);
		}
		return 0;
    case ID_BUTTON15:{
					if(count==10){
						MessageBox(wnd,"не больше 10","Ошибка",MB_OK);
						}
								else{ if(count==0){
								SetWindowText(hEdit,"C");
						}
					else if(count!=0){
					GetWindowText(hEdit,buff,1);
					strcat(buff,"");
					SetWindowText(hEdit,buff);
					count++;
					}
					count++;}
						break; 
	}

    case WM_DESTROY: {PostQuitMessage(0); return 0;}
    }
    return DefWindowProc(wnd,msg,wParam,lParam);
}

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 	// TODO: Place code here.
    WNDCLASS wc;
    HWND hwnd;

	hInst = hInstance;

    wc.hInstance = hInstance;
    wc.hIcon=LoadIcon(NULL,IDI_QUESTION);
    wc.hCursor=LoadCursor(NULL,IDC_ARROW);
    wc.lpfnWndProc = WndProc;
    wc.lpszMenuName=NULL;
    wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
    wc.lpszClassName = className;
    wc.cbClsExtra=wc.cbWndExtra=wc.style=0;

    int k = RegisterClass(&wc);

	hwnd = CreateWindow(className, "Hellooooo!", WS_VISIBLE|WS_OVERLAPPEDWINDOW/*|WS_CAPTION|WS_SYSMENU|WS_MAXIMIZEBOX|WS_THICKFRAME*/,
        300, 300, 600, 400, NULL, NULL, hInstance, 0);

    if(!hwnd) return false;
    
    while(GetMessage(&msg,0,0,0)){
		TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
	
	return 1;
}
From Stilet:В следующий раз код оформляй.

Последний раз редактировалось Stilet; 17.06.2011 в 15:43.
natalya1990 вне форума Ответить с цитированием
Старый 17.06.2011, 15:25   #2
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
По умолчанию

Оформите код #-кой - теги: "[CODE ][/CODE]"!
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 17.06.2011, 15:52   #3
natalya1990
Новичок
Джуниор
 
Регистрация: 17.06.2011
Сообщений: 2
По умолчанию

в смысле добавить библиотеки? я имею ввиду как сделать так что бы при нажатии на кнопки их значения заносились в буфер, потом выполнять - + * \
natalya1990 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создаю игру AndreyX Фриланс 12 06.07.2010 17:13
Калькулятор успользующий winapi функции и canvas Dr.Win32 Софт 11 21.06.2010 17:09
Создаю 2D игру Deamonig Gamedev - cоздание игр: Unity, OpenGL, DirectX 22 20.09.2009 17:23
Создаю стратегию. Shadow_1329 Gamedev - cоздание игр: Unity, OpenGL, DirectX 168 22.07.2009 14:25