WM_CREATE(). 4. Используя метр

Автор admin Понедельник, 4 мая 2009 11:32

WM_CREATE(). 4. Используя метрики текста, рассчитайте ширину и высоту курсора. Как вы помните, получить метрику текста можно в объекте контекста устройства Управление курсором ввода 339 с помощью функции CDC: :GetTextMetrtics(). Для расчета используем поля tmAve-CharWidth, tmHeight и tmExternal Leading структуры TEXTMETRIC. Добавьте в функцию CEchoView: :0nCreate() код, который представлен полужирным шрифтом: int CEchoView::OnCreate(LPCREATESTRUCT IpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1: // TODO: Add your specialized creation code here CClientDC ClientDC(this); TEXTMETRIC TM; CIientDC.GetTextMetrics(&TM); m_XCaret » TM.tmAveCharWidth / 3; m_YCaret – TM.tmHeight + TM.tmExternalLeading; return 0; } 5. Чтобы создать курсор и установить его в нужную позицию, сгенерируйте обработчик сообщения WMSETFOCUS. Для этого в окне Class View выберите класс CEchoView, в окне свойств щелкните на кнопке Messages и выделите в списке сообщение WM_ SETF0CUS. В поле, находящемся справа от сообщения, выберите команду OnSetFocus. После выполнения этих операций в файл Echo-View, h добавится


Комментарии закрыты.