Member 13089825 Ответов: 1

Как получить текущую ширину окна


как получить текущую ширину экрана()

Что я уже пробовал:

я уже пробовал с нижеследующим
Crect тогда прямоугольник;
GetClientRect(&rect)

int width = rect.width();
но это не работает

Mohibur Rashid

https://msdn.microsoft.com/en-us/library/windows/desktop/ms633503(В=и 85).aspx-страницы объясняет, что это, предполагают, чтобы сделать. Это не работает-не очень полезное сообщение для читателя. Дайте нам знать, чего вы ожидаете и что получаете.

Member 13089825

я хочу показать на satus bar, как номер строки i показан в строке состояния th evisual studion "LN n"
так что для вышеприведенного requiremnet я делаю как показано ниже
Состояние CString;
статус+= "подключен"
Crect тогда прямоугольник;
GetClientRect(&rect)
для (Инти=0;Я&л;прямоугольник.ширина()-100);я++)
{
статус+=" ";
}
status += "LN" и после thil LN я добавляю свой текущий номер строки(или номер строки, который получается из списка при нажатии кнопки time)
(Под названием cmainframe*)(AfxGetApp()-&ГТ;m_pMainWnd)-&ГТ;setMessagetext(статус);
но здесь проблема заключается в том, что он не показывает корректно, минимизируя окно, которое показывает какое-то место, и время maxmizing, которое показывает какое-то место
не могли бы вы помочь мне здесь, как показать текст staus bar на правильном месте при изменении ширины окна chnaging

Richard MacCutchan

Вам необходимо обновлять эти значения при каждом сообщении WM_MOVE.

Member 13089825

можно ли добавить текст с правой стороны на панель statndard staus, используя ниже один
(Под названием cmainframe*)(AfxGetApp()-&ГТ;m_pMainWnd)-&ГТ;setMessagetext(строка);

Richard MacCutchan

Да, и я объяснил, что вам нужно сделать в вашем предыдущем вопросе по этому вопросу: Выровнять текст справа на строке состояния [^].

Member 13089825

да,но (CMainFrame*)(AfxGetApp()->m_pMainWnd)- не будет иметь OnDrawPane
так что не могли бы вы посоветовать мне, как использовать
извините, что я новичок в mfc(VC++)

Richard MacCutchan

Йохен Арндта - Профессионального Профиля[^] также дал вам предложение в вашем первоначальном вопросе. Вам просто нужно использовать комбинацию этих методов, чтобы построить строку состояния и отобразить ее.

1 Ответов

Рейтинг:
2

Michael Haephrati

Вам нужен следующий код:

CWnd* pwndParent = this->GetParent();

CRect rc;
pwndParent->GetWindowRect(&rc);