Глендальфин писал(а):Засовывание pictureBox в pictureBox и приклеивание по бокам H/VScrollBar'ов - как то коряво..
Хакер писал(а):добавлению скроллбару специального Windows-стиля и обработка специальных оконных сообщений прокрутки.
Глендальфин писал(а):или скажите по какому принципу мне воспользоваться пресловутыми вин-стилями..
Хакер писал(а):Красивым и правильным решением в данном случае является добавлению скроллбару специального Windows-стиля и обработка специальных оконных сообщений прокрутки.
Глендальфин писал(а):Засовывание pictureBox в pictureBox и приклеивание по бокам H/VScrollBar'ов - как то коряво..
Mikle писал(а):Нормальное решение...
Vova_2581 писал(а):Ага!
Vova_2581 писал(а):когда он столкнется с проблемой расчета параметра
Mikle писал(а):Нормальное решение...
Хакер писал(а):Если лично у тебя это вызывает проблему, это не значит, что проблема имеется в самом методе.
Vova_2581 писал(а):Дай точную формулу на nPage.
Хакер писал(а):4 окна вместо одного. Невозможность захвата картинки программами, которые умеют скроллить контейнеры. Невозможность гарантированной адаптации под визуальный стиль целевой системы.
Mikle писал(а):нужно ли всё это? Какова задача? А то так можно в приступе перфекционизма бесконечно стремиться к совершенству, но так и не выполнить поставленную задачу.
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
....
StretchBlt Pic1.hdc, 0, 0, 63, 63, Pic2.hdc, 0, 0, 126, 126, vbSrcCopy
Public Declare Function StretchBlt Lib "gdi32" Alias "StretchBlt" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
StretchBlt ( hDC приемника, x, y, ширина, высота картинки в приемнике, _
hDC источника, x, y, ширина, высота картинки в источнике, _
Операция (для копирования - vbSrcCopy))
Private Declare Function AlphaBlend Lib "msimg32" (ByVal hDestDC As Long, _
ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, _
ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal widthSrc As Long, _
ByVal heightSrc As Long, ByVal blendFunct As Long) As Boolean
AlphaBlend (hDC приемника, X, Y картинки в приемнике, _
ширина, высота картинки, _
hDC источника, X, Y, ширина, высота картинки в источнике, _
МагическоеЧисло)
Const AC_SRC_OVER = &H00
Private Type BLENDFUNCTION
BlendOp As Byte
BlendFlags As Byte
SourceConstantAlpha As Byte
AlphaFormat As Byte
End Type
Private Declare Sub RtlMoveMemory Lib "kernel32.dll" (Destination As Any, Source As Any, ByVal Length As Long)
Dim BF As BLENDFUNCTION, lBF As Long
'Заполняем
With BF
.BlendOp = AC_SRC_OVER
.BlendFlags = 0
.SourceConstantAlpha = 128 'Прозрачность
.AlphaFormat = 0
End With
'Копируем
RtlMoveMemory lBF, BF, 4
AlphaBlend ..., lBF
Глендальфин писал(а):bitblt "дерёт" изображение только с видимой части picturebox, а заодно и формы
Глендальфин писал(а):Я хотел открывать файл jpg и если он слишком велик (проверка размеров) - > пропорционально уменьшать его.
FaKk2 писал(а):протухшем visual basic 6?
Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 55