Здравствуйте!
Проблема: поверх CScrollView, который масштабируется при помощи SetWindowExt и SetViewportExt ,лежит CEdit, который должен синхронно масштабироваться. Не получается масштабирование текста — остается прежнего размера(нужно не поменятьразмер шрифта, авывести имеющийся втребуемом масштабе.
Заранее благодарен за помощь.
Здравствуйте, Jakov M., Вы писали:
JM>Здравствуйте! JM>Проблема: поверх CScrollView, который масштабируется при помощи SetWindowExt и SetViewportExt ,лежит CEdit, который должен синхронно масштабироваться. Не получается масштабирование текста — остается прежнего размера(нужно не поменятьразмер шрифта, авывести имеющийся втребуемом масштабе. JM>Заранее благодарен за помощь.
С помощью SetWindowExt и SetViewportExt можно маштабировать только графику в CScrollView, а CEdit — это окно и изменять его размеры нужно соответствующими функциями CWnd::MoveWindow(), CWnd::SetWindowPos()
Здравствуйте, Jakov M., Вы писали:
JM>Здравствуйте! JM>Проблема: поверх CScrollView, который масштабируется при помощи SetWindowExt и SetViewportExt ,лежит CEdit, который должен синхронно масштабироваться. Не получается масштабирование текста — остается прежнего размера(нужно не поменятьразмер шрифта, авывести имеющийся втребуемом масштабе. JM>Заранее благодарен за помощь.
Ничего, кроме изменения размера шрифта этого CEdit, не получится.
Здравствуйте, Nata1111, Вы писали:
N>С помощью SetWindowExt и SetViewportExt можно маштабировать только графику в CScrollView, а CEdit — это окно и изменять его размеры нужно соответствующими функциями CWnd::MoveWindow(), CWnd::SetWindowPos()
Проблема не в размерах окна, а в масштабировании текста внутри окна.
Здравствуйте, Patalog, Вы писали:
P>Можно попробовать вариант с subclassing edit'а и установки нужного map mode в WM_PAINT.
Не годится: надо переписывать весь вывод текста — с позиционированием, переносом строк и т. д., а этого-то и хотелось избежать, CEdit это сам хорошо делает.
[]
JM>Не годится: надо переписывать весь вывод текста — с позиционированием, переносом строк и т. д., а этого-то и хотелось избежать, CEdit это сам хорошо делает.
Хм, а зачем? Словить WM_PAINT, установить нужный map mode и отдать все это добро родной процедуре религия не позволяет?
Здравствуйте, Patalog, Вы писали:
P>Здравствуйте, Jakov M., Вы писали:
P>[]
JM>>Не годится: надо переписывать весь вывод текста — с позиционированием, переносом строк и т. д., а этого-то и хотелось избежать, CEdit это сам хорошо делает.
P>Хм, а зачем? Словить WM_PAINT, установить нужный map mode и отдать все это добро родной процедуре религия не позволяет?
Не думаю, что Cedit такой дрной и не переустанавливает map mode .
Здравствуйте, Jakov M., Вы писали:
JM>Здравствуйте! JM>Проблема: поверх CScrollView, который масштабируется при помощи SetWindowExt и SetViewportExt ,лежит CEdit, который должен синхронно масштабироваться. Не получается масштабирование текста — остается прежнего размера(нужно не поменятьразмер шрифта, авывести имеющийся втребуемом масштабе. JM>Заранее благодарен за помощь.
Речь идёт о ... ?
The SetWindowExtEx function sets the horizontal and vertical extents of the window for a device context by using the specified values.
BOOL SetWindowExtEx(
HDC hdc, // handle to device context
int nXExtent, // new horizontal window extent
int nYExtent, // new vertical window extent
LPSIZE lpSize // original window extent
);
Parameters
hdc
[in] Handle to the device context.
nXExtent
[in] Specifies the window's horizontal extent in logical units.
nYExtent
[in] Specifies the window's vertical extent in logical units.
lpSize
[out] Pointer to a SIZE structure that receives the previous window extents, in logical units. If lpSize is NULL, this parameter is not used.
Здравствуйте, Jakov M., Вы писали:
JM>Спасибо всем ответившим!
Так чем все решилось? Помогло и как именно? Мне просто нужно примерно то же — чтобы текст был пропорционален изменяемому по размерам CEdit. А заморачиваться со шрифтами не хочется.