Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
3 / 3 / 1
Регистрация: 12.10.2009
Сообщений: 81

Калькулятор не сохраняет параметры

10.04.2010, 15:35. Показов 1339. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
элементарная програма с кнопкой + и равно (( но у меня не работает, хочу спросить:
1) почему переменые которые изменяются при нажатии кнопок послк выхода из
case WM_BUTTON1
теряют свои значения??
2) почему всегда пишет ошибку
"stack around variable "str" was corrupted"

вот код
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#include "windows.h"
#include <time.h>
#include <math.h>
#include <string>
#define TIMER 1
#define ID_EDIT 20
#define ID_BUTTON1 1000
#define ID_BUTTON2 5000
#define ID_BUTTON3 1
#define ID_BUTTON4 2
#define ID_BUTTON5 3
#define ID_BUTTON6 4
#define ID_BUTTON7 5
#define ID_BUTTON8 6
#define ID_BUTTON9 7
#define ID_BUTTON10 8
#define ID_BUTTON11 9
#define ID_BUTTON12 10
#define ID_BUTTON13 11
#define ID_BUTTON14 12
#define ID_BUTTON15 13
#define ID_BUTTON16 14
 
#define ID_TEXTBOX1 4000
HINSTANCE hInstance;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM,LPARAM);
int WINAPI WinMain ( HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR IpCmdLine,int nCmdShow )
{
     
HWND hwnd;//Дескрипторы окон (button - это тоже окна)
HWND button1;
HWND button2;
//HWND button3;
//HWND button4;
//HWND button5;
//HWND button6;
//HWND button7;
//HWND button8;
//HWND button9;
//HWND button10;
//HWND button11;
//HWND button12;
//HWND button13;
//HWND button14;
//HWND button15;
//HWND button16;
//HWND textBo17;
HWND hedit;
MSG msg;
LPARAM lparam;
//static int x,y;
//x=LOWORD (lparam);
        //  y=HIWORD(lparam);
WNDCLASS w;
memset(&w,0,sizeof(WNDCLASS));
w.style=CS_HREDRAW|CS_VREDRAW;
w.lpfnWndProc=WndProc;
w.hInstance=hInstance;
w.hbrBackground=HBRUSH(COLOR_BTNFACE + 1);
w.lpszClassName =L"Super Window";
w.hbrBackground = (HBRUSH) (COLOR_WINDOW + 0);
RegisterClass(&w);
hwnd = CreateWindow(L"Super Window",L"Super Window", WS_OVERLAPPEDWINDOW,
300,500,365,300,NULL,NULL,hInstance,NULL);
// HINSTANCE hInstance;
 
  button1=CreateWindow(L"button",L"+",WS_VISIBLE|WS_CHILD,30,100,50,50,hwnd,(HMENU)ID_BUTTON1,hInstance,NULL);
       button2=CreateWindow(L"button",L"=",WS_VISIBLE|WS_CHILD,110,100,50,50,hwnd,(HMENU)ID_BUTTON2,hInstance,NULL);
       hedit=CreateWindow(L"edit",NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT,30,50,300,30,hwnd,(HMENU)ID_EDIT,hInstance,NULL);
//textBox=Cr
//POINT point;
//RECT rect;
//GetWindowRect(hwnd,&rect);
//POINT uu;
//GetCursorPos(&point);
//
//uu.x=rect.right/2 + rect.bottom/2;
//uu.y=rect.left/2 + rect.top/2;
////uu.x=rect.top/2;
////uu.y=rect.left/2;
//POINT move;
//move.x=0;
//move.y=0;
//rect.left=point.x-500;
//rect.bottom=point.y-500;
 
 
//GetCursorPos(&point);
//GetWindowPos(
//textBox=CreateWindow(L"koko",L"fdfd",WS_VISIBLE|WS_CHILD,300,205,150,50,hwnd,(HMENU)ID_TEXTBOX1,hInstance,NULL);
 
//SetTimer(hwnd,TIMER,1,NULL);
ShowWindow(hwnd,nCmdShow);
//MoveWindow(hwnd,rect.left,rect.bottom,300,300,true);
while(GetMessage(&msg,NULL,0,0)){
    TranslateMessage(&msg);
    DispatchMessage(&msg);
}
return msg.wParam;
}
 
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wparam,LPARAM lparam)
{
//HWND hwnd;//Дескрипторы окон (button - это тоже окна)
HWND button1;
HWND button2;
HWND button3;
HWND button4;
HWND button5;
HWND button6;
HWND button7;
HWND button8;
HWND button9;
HWND button10;
HWND button11;
HWND button12;
HWND button13;
HWND button14;
HWND button15;
HWND button16;
//HWND textBo17;
static HWND hedit;
//HINSTANCE hInstance;
 TCHAR str[10];
 char *symbol= new char;
  int *b=new int;
       int *a=new int;
       int *rez=new int;
       int a2;
      
 
      
switch (Message){
   case WM_CREATE:{
       hedit=CreateWindow(L"edit",NULL,WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT,30,50,300,30,hwnd,(HMENU)ID_EDIT,NULL,NULL);
    
       SetFocus(hedit);
      
       
       // return 0;
}
 
      
   case WM_COMMAND:
   if(wparam==ID_BUTTON1){
      // GetWindowText(hwnd,(LPWSTR)str,10);
       SendMessage(hedit,EM_GETLINE,0,(LPARAM)str);
      // SetWindowText(hwnd,L"");
       *a=_wtoi(str);
       SetWindowText(hedit,L"");
       *symbol='+';
       SetFocus(hedit); //return a;
 
     //MessageBox(NULL, L"к",L"Test", MB_OK|MB_ICONEXCLAMATION);
}
   a2=*a;
   if(wparam==ID_BUTTON2){
      // *a=6;
      // *symbol='+';
       SendMessage(hedit,EM_GETLINE,0,(LPARAM)str);
       SetWindowText(hedit,L"");
      * b=_wtoi(str);
       if(*symbol=='+')
           *rez=a2+*b;
       //str="3";
       _itow(*rez,str,10);
     //SendMessage(hedit,WM_PASTE,0,0);
       //AppendWindowText
       
       
       SetWindowText(hedit,(LPCWSTR)str);
       SetFocus(hedit); //return 0;
     //MessageBox(NULL,L" кнопка 2",L"Тест",MB_OK|MB_ICONEXCLAMATION);
}
}
 
 
    if (Message == WM_DESTROY )
{
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,Message,wparam,lparam);
//return str;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.04.2010, 15:35
Ответы с готовыми решениями:

SaveDIalog не сохраняет параметры шрифта
Всем доброго времени суток. Проблема следующего плана. Пишу программу аналог блокнота, при сохранении файл есть , данные заносятся но...

Реализовать консольный калькулятор с выводом функций через параметры
Мне задали реализовать консольный калькулятор с выводом функций через параметры. Функции + - * / Пример использования: #myCalck...

Магнитола не сохраняет последний воспроизведённый файл (с флешки), а позицию сохраняет
Во общем в машине есть магнитола JVC, в ней есть CD диск, USB flash накопитель и радио... Так вот: если на флешке будет играть музыка то...

2
306 / 187 / 26
Регистрация: 14.02.2010
Сообщений: 547
10.04.2010, 18:53
Блин, пока сочинял, отрубили, пока логинился, все сочинение пропало, поэтому коротко:
Локальные переменные не сохраняются по выходе из блока, их содержащего - используйте глобальные или static. Это по поводу несохранения переменных.
В отношении str, на первый взгляд, вроде как и не должно такого же происходить, но кто его там знает, когда компилятор решил, что str больше не нужна. Хотя скорее всего не хватает 10 символов. Уверены, что строка + 0 полностью поместится в 10? И сам TCHAR у вас Wide?
0
 Аватар для GAME
23 / 23 / 5
Регистрация: 31.10.2009
Сообщений: 199
11.04.2010, 00:28
Цитата Сообщение от Pavel1133 Посмотреть сообщение
2) почему всегда пишет ошибку
"stack around variable "str" was corrupted"
из за того,что нехватает длинны строки str, по крайней мере у меня вылезала такая ошибка только из за этого
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.04.2010, 00:28
Помогаю со студенческими работами здесь

LM317 параметры, DS18B20 параметры, увеличение длины линии.
Добрый день, у меня образовалось 2 вопроса, на которые не могу найти конкретный ответ. Первый вопрос - Какая должна быть минимальная...

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

Параметры-значения и параметры-переменные подпрограмм
Помогите пожалуйста в решении: С помощью подпрограмм ввода и вывода вектора ввести и вывести матрицу 7х7.

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

Что такое "Символьные параметры и целочисленные параметры функций"?
Подскажите пожалуйста, что такое &quot;Символьные параметры. Целочисленные параметры функций&quot;. Буду признателен.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru