Есть статик. Загружаю из файла битмап, и леплю его в статик через STM_SETIMAGE. Битмап отображается в статике в оригинальных пропорциях. Беру ползунок скроллбара и скролю статик (при помощи MoveWindow) так, чтобы статик полностью исчез за пределами своего родителя. Возвращаю статик назад - картинка искажена: оригинальные пропорции нарушены и битмап оказался вписан в размер статика, как будто к нему применили StretchBlt. Что за эффект такой? По какому праву изображение меняет размер? Это так и должно быть?
Код (Text): ; uses ebx esi invoke LoadImage, hInstance, SADD("c:\1.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE mov ebx,eax invoke GetDlgItem, hWnd, IDC_BITMAP mov esi,eax invoke GetWindowLong, esi, GWL_STYLE or eax, SS_BITMAP or eax, 800h invoke SetWindowLong, esi, GWL_STYLE, eax invoke SendMessage, esi, STM_SETIMAGE, IMAGE_BITMAP, ebx invoke MoveWindow, esi, 300, 300, 300, 300, TRUE invoke MoveWindow, esi, 300, 150, 300, 300, TRUE Первый MoveWindow нужно сделать на такие координаты, чтобы статик полностью (или хотя бы частично исчез за пределами родителя). При этом та часть, которая исчезла, будет искажена (поменяются пропорции). Второй MoveWindow просто возвращает статик на место. P.S. Перекрытие другими окнами, сворачивание и разворачивание окна к искажению не приводит, только MoveWindow. P.P.S. Если последний параметр MoveWindow установить в FALSE, то искажать начинает и при сворачивании/разворачивании окна тоже.