Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как запретить изменение размеров окна консоли 
:(
    Опции темы
YourLastSong
Дата 9.1.2012, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 17.12.2011

Репутация: нет
Всего: нет



Здравствуйте, уважаемые господа.

Можно ли каким-то образом запретить изменение размеров окна консоли?

Заранее благодарю за возможные ответы.
PM MAIL   Вверх
feodorv
Дата 10.1.2012, 02:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Гм. Думал, такое проскочет:
Код

#include <stdio.h>
#include <windows.h>

void main( void )
{
  HWND hWnd;
  DWORD style;

  if( (hWnd = GetConsoleWindow()) == NULL )
  {
    printf( "No console window!?\n" );
    return;
  }

  if( (style = GetWindowLong( hWnd, GWL_STYLE)) == 0 )
  {
    printf( "Error of 'GetWindowLong', error code %u\n", GetLastError());
    return;
  }

  style &= ~(WS_THICKFRAME | WS_MAXIMIZEBOX);

  SetLastError(0);
  if( SetWindowLong( hWnd, GWL_STYLE, style) == 0 && GetLastError() != 0 )
    printf( "Error of 'SetWindowLong', error code %u\n", GetLastError());

  Sleep( 60*60*1000 );
}


Но нет. Пишет:
Цитата

Error of 'SetWindowLong', error code 1413


ERROR_INVALID_INDEX, однако... smile 


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
feodorv
Дата 10.1.2012, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



А вот так получилось:
Код

#include <stdio.h>
#include <windows.h>

void main( void )
{
  HWND hWnd;
  HMENU hm;

  if( (hWnd = GetConsoleWindow()) == NULL )
  {
    printf( "No console window!?\n" );
    return;
  }
  hm = GetSystemMenu( hWnd, FALSE);

  RemoveMenu(hm, SC_SIZE, MF_BYCOMMAND | MF_REMOVE);
  RemoveMenu(hm, SC_MAXIMIZE, MF_BYCOMMAND | MF_REMOVE);
  DrawMenuBar(hWnd);

  Sleep( 60*60*1000 );
}


Добавлено через 5 минут и 58 секунд
Может быть, вопрос можно решить и через WM_GETMINMAXINFO...


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
Absinthe
Дата 10.1.2012, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: нет
Всего: 11



YourLastSong, а зачем это нужно? Консольное приложение должно при изменении размера консоли перестраивать свое отображение. Либо просто работать с вводом/выводом.

Иначе в твою сторону будет тонна лучей ненависти от обладателей немелких мониторов.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0678 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.