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

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

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

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

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

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

Выяснить, делится ли определённое четырёхзначное число на ряд чисел без остатка C++
Записать на место отрицательных элементов матрицы нули, а на место положительных – единицы. C++
Вставляет заданное число у отсортированы массив определённое количество раз C++
Скорочтение (как задержать консольное окно на определённое время?) C++
C++ Записать на место отрицательных элементов матрицы нули, а на место положительных единицу
C++ Почему авторы диалоговых окон стараются сделать свои окна максимально похожими на стандартные окна?
C++ Записать на место отрицательных элементов матрицы нули ,а на место положительных единицу
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2777 / 1591 / 142
Регистрация: 03.12.2007
Сообщений: 4,171
Завершенные тесты: 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();
}
Игорь с++
433 / 456 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
09.03.2011, 22:57  [ТС]     Определённое место окна #3
спасибо вам огромное!!!
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 окно в верхнем левом углу.
ISergey
Maniac
Эксперт С++
1347 / 880 / 52
Регистрация: 02.01.2009
Сообщений: 2,645
Записей в блоге: 1
09.03.2011, 23:42     Определённое место окна #5
Цитата Сообщение от IrineK Посмотреть сообщение
У меня GetConsoleWindow() не находится, хотя своими глазами его вижу в wincon.h.
А ошибку то какую пишет.. Может вы просто забыли *.lib подключить какой то...
IrineK
Заблокирован
09.03.2011, 23:47     Определённое место окна #6
Либы проверила: kernel, user32 - есть.
Может проблема, что старенький MSVS (2005) и где-то баг не убран.
На другом компе стоит MSVS 2010. Проверю. Только завтра.
Digit@ll
Brainsbreaker
869 / 347 / 27
Регистрация: 01.02.2011
Сообщений: 1,496
09.03.2011, 23:51     Определённое место окна #7
Цитата Сообщение от ISergey Посмотреть сообщение
А ошибку то какую пишет...
error C2065: 'GetConsoleWindow' : undeclared identifier
IrineK
Заблокирован
10.03.2011, 00:07     Определённое место окна #8
Digit@ll, интересно, а у вас какой компилятор?
Digit@ll
Brainsbreaker
869 / 347 / 27
Регистрация: 01.02.2011
Сообщений: 1,496
10.03.2011, 01:18     Определённое место окна #9
Проверял на шестерке.
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>
Почему первое не выполняется?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2011, 17:12     Определённое место окна
Еще ссылки по теме:

C++ Запуск другой программы через определённое время
C++ Записать на место отрицательных элементов матрицы нули, а на место положительных – единицы
Отрисовка за определённое время C++
Как написать программе выполнять определённое действие (функцию) перед закрытием? C++
C++ Как считать определённое количество цифр заданного числа (считать число до заданной цифры)?

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

Или воспользуйтесь поиском по форуму:
no0ker
101 / 88 / 4
Регистрация: 17.12.2010
Сообщений: 416
10.03.2011, 17:12     Определённое место окна #11
а у меня и первое работает. и mingw. и vs2008.
Yandex
Объявления
10.03.2011, 17:12     Определённое место окна
Ответ Создать тему
Опции темы

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