Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ нужна только блок-схема https://www.cyberforum.ru/ cpp-beginners/ thread120352.html
ЗАДАЧА 7 В газетный киоск стоит очередь желающих купить популярные издания «Караван» и «Казахстанская правда». Каждый из стоящих имеет намерение купить один или несколько экземпляров интересующих...
Кольцевой список C++
Пытаюсь написать программу,но столкнулся с проблемой.Написал ф-ю создания списка из n элементов,объявил её тип сначала как void ,выдал ошибку пробовал int тоже ошибка.Причем если тоже самое написать...
C++ Разработать программу, моделирующую организацию и поддержание очереди
ПОМОГИТЕ НАПИСАТЬ ПРОГРАММУ НА С++............. В специализированном магазине по продаже холодильников организована предварительная запись. Фамилии потенциальных покупателей заносят в список и...
C++ Потоки Доброго времени суток! Задание такое Создание списка слов отсортированных по алфавиту (выбрать алгоритм с возможностью параллельного исполнения); вот код, уже сбился с ног ища в чем ошибка,... https://www.cyberforum.ru/ cpp-beginners/ thread120332.html
C++ нужно исправить выдает не верный ответ https://www.cyberforum.ru/ cpp-beginners/ thread120325.html
вот то что я сделал , но сдесь наверное что то не так с условием #include<iostream> #include<math.h> #include<clocale> using namespace std; // подпрограмма double fun ( double a,double b,...
C++ Центрирование строк в текстовом файле
Длина строк текстового файла не может превышать 80 символов. Нужно разместить все эти строки по центру. Вроде как идея такая... Сначала считаем количество пробелов слева. Потом определяем длину...
пифагоровы тройки,безцелочисленное деление и другое C++
Пожалуйста ,помогите!Задача: 1) Дано натуральное число .Записать его в обратном порядке не применяя операцмю целочислового деления. 2) найти все двойки натурального числа n ,если они существуют...
C++ Использование memcpy в трехмерном массиве Есть трехмерный массив int massiv={0}; нужно с помощью memcpy переместить два элемента massiv=1; massiv=1; на место https://www.cyberforum.ru/ cpp-beginners/ thread120313.html
C++ Написание программ на C! массивы и матрицы https://www.cyberforum.ru/ cpp-beginners/ thread120310.html
Доброго времени суток!Срочно нужна помощь новичку в программировании по С.Требуется написать 2 програмы: 1.Задан массив целочисленных двухбайтовых знаковых элементов.Необходимо сформировать новый...
C++ Преобразование слов Каждая буква задана числом: а=1; б=2; в=3; г=4; д=5; е=6; ё=7; ж=8; з=9; https://www.cyberforum.ru/ cpp-beginners/ thread120308.html
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 7
0

Калькулятор

22.04.2010, 10:48. Просмотров 887. Ответов 7
Метки (Все метки)

Всем привет.Решил учить программирование графических приложений в windows и сразу же застопорился на калькуляторе.Произвести сложение пытаюсь сложив два буфера,а затем вывести результат в третий. Вот такая каша получается.
Если кто знает подскажите пожалуйста,как правильно сделать.Не судите строго я токо начал постигать постигать.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#include <windows.h>
#include "stdafx.h"
wchar_t buff[16];
wchar_t buff1[16];
wchar_t buff2[16];
HWND edit_p;
HWND edit_h;
HWND edit_y;
// объявление функций
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
ATOM RegMyWindowClass(HINSTANCE, LPCTSTR);
 
////////////////////////////////////////////////////////////////////////// 
// функция вхождений программы WinMain
int APIENTRY WinMain(HINSTANCE hInstance,
             HINSTANCE         hPrevInstance,
             LPSTR             lpCmdLine,
             int               nCmdShow)
{
 
  // имя будущего класса
  LPCTSTR lpzClass = TEXT("My Window Class!");
  wchar_t form_class_edit[]=L"edit";
  wchar_t form_class_button[]=L"button";
  wchar_t sTitle_edit[]=L"";
  wchar_t sTitle_button[]=L"Плюс";
  // регистрация класса
  if (!RegMyWindowClass(hInstance, lpzClass))
    return 1;
 
  // вычисление координат центра экрана
  RECT screen_rect;
  GetWindowRect(GetDesktopWindow(),&screen_rect); // разрешение экрана
  int x = screen_rect.right / 2 - 150;
  int y = screen_rect.bottom / 2 - 75;
 
  // создание диалогового окна
  HWND hWnd = CreateWindow(lpzClass, TEXT("калькулятор"), 
    WS_OVERLAPPEDWINDOW | WS_VISIBLE, x, y, 500, 400, NULL, NULL, 
    hInstance, NULL);
 
  edit_y = CreateWindowEx(NULL, form_class_edit, sTitle_edit, WS_CHILD | WS_VISIBLE | ES_LEFT | ES_LOWERCASE |WS_BORDER,
      170,50, 150, 20, hWnd, (HMENU)3, hInstance, NULL);
  edit_p = CreateWindowEx(NULL, form_class_edit, sTitle_edit, WS_CHILD | WS_VISIBLE | ES_LEFT | ES_LOWERCASE |WS_BORDER,
      10,20, 150, 20, hWnd, (HMENU)4, hInstance, NULL);
  edit_h = CreateWindowEx(NULL, form_class_edit, sTitle_edit, WS_CHILD | WS_VISIBLE | ES_LEFT | ES_LOWERCASE |WS_BORDER,
      170,20, 150, 20, hWnd, (HMENU)2, hInstance, NULL);
  CreateWindowEx(NULL, form_class_button, sTitle_button, WS_CHILD | WS_VISIBLE | ES_LEFT | ES_LOWERCASE |WS_BORDER,
      10,50, 100, 20, hWnd, (HMENU)1, hInstance, NULL);
  // если окно не создано, описатель будет равен 0
  if(!hWnd) return 2; 
 
  // цикл сообщений приложения
  MSG msg = {0};    // структура сообщения
  int iGetOk = 0;   // переменная состояния
  while ((iGetOk = GetMessage(&msg, NULL, 0, 0 )) != 0) // цикл сообщений
  {
    if (iGetOk == -1) return 3;  // если GetMessage вернул ошибку - выход
    TranslateMessage(&msg);    
    DispatchMessage(&msg);
  }
 
  return msg.wParam;  // возвращаем код завершения программы
}
 
////////////////////////////////////////////////////////////////////////// 
// функция регистрации класса окон
ATOM RegMyWindowClass(HINSTANCE hInst, LPCTSTR lpzClassName)
{
  WNDCLASS wcWindowClass = {0};
  // адрес ф-ции обработки сообщений
  wcWindowClass.lpfnWndProc = (WNDPROC)WndProc;
  // стиль окна
  wcWindowClass.style = CS_HREDRAW|CS_VREDRAW;
  // дискриптор экземпляра приложения
  wcWindowClass.hInstance = hInst;
  // название класса
  wcWindowClass.lpszClassName = lpzClassName;
  // загрузка курсора
  wcWindowClass.hCursor = LoadCursor(NULL, IDC_ARROW);
  // загрузка цвета окон
  wcWindowClass.hbrBackground = (HBRUSH)COLOR_APPWORKSPACE;
  return RegisterClass(&wcWindowClass); // регистрация класса
}
 
////////////////////////////////////////////////////////////////////////// 
// функция обработки сообщений
LRESULT CALLBACK WndProc(
  HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
  // выборка и обработка сообщений
  switch (message)
  {
  case WM_COMMAND:
      
     // реакция на сообщение
      if(wParam == 1) {
      int xs = GetWindowText(edit_p, buff, 10);
      int y  = GetWindowText(edit_h, buff1, 10);
      buff2[16] = buff[16] + buff1[16]; // собственно вот так вот я и пытаюсь сложить два числа
      SetWindowText(edit_y,buff2);
      }
      break;
  case WM_DESTROY:
    PostQuitMessage(0);  // реакция на сообщение
    break;
  default:  
    // все сообщения не обработанные Вами обработает сама Windows
    return DefWindowProc(hWnd, message, wParam, lParam);
  }
  return 0;
}
Добавлено через 1 час 7 минут
Неужели на таком крутом форуме никто незнает как сделать калькулятор?Даже не сделать,а просто указать на ошибку.

Вернуться к обсуждению:
Калькулятор
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2010, 10:48
Готовые ответы и решения:

Как преобразовать обычный калькулятор в калькулятор использующий класс стек?
#include &lt;iostream&gt; int main(){ int a = 0; int b = 0; char operation; ...

Простой калькулятор и калькулятор с парсингом
Ребят я совсем не давно только начал изучать сишку, решил написать простенький калькулятор который...

калькулятор
подскажите, как сделать чтоб при вводе с клавиатуры, можно было вводить только цифры, а буквы и...

Калькулятор
Всем привет ) Пожалуйста подскажите почему мы пишем &quot; scanf (&quot;%c&quot;, &amp;oper); scanf (&quot;%c&quot;,...

7
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.