Окно - представление - Большая Энциклопедия Нефти и Газа, статья, страница 1
Никогда не недооценивай силы человеческой тупости. Законы Мерфи (еще...)

Окно - представление

Cтраница 1


Окно представления настраивается добавлением кода в виртуальную функцию PreCreateWindow класса представления, которая переопределяет функцию, заданную в классе cview, и вызывается непосредственно перед созданием окна.  [1]

Недействительная часть окна представления называется областью обновления. При вызове функции InvalidateRect недействительная прямоугольная область добавляется к текущей области обновления. Когда окно представления получает непустую область обновления, то после обработки любых сообщений с более высоким приоритетом вызывается функция OnDraw, и область обновления становится пустой.  [2]

3 Классы главной программы и исходные файлы. [3]

Обратите внимание: окно представления, управляемое классом представления, занимает внутри обрамляющего окна пустую область, которая называется клиентской областью главного окна. Окно представления - дочернее окно главного окна, поэтому оно всегда отображается поверх и внутри границ рабочей области главного окна.  [4]

Заметьте: если окно представления нуждается в перерисовке из-за внешнего события ( например, перемещения перекрывающего окна), то Windows также признает недействительной только ту область окна, которая нуждается в перерисовке. Затем новая версия функции OnDraw перерисовывает только линии, попавшие в эту область. Таким образом, новая версия этой функции более эффективна и при рисовании новой линии, и при каком-либо внешнем событи.  [5]

Класс CEditView присваивает окну представления класс EDIT. При его поддержке не только сохраняется отображаемый текст, но и обеспечивается большой набор средств редактирования.  [6]

Обратите внимание: когда окно представления создано, функция OnSetFocus вызывается после функции OnCreate. Следовательно, можно использовать размеры курсора, установленные функцией OnCreate. Легко понять, почему курсор необходимо создавать до создания окна представления. Но почему же его необходимо создавать каждый раз при получении окном представления фокуса.  [7]

После вызова функции OnSize окно представления очищается, а для перерисовки окна вызывается функция OnDraw. Функция OnDraw не рисует непосредственно узор. Она переустанавливает столбец в 0 таким образом, что функция DrawCol начинает перерисовывать рекурсивный узор ( один столбец за один раз), начиная с первого столбца. Законченное определение функции OnDraw выглядит следующим образом.  [8]

В программе просмотра формы окно представления отображает набор элементов управления, размещение которых основано на шаблоне диалогового окна. Мастер AppWizard создает исходный шаблон. Чтобы модифицировать его, необходимо использовать редактор диалоговых окон.  [9]

Функция OnDraw нарисует все окно представления, используя текущий шаблон, полностью заменяющий содержимое текущего окна.  [10]

11 Окончательный вид диалогового окна мастера ClassWizard при создании обработчика сообщения WM LBUTTONDOWN. [11]

Если указатель находится в окне представления, то после нажатия левой кнопки мыши управление будет передано функции OnLButtonDown, а параметр point будет содержать текущую позицию указателя. Переменная m PointOrigin хранит координаты начальной точки линии. Переменная m Pointold, как вы скоро увидите, используется другими обработчиками сообщений для получения информации о положении указателя мыши в момент предыдущего сообщения.  [12]

Линии, нарисованные в окне представления, становятся невидимыми или едва заметными. Однако программа всегда выводит черные линии.  [13]

При изменении данных в окне представления ( панели) объект представления вызывает функцию CDocument: : UpdateAllViews для объекта документа, передавая ей информацию в виде рекомендаций, описывающих изменения.  [14]

Чтобы отобразить графику в окне представления или другом окне из функции, которая не обрабатывает сообщения OnDraw или OnPaint, нужно создать объект контекста устройства, являющийся членом MFC-класса cciientoc. Если окно представления поддерживает прокрутку, то перед использованием объекта необходимо вызвать функцию CScrollView: : OnPrepareDC для настройки объекта на текущую позицию документа.  [15]



Страницы:      1    2    3    4