Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
6 / 6 / 2
Регистрация: 06.01.2015
Сообщений: 180
1

Сделать размер окна, выходящим за рамки монитора

04.10.2017, 18:36. Показов 2433. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть задача сделать размер окна, например cmd, больше допустимого, чтобы окно уходило за рамки экрана.
Пробовал такой кодец:
C++
1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
#include <windows.h>
 
void main()
{
    HWND hMyWindow = FindWindow(0, L"Command Prompt");
    UINT wFlag = SWP_NOSENDCHANGING | SWP_SHOWWINDOW ;
    SetWindowPos(hMyWindow, 0, 0, 0, 5000, 5000, wFlag);
    system("pause");
}
Этот код действительно установит окно указанного размера и выйдет за пределы монитора. Но есть куча нюансов: если окно пошевелить - оно уменьшится до своего максимально допустимого размера, если зайти в настройки cmd и поменять размер буффера/изменить цветовую схему/изменить что-угодно - окно опять уменьшится до максимально допустимого размера.

Нашел в инете такое решение:

"Implement a message handler for WM_GETMINMAXINFO to stop Windows from applying the sane default behavior:
C++
1
2
3
4
5
6
7
case WM_GETMINMAXINFO: {
    DefWindowProc(hWnd, message, wParam, lParam);
    MINMAXINFO* pmmi = (MINMAXINFO*)lParam;
    pmmi->ptMaxTrackSize.x = 2000;
    pmmi->ptMaxTrackSize.y = 2000;
    return 0;
}
"
Как я понимаю при любых манипуляциях с окном одно из высылаемых сообщений является WM_GETMINMAXINFO, и мы можем как-то сами написать обработчик ответа на это сообщение и возвращать фейковые максимальные размеры. Но я не понимаю, где мы его должны реализовать. Подскажите пожалуйста.
Или если кто-то знает другой вариант решения проблемы, интересно узнать!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.10.2017, 18:36
Ответы с готовыми решениями:

Узнать размер рамки чужого окна
Нужно узнать размер рамки чужого окна...

Окно без рамки + фон на весь размер окна
Не знаю что использовать, какие инструменты и т.п. Нужно создать окно неправильной формы. Без...

Можно ли на делфи сделать автоподбор на размер монитора
как можно сделать чтобы делфи при запуске программы автоматический настраивал под монитор с разными...

Как сделать размер окна приложения на весь монитор?
Вот ответ. Помогите разобраться где мне найти C# код. Stop a = new Stop(); ...

1
1252 / 863 / 266
Регистрация: 02.04.2009
Сообщений: 3,274
11.10.2017, 15:10 2
Apparat_UA, это вроде сабклассинг. Берёте WindowProc через GetWindowLong сохраняя указатель, перенаправляете на свою функцию аналог с помощью SetWindowLong, в которой перехватываете месидж, меняете что хотите, и вызываете старый WindowProc.
1
11.10.2017, 15:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.10.2017, 15:10
Помогаю со студенческими работами здесь

Изображение вылезает за рамки монитора
Доброго времени суток! Столкнулся тут с проблеммой - изображение на мониторе вылезает за рамки...

Как сделать размер элементов зависимым от размеров экрана, а не окна браузера?
Вопрос от новичка: как сделать размер элементов зависимым от размеров экрана, но независимых от...

Как сделать, чтобы при уменьшении окна уменьшался размер блоков
Здравствуйте. На сайте есть несколько div, которые расположены по три в ряд. Как сделать, чтобы...

Как сделать размер чужого окна больше максимального разрешения экрана
Вопрос собственно в заголовке. Вот здесь решается проблема (последнее сообщение) ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru