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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.65
Игорь с++
436 / 459 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
#1

Определённое место окна - C++

09.03.2011, 21:23. Просмотров 2642. Ответов 10
Метки нет (Все метки)

Здравствуйте господа програмисты!я пишу на dev c++ для "dos" и столкнулся с такой проблемой- как сделать так,что бы dos-овское окно появлялось в определённом месте?вообще возможно ли это,если да то можно посмотреть элементарный текст программы с определённым местом окна!?
Заранее всем огромное спасибо!!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2011, 21:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определённое место окна (C++):

Записать на место отрицательных элементов матрицы нули ,а на место положительных единицу - C++
Дана квадратная матрица A. Записать на место отрицательных элементов матрицы нули ,а на место положительных единицу. Вывести на на печать...

Записать на место отрицательных элементов матрицы нули, а на место положительных единицу - C++
Дана квадратная матрица A. Записать на место отрицательных элементов матрицы нули ,а на место положительных единицу. Вывести на на печать...

Записать на место отрицательных элементов матрицы нули, а на место положительных – единицы. - C++
Дана квадратная матрица A. Записать на место отрицательных элементов матрицы нули, а на место положительных – единицы.

Записать на место отрицательных элементов матрицы нули, а на место положительных – единицы - C++
Помогите решить,в с++!!!D(10,10) Записать на место отрицательных элементов матрицы нули, а на место положительных – единицы. Вывести...

Отрисовка за определённое время - C++
Всем доброго времени суток! Такой вопрос беспокоит - как сделать отрисовку кругов с определённой периодичностью, используя chrono? К...

Запуск другой программы через определённое время - C++
Всем привет, незнаю где напмсать!Мне нужно что бы программа на с ++ запускала через определённое время другую прогу типа .ехе как это...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Somebody
2789 / 1603 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
09.03.2011, 22:27 #2
Если имелась в виду консольная прога под Windows, то
C++
1
2
3
4
5
6
7
8
9
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <iostream>
 
int main()
{
    SetWindowPos(GetConsoleWindow(), 0, 200, 100, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
    std::cin.peek();
}
1
Игорь с++
436 / 459 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
09.03.2011, 22:57  [ТС] #3
спасибо вам огромное!!!
0
IrineK
Заблокирован
09.03.2011, 23:39 #4
Несмотря на
#define _WIN32_WINNT 0x0500
и даже
#define _WIN32_WINNT 0x0502

У меня GetConsoleWindow() не находится, хотя своими глазами его вижу в wincon.h. Судя по обилию сообщений в сети, проблема таки есть.
Пришлось искать замену. Нагуглилось. После некоторых манипуляций откомпилировалось.

Тем, у кого такая же проблема с GetConsoleWindow() посвящается:

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
#include <windows.h>
#include <wincon.h>
#include <iostream>
    
HWND GetConsoleHwnd(void)
   {   #define MY_BUFSIZE 1024 // Размер буфера для заголовка консольного окна.
       HWND hwndFound;         // Это то, что будет возвращено.
       char pszNewWindowTitle[MY_BUFSIZE]; // Уникальный заголовок окна.
       char pszOldWindowTitle[MY_BUFSIZE]; // Изначальный заголовок окна.
 
       // Выбираем текущий заголовок окна.
       GetConsoleTitle((LPWSTR)pszOldWindowTitle, MY_BUFSIZE);
 
       // Формируем "уникальный" NewWindowTitle.
       wsprintf((LPWSTR)pszNewWindowTitle,(LPWSTR)"%d/%d",GetTickCount(),
                   GetCurrentProcessId());
 
       // Изменяем текущий заголовок окна.
       SetConsoleTitle((LPWSTR)pszNewWindowTitle);
 
       // даём время заголовку, чтобы измениться.
       Sleep(40);
 
      // Ищем NewWindowTitle.
       hwndFound=FindWindow(NULL, (LPWSTR)pszNewWindowTitle);
 
       // Восстанавливаем изначальный заголовок окна.
       SetConsoleTitle((LPWSTR)pszOldWindowTitle);
 
       return(hwndFound);
   }  
 
      int main()
      {
    HWND hcon = GetConsoleHwnd();
    MoveWindow(hcon,1,1,500,500,TRUE);
    std::cout<<"I like to move it, move it!!!\n";
      return 0;
      }
На выходе - симпатичное квадратное 500х500 окно в верхнем левом углу.
1
ISergey
Maniac
Эксперт С++
1374 / 885 / 52
Регистрация: 02.01.2009
Сообщений: 2,658
Записей в блоге: 1
09.03.2011, 23:42 #5
Цитата Сообщение от IrineK Посмотреть сообщение
У меня GetConsoleWindow() не находится, хотя своими глазами его вижу в wincon.h.
А ошибку то какую пишет.. Может вы просто забыли *.lib подключить какой то...
0
IrineK
Заблокирован
09.03.2011, 23:47 #6
Либы проверила: kernel, user32 - есть.
Может проблема, что старенький MSVS (2005) и где-то баг не убран.
На другом компе стоит MSVS 2010. Проверю. Только завтра.
0
Digit@ll
Brainsbreaker
884 / 362 / 31
Регистрация: 01.02.2011
Сообщений: 1,584
09.03.2011, 23:51 #7
Цитата Сообщение от ISergey Посмотреть сообщение
А ошибку то какую пишет...
error C2065: 'GetConsoleWindow' : undeclared identifier
0
IrineK
Заблокирован
10.03.2011, 00:07 #8
Digit@ll, интересно, а у вас какой компилятор?
0
Digit@ll
Brainsbreaker
884 / 362 / 31
Регистрация: 01.02.2011
Сообщений: 1,584
10.03.2011, 01:18 #9
Проверял на шестерке.
0
IrineK
Заблокирован
10.03.2011, 16:41 #10
На MSVS2005 заработала такая последовательность:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#if       _WIN32_WINNT < 0x0500
  #undef  _WIN32_WINNT
  #define _WIN32_WINNT   0x0500 // Можно и выше, я меня SP2 - поставила 0x0502
#endif
#include <windows.h>
#include <iostream>
 
int main()
      {
        HWND hcon = GetConsoleWindow();
        MoveWindow(hcon,1,1,500,500,TRUE);
        std::cout<<"I like to move it, move it!!!\n";
        return 0;
      }
Работает.

Добавлено через 13 часов 31 минуту
Может кто-то знающий объяснит разницу между:
C++
1
2
#define _WIN32_WINNT 0x0500
#include <windows.h>
и
C++
1
2
3
4
5
#if       _WIN32_WINNT < 0x0500
  #undef  _WIN32_WINNT
  #define _WIN32_WINNT   0x0500 
#endif
#include <windows.h>
Почему первое не выполняется?
0
no0ker
101 / 88 / 4
Регистрация: 17.12.2010
Сообщений: 416
10.03.2011, 17:12 #11
а у меня и первое работает. и mingw. и vs2008.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2011, 17:12
Привет! Вот еще темы с ответами:

Скорочтение (как задержать консольное окно на определённое время?) - C++
как задержать консульное окно на определёное время?

Вставляет заданное число у отсортированы массив определённое количество раз - C++
Ну есть набросок только оно там заполняет свободные ячейки массива бредом помогите долблюсь с заданием уже 3 часа И пожалуйста только не...

Выяснить, делится ли определённое четырёхзначное число на ряд чисел без остатка - C++
Есть такая тема. Нужно вычислить делится ли определённое четырёхзначное число на ряд чисел. Причём нацело, т.е. без остатка. Если делится...

Как написать программе выполнять определённое действие (функцию) перед закрытием? - C++
В общем, как я раньше и говорил, я работаю над программой. Очень быстрой. Слегка подкорректировав код программы я сумел увеличить...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.03.2011, 17:12
Ответ Создать тему
Опции темы

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