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

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

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

вычислить делится ли определённое четырёхзначное число на ряд чисел C++
Записать на место отрицательных элементов матрицы нули, а на место положительных – единицы. C++
Вставляет заданное число у отсортированы массив определённое количество раз C++
Скорочтение (как задержать консольное окно на определённое время?) C++
C++ Почему авторы диалоговых окон стараются сделать свои окна максимально похожими на стандартные окна?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 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();
}
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
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
Эксперт С++
 Аватар для ISergey
1331 / 864 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 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
 Аватар для Digit@ll
832 / 343 / 27
Регистрация: 01.02.2011
Сообщений: 1,483
09.03.2011, 23:51     Определённое место окна #7
Цитата Сообщение от ISergey Посмотреть сообщение
А ошибку то какую пишет...
error C2065: 'GetConsoleWindow' : undeclared identifier
IrineK
Заблокирован
10.03.2011, 00:07     Определённое место окна #8
Digit@ll, интересно, а у вас какой компилятор?
Digit@ll
Brainsbreaker
 Аватар для Digit@ll
832 / 343 / 27
Регистрация: 01.02.2011
Сообщений: 1,483
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++ Записать на место отрицательных элементов матрицы нули, а на место положительных – единицы

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

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

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