|
|
|
Как определить, откуда StretchBlt() отсчитывает координаты?
|
|||
|---|---|---|---|
|
#18+
Нужно отобразить в окошечке кусок картинки, причем с масштабированием. Казалось бы, проблем нет. StretchBlt() - в се тут. Но оказалось не все так просто. В OnPaint'e пишу: CPaintDC dc(this); m_MemDC.SelectObject(&m_bmp); dc.StretchBlt(x0d, y0d, wd, hd, &m_MemDC, xs, ys, ws, hs, SRCCOPY); x0d, y0d, wd, hd - координаты левого верхнего угла и размеры участка dc для отображения; xs, ys, ws, hs - координаты левого верхнего угла и размеры отображаемого участка картинки. Когда все x0d=y0d=xs=ys=0, я хочу увидеть левую верхнюю часть картинки. В большинстве случаев это действительно так. Но на одной машине при загруженном FAR'e отображается левая НИЖНЯЯ часть картинки. Причем, если FAR не был загружен - все нормально. Похоже, StretchBlt при каких-то условиях отсчитывает вертикальную координату не от верха, а от низа. Не важно, какие это условия. Я хочу только определить, откуда она отсчитывается. Как? В MSDN'e по этому поводу ничего не нашел. Изначально m_MemDC и m_bmp определяются так: CPaintDC dc(this); m_MemDC.CreateCompatibleDC(&dc); m_bmp.CreateCompatibleBitmap (&dc, 1, 1); Потом m_bmp загружается из файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2006, 11:43 |
|
||
|
Как определить, откуда StretchBlt() отсчитывает координаты?
|
|||
|---|---|---|---|
|
#18+
kmnНужно отобразить в окошечке кусок картинки, причем с масштабированием. Казалось бы, проблем нет. StretchBlt() - в се тут. Но оказалось не все так просто. В OnPaint'e пишу: Это ужасная вещь. Он действительно всегда все отсчитывает с низа. Я помнится очень долго возился с этой функцией. Бери ватман и карандашик и сочиняй геометрические формулы. Старые свои сорцы я к сожалению потерял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2006, 12:35 |
|
||
|
Как определить, откуда StretchBlt() отсчитывает координаты?
|
|||
|---|---|---|---|
|
#18+
используй Код: plaintext http://lib.csu.ru/DL/bases/prg/frolov/books/bsp/v14/ch2.htm ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2006, 12:47 |
|
||
|
Как определить, откуда StretchBlt() отсчитывает координаты?
|
|||
|---|---|---|---|
|
#18+
Сергей Ильич kmnНужно отобразить в окошечке кусок картинки, причем с масштабированием. Казалось бы, проблем нет. StretchBlt() - в се тут. Но оказалось не все так просто. В OnPaint'e пишу: Это ужасная вещь. Он действительно всегда все отсчитывает с низа. Я помнится очень долго возился с этой функцией. Бери ватман и карандашик и сочиняй геометрические формулы. Старые свои сорцы я к сожалению потерял В том то и дело, что не всегда (см. предыдущий пост). Формулу-то я нарисую, но нужно определить когда ее использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2006, 13:41 |
|
||
|
Как определить, откуда StretchBlt() отсчитывает координаты?
|
|||
|---|---|---|---|
|
#18+
kmnВ том то и дело, что не всегда (см. предыдущий пост). Формулу-то я нарисую, но нужно определить когда ее использовать. Возможно, он отсчитывает с низа но при определенных это идентично отсчитывнию с верха. Правда, я сейчас вспомнил что я использовал StretchDIBBitsToDevice(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2006, 13:53 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2032144]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
9ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 401ms |

| 0 / 0 |
