Путаница в двух функциях MFC GDI

и добрый день всем вам. Это мой первый пост здесь. Я читал «Программирование Windows с помощью MFC - J Prosise (MS Press)»
Во второй главе я натолкнулся на 2 функции GDI, которые меня действительно сбили с толку, я цитирую текст:

SetViewportOrg легко получить и SetWindowOrg запутались, но разница между ними на самом деле довольно ясна. Изменение исходной точки окна просмотра на (x, y) с помощью SetViewportOrg указывает Windows сопоставить логическую точку (0,0) с точкой устройства (x, y). Изменение исходной точки окна на (x, y) с помощью SetWindowOrg делает по существу обратное, сообщая Windows сопоставить логическую точку (x, y) с точкой устройства (0,0) - верхним левым углом поверхности отображения. В режиме отображения MM_TEXT, единственная реальная разница между двумя функциями - это знаки x и y. В других режимах отображения есть нечто большее, чем это, потому что SetViewportOrg имеет дело с координатами устройства, а SetWindowOrg работает с логическими координатами

. Я действительно смущен этим, это как если бы мы изменили начало точки обзора, чтобы сказать (50,50), а затем используйте dc.ellipse (0,0,50,50), он будет начинаться с точки устройства (50,50) в качестве источника, но если мы изменим начало координат окна на (50,50), это будет означать теперь логическую точку (50,50 ) будет отображаться в (0,0), если это так, не будет ли эллипс вне клиентской области в верхней области? А какой режим отображения был MM_LOWENGLISH или что-то еще? Как бы тогда изменилась ситуация? Пожалуйста, если бы кто-нибудь мог пролить свет на этот вопрос, я был бы очень благодарен

5
задан Razort4x 16 April 2011 в 06:52
поделиться