Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 30.10.2007
Сообщений: 37

Picture Zoom для Zoog (...ну и вообще кому интересно...)

14.11.2007, 13:17. Показов 835. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сразу извенюсь... в прошлый раз забыл про SetStretchBltMode.
Кидаю API объявления...вроде ниче не забыл ...) и функцию для Zoom.
Параметры PictureZoom:
TargetPicObj - объект PictureBox, где надо выполнять рисование.
SourcePic - объект IPictureDisp содержащий картинку которую будем рисовать.
ScaleVal - масштаб в процентах
X - координата X в пикселах, для смещения картинки в объкте TargetPicObj.
Y - координата Y в пикселах, для смещения картинки в объкте TargetPicObj.
Возвращает True при успешном выполнении.
Некоторые условия:
1. Иконки не рисуем.
2. Работает в True Color режимах, и с True Color картинками. Чтобы применять картинки с 256 и 16 цветами, надо добавить работу с палитрой. Попробуй сделать сам, если конечно это надо....хотя, для самообразования неплохо!!!)

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Private Const DIB_RGB_COLORS = 0
Private Const GMEM_MOVEABLE = &H2
Private Const BI_RGB = 0&
Private Const SRCCOPY = &HCC0020
Private Const BLACKONWHITE = 1
Private Const STRETCH_DELETESCANS = 3
 
Private Type RGBQUAD
        rgbBlue As Byte
        rgbGreen As Byte
        rgbRed As Byte
        rgbReserved As Byte
End Type
 
Private Type BITMAPINFOHEADER
        biSize As Long
        biWidth As Long
        biHeight As Long
        biPlanes As Integer
        biBitCount As Integer
        biCompression As Long
        biSizeImage As Long
        biXPelsPerMeter As Long
        biYPelsPerMeter As Long
        biClrUsed As Long
        biClrImportant As Long
End Type
 
Private Type BITMAPINFO
        bmiHeader As BITMAPINFOHEADER
        bmiColors As RGBQUAD
End Type
 
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type
 
Private Declare Function BitBlt Lib 'gdi32' (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 dwRop As Long) As Long
Private Declare Function CreateCompatibleDC Lib 'gdi32' (ByVal hdc As Long) As Long
Private Declare Function StretchDIBits Lib 'gdi32' (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal wSrcWidth As Long, ByVal wSrcHeight As Long, lpBits As Any, lpBitsInfo As BITMAPINFO, ByVal wUsage As Long, ByVal dwRop As Long) As Long
Private Declare Function SelectObject Lib 'gdi32' (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteObject Lib 'gdi32' (ByVal hObject As Long) As Long
Private Declare Function GetDIBits Lib 'gdi32' (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long
Private Declare Function GlobalAlloc Lib 'kernel32' (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib 'kernel32' (ByVal hMem As Long) As Long
Private Declare Function GlobalUnlock Lib 'kernel32' (ByVal hMem As Long) As Long
Private Declare Function GlobalFree Lib 'kernel32' (ByVal hMem As Long) As Long
Private Declare Function CreateCompatibleBitmap Lib 'gdi32' (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function SetStretchBltMode Lib 'gdi32' (ByVal hdc As Long, ByVal nStretchMode As Long) As Long
Private Declare Function FillRect Lib 'user32' (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long
Private Declare Function GetClientRect Lib 'user32'
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.11.2007, 13:17
Ответы с готовыми решениями:

Сделал COM компонент для 1С на C#, кому интересно смотрите
Сдесь все написано. Отпишите потом если понравится и если не понравится. мне это необходимо.!!! СПАСИБО.!!!

Ищу консультанта/учителя С под Linux, Для тех,кому интересно делиться знаниями
Здравствуйте! Начал изучать Си под Linux при решении реальных задач. Ищу человека, для изучения на постоянной основе. Если вы...

Кому интересно. Покер
Вообщем, давно ничего не кодил и на днях накатал немного говно кода на тему Покера. Кому будет интересно, посмотрите и предложите если...

2
0 / 0 / 0
Регистрация: 30.10.2007
Сообщений: 37
14.11.2007, 18:49  [ТС]
В предыдушем сообщении надо добавить объявление
Private Declare Function DeleteDC Lib 'gdi32' (ByVal hdc As Long) As Long

и все что ниже метки заменить на:
f_Clear:
GlobalUnlock hMem
GlobalFree hMem

SelectObject memDC, prevBmp
DeleteObject memBmp
DeleteObject hb

DeleteDC memDC
0
0 / 0 / 0
Регистрация: 30.10.2007
Сообщений: 37
14.11.2007, 18:56  [ТС]
Еще один примерчик - параметры как и у предыдущей функции, только работает с контекстом, а не битмапой... Палитру тоже не делал....
Одно приемущество, что в True Color режимах нормально хавает 256 и 16 цветную графику.....и сама задача не падает...
Можешь на нее заменить!

Private Const DIB_RGB_COLORS = 0
Private Const GMEM_MOVEABLE = &H2
Private Const BI_RGB = 0&
Private Const SRCCOPY = &HCC0020
Private Const BLACKONWHITE = 1
Private Const STRETCH_DELETESCANS = 3

Private Type BITMAP '14 bytes
bmType As Long
bmWidth As Long
bmHeight As Long
bmWidthBytes As Long
bmPlanes As Integer
bmBitsPixel As Integer
bmBits As Long
End Type

Private Type RGBQUAD
rgbBlue As Byte
rgbGreen As Byte
rgbRed As Byte
rgbReserved As Byte
End Type

Private Type BITMAPINFOHEADER
biSize As Long
biWidth As Long
biHeight As Long
biPlanes As Integer
biBitCount As Integer
biCompression As Long
biSizeImage As Long
biXPelsPerMeter As Long
biYPelsPerMeter As Long
biClrUsed As Long
biClrImportant As Long
End Type

Private Type BITMAPINFO
bmiHeader As BITMAPINFOHEADER
bmiColors As RGBQUAD
End Type

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Private Declare Function BitBlt Lib 'gdi32' (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 dwRop As Long) As Long
Private Declare Function CreateCompatibleDC Lib 'gdi32' (ByVal hdc As Long) As Long
Private Declare Function StretchDIBits Lib 'gdi32' (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal wSrcWidth As Long, ByVal wSrcHeight As Long, lpBits As Any, lpBitsInfo As BITMAPINFO, ByVal wUsage As Long, ByVal dwRop As Long) As Long
Private Declare Function SelectObject Lib 'gdi32' (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteObject Lib 'gdi32' (ByVal hObject As Long) As Long
Private Declare Function GetDIBits Lib 'gdi32' (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long
Private Declare Function GlobalAlloc Lib 'kernel32' (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib 'kernel32' (ByVal hMem As Long) As Long
Private Declare Function GlobalUnlock Lib 'kernel32' (ByVal hMem As Long) As Long
Private Declare Function GlobalFree Lib 'kernel32' (ByVal hMem As Long) As Long
Private Declare Function CreateCompatibleBitmap Lib 'gdi32' (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function SetStretchBltMode Lib 'gdi32' (ByVal hdc As Long, ByVal nStretchMode As Long) As Long
Private Declare Function FillRect Lib 'user32' (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long
Private Declare Function GetClientRect Lib 'user32' (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Sub OleTranslateColor Lib 'oleaut32.dll' (ByVal ColorIn As Long, ByVal hPal As Long, ByRef RGBColorOut As Long)
Private Declare Function CreateSolidBrush Lib 'gdi32' (ByVal crCol
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.11.2007, 18:56
Помогаю со студенческими работами здесь

Кому интересно поломать голову
Привет! Сейчас на работе думал с ума схожу - есть код, который (с виду) работать не должен, но он работает :) В итоге я разобрался...

Бинарные деревья ! кому интересно , сюда!;)
задание : Описать процедуру или функцию которая : а) печатает запись, встречающуюся в дереве один раз б) печатает запись,...

Задание с собеса. Может кому интересно
Определите ошибку в приведенном коде.

Открыта вакансия Программиста 1С - кому интересно?
Добрый день! Меня зовут Анна и я являюсь представителем кадровой компании, работаю как официальный представитель многих компаний города...

прога странно работает=) кому интересно покопать?
написал прогу по подсчету crc-16 (сама функция с википедии).. так вот... когда скармливаю файл (текстовыми кормлю) на несоклько килобайт (1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru