Форум программистов, компьютерный форум CyberForum.ru

Drawing operation was attemted when there was no current window - C++

Восстановить пароль Регистрация
 
zaqwerty
1 / 1 / 1
Регистрация: 14.12.2013
Сообщений: 113
17.05.2014, 21:49     Drawing operation was attemted when there was no current window #1
Написал программу, которая строит один из трех графиков по выбору пользователя (1, 2 или 3). Если пользователь выбирает номер графика, не предусмотренного в программе (например нажимает цифру 4), то на экране появляется сообщение, предупреждающее его о том, что нужно выбрать одно из трех чисел 1, 2 или 3. Но при этом на экране так же появляется ошибка "Drawing operation was attemted when there was no current window".
Пытался поставить getch() и return, но не помогает.
Ниже представлен код программы:
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
#include <stdio.h>
#include <graphics.h>
#include <math.h>
#include <locale>
const int X0=400;
const int Y0=400;
const float xmin=-10;
const float xmax=10;
int main()
{
setlocale(LC_ALL,"Russian");
float b,xmin=-10,xmax=10,h=0.001,a,x,y,c;
int l;
printf("Âûáåðèòå ГЈГ°Г*ГґГЁГЄ\n 1) y=a*x*x*x+b*x+c\n 2) y=a*cos(x+b)+c\n 3) y=a*log(fabs(x+b))+c;\n");
scanf("%d",&l);
if(l==1)
{
printf ("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГҐ a=");
scanf("%f",&a);
printf ("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГҐ b=");
scanf("%f",&b);
printf("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГҐ c=");
scanf("%f", &c);
initwindow(800,800);
line (X0,0,X0,799);
line (0,Y0,799,Y0);
 
for (x=xmin;x<=xmax;x+=h)
{
  y=a*x*x*x+b*x+c;
 
 putpixel(x+X0,-y+Y0, 3);
 
}
}
else
if(l==2)
{
   printf ("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГҐ a=");
scanf("%f",&a);
printf ("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГҐ b=");
scanf("%f",&b);
printf("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГҐ c=");
scanf("%f", &c);
initwindow(800,800);
line (X0,0,X0,799);
line (0,Y0,799,Y0);
 
for (x=xmin;x<=xmax;x+=h)
{
  y=a*cos(x+b)+c;
 
 putpixel(x+X0,-y+Y0, 4);
 
} }
else
if(l==3)
{
   printf ("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГҐ a=");
scanf("%f",&a);
printf ("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГҐ b=");
scanf("%f",&b);
printf("Ââåäèòå Г§Г*Г*Г·ГҐГ*ГЁГҐ c=");
scanf("%f", &c);
initwindow(800,800);
line (X0,0,X0,799);
line (0,Y0,799,Y0);
 
for (x=xmin;x<=xmax;x+=h)
{
  y=a*log(fabs(x+b))+c;
 
 putpixel(x+X0,-y+Y0, 5);
 
} }
else
if((l!=1)&&(l!=2)&&(l!=3))
{printf("Íåîáõîäèìî âûáðГ*ГІГј ГЈГ°Г*ГґГЁГЄ 1, ГЈГ°Г*ГґГЁГЄ 2 èëè ГЈГ°Г*ГґГЁГЄ 3");}
closegraph();
getch();
return 1;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2014, 21:49     Drawing operation was attemted when there was no current window
Посмотрите здесь:

Ошибка: Overlapped I/O operation is in progress. ERROR_IO_PENDING C++
C++ Ошибка "Drawing operation was attempted when there was no current window"
C++ Answer to this questions, in the Operation Systems!
invalid pointer operation C++
C++ Аналог функции window() из conio.h
What operation can be increased by one variable x? C++
C++ Drawing operation was attempted when there was no current window. Что за ошибка?
C++ Invalid pointer operation
C++ Ошибка при компиляции Illegal structure operation
C++ Invalid floating point operation при работе с массивами
Создать класс model window C++
Функция window() в Turbo C++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
6046 / 5649 / 1825
Регистрация: 18.12.2011
Сообщений: 14,436
Завершенные тесты: 1
17.05.2014, 21:55     Drawing operation was attemted when there was no current window #2
строки 76-78 замените на
C++
1
2
3
4
5
6
else
{
    printf("Необходимо выбрать график 1, график 2 или график 3");
    getch();
    return 1;
}
проверка в 77 строке лишняя и
closegraph(); не должна в этом случае вызываться.
zaqwerty
1 / 1 / 1
Регистрация: 14.12.2013
Сообщений: 113
17.05.2014, 22:15  [ТС]     Drawing operation was attemted when there was no current window #3
zss, сделал все, как Вы написали, но ошибка осталась. Не знаете, в чем еще может быть проблема?
Yandex
Объявления
17.05.2014, 22:15     Drawing operation was attemted when there was no current window
Ответ Создать тему
Опции темы

Текущее время: 10:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru