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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.88
The special one
13 / 13 / 0
Регистрация: 09.03.2012
Сообщений: 112
#1

Ширина (высота) окна winapi - C++

22.07.2012, 23:46. Просмотров 3752. Ответов 10
Метки нет (Все метки)

Подскажите как узнать ширину (высоту) окна?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.07.2012, 23:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ширина (высота) окна winapi (C++):

Ширина и высота окна консольного приложения(VS 2010) - C++
Всем привет. Подскажите как настроить высоту и ширину консольного окошка. Это то, которое открывается при нажатии кнопочки "Запуск с...

Написать программу, которая выводит на экран полый прямоугольник, ширина и высота фигуры задаются пользователем с клавиатуры. - C++
Написать программу, которая выводит на экран полый прямоугольник, ширина и высота фигуры задаются пользователем с клавиатуры.

размеры 15-параллелепипедов (длина, высота. ширина) хранятся в трех массивах. Определить номер фигуры что имеет* максимальный объем - C++
размеры 15-параллелепипедов (длина, высота. ширина) хранятся в трех массивах. Определить номер фигуры что* имеет максимальный объем

оздать класс "измерения" с открытыми данными высота и ширина - C++
Создать класс "измерения" с открытыми данными высота и ширина. С помощью наследования создать четыре класса: 1. прямоугольник - для...

Создание окна без WinAPI - C++
Хотелось узнать, как создавать окна без использования WinAPI.

Создание окна WinAPI в Visual Studio, графика и кнопки - C++
собственно вопрос - как? конечно понимаю что можно и другие кнопочки потыкать, может там и проще будет. Интересует именно это.

10
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
22.07.2012, 23:52 #2
The special one,

C++
1
GetWindowRect(HWND hWnd, LPRECT lpRect)
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
1
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
23.07.2012, 00:03 #3
ну или

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        static int sx, sy;
        switch (message)
        {
        case WM_SIZE:
            sx = LOWORD(lParam); //ширина
            sy = HIWORD(lParam); //высота
        break;
        case WM_DESTROY: PostQuitMessage(0); break;
        default: return DefWindowProc(hWnd, message, wParam, lParam);
        }
 
    }
1
The special one
13 / 13 / 0
Регистрация: 09.03.2012
Сообщений: 112
23.07.2012, 21:54  [ТС] #4
Цитата Сообщение от nameless Посмотреть сообщение
The special one,

C++
1
GetWindowRect(HWND hWnd, LPRECT lpRect)
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Не врубился, я новичок. Вот в этой ссылке прочитал что тип LPRECT - это указатель на структуру RECT в которой хранятся координаты окна. А как в переменную записать ширину(высоту) окна?

Добавлено через 1 минуту
Цитата Сообщение от Infinity3000 Посмотреть сообщение
ну или
Ясно, только у меня размеры окна не меняются.
0
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
23.07.2012, 22:00 #5
Цитата Сообщение от The special one Посмотреть сообщение
Не врубился, я новичок. Вот в этой ссылке прочитал что тип LPRECT - это указатель на структуру RECT в которой хранятся координаты окна. А как в переменную записать ширину(высоту) окна?
Ну посчитать:

C++
1
2
LONG width = rect.right - rect.left;
LONG height = rect.bottom - rect.top;
1
The special one
13 / 13 / 0
Регистрация: 09.03.2012
Сообщений: 112
23.07.2012, 22:15  [ТС] #6
Ничего не выходит, можно код полностью привести.
0
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
23.07.2012, 22:30 #7
The special one,

C++
1
2
3
4
5
6
7
8
9
case WM_CREATE:
 
.............................
 
    RECT rect;
 
    GetWindowRect(hwnd, &rect);
    LONG width = rect.right - rect.left;
    LONG height = rect.bottom - rect.top;
2
The special one
13 / 13 / 0
Регистрация: 09.03.2012
Сообщений: 112
23.07.2012, 22:45  [ТС] #8
Ясно, спасибо.
0
Troll_Face
601 / 401 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
24.07.2012, 00:26 #9
или на ВМ_ПАИНТ можно поставить обработчик и делать ГетКлиентРект, хотя это одно и тоже с ГетВиндовРект...
1
The special one
13 / 13 / 0
Регистрация: 09.03.2012
Сообщений: 112
24.07.2012, 09:21  [ТС] #10
Всем спасибо, я с этим вопросом полностью разобрался.
0
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
24.07.2012, 10:50 #11
Цитата Сообщение от Fatal Error Посмотреть сообщение
хотя это одно и тоже с ГетВиндовРект...
Все таки это немного разные вещи. GetWindowRect возвращает прямоугольник с координатами относительно левjго верхнего угла экрана. Тогда как GetClientRect вернет результат относительно клиентской части (за исключением границы, заголовка, меню и т.д.) окна.
2
24.07.2012, 10:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2012, 10:50
Привет! Вот еще темы с ответами:

Получить цвет фона экрана консольного окна (можно и методами WinAPI) - C++
Привет. Как получить цвет (фона экрана) консольного окна? Можно и методами WinAPI. С меня печенька :)

Не вижу окна с кодом (нет окна редактирования): найти причины странного поведения программы - C++
Создаю проект, а кроме синего экрана ничего больше нет, не знаю, что делать. Прочла здесь же про образователь решений(типа должен быть...

Почему авторы диалоговых окон стараются сделать свои окна максимально похожими на стандартные окна? - C++
Начал рассматривать множество программ на С++ и заметил, что программисты стараются сделать почти все диалоговые окна максимально похожими...

Высота конуса - C++
Построить график зависимости расстояния от водной поверхности до верхней точки плавающего на воде тела от плотности материала данного тела,...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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