Отправляет email-рассылки с помощью сервиса Sendsay

Программирование на Visual Basic

  Все выпуски  

Программирование на Visual Basic 6.0 в примерах. 21 апреля 2004


Информационный Канал Subscribe.Ru

љљ

љљ љљљљљљљљљљљљљљљљљљљљљљљљљљљљљљљИСПОЛЬЗОВАНИЕ API-ФУНКЦИЙ В ПРИЛОЖЕНИЯХ.

 

љ

На этом уроке я расскажу как работать с dll-библиотеками windows (с их функциями), то есть работать с Windows API. В примере мы выведем на окно рисунок с прозрачным чёрным цветом, итак приступим...

 

Создаём функцию работы с Msimg32.dll (TransparentBlt).

 

В Msimg32.dll есть функция под название TransparentBlt, которая позволяет выводить изображения на окно(вообще существует 100-1000 функций для работы, но разберёмся с одной =)). Сейчас мы эту функцию объявим:

1. Создадим модуль Project->Add Module. Название любое.

2. В модуле введём:

 

Public Declare Function TransparentBlt Lib "Msimg32.dll" (ByVal hdcDest As Long, ByVal nXOriginDest As Integer, ByVal nYOriginDest As Integer, ByVal nWidthDest As Integer, ByVal nHeightDest As Integer, ByVal hdcSrc As Long, ByVal nXOriginSrc As Integer, ByVal nYOriginSrc As Integer, ByVal nWidthSrc As Integer, ByVal nHeightSrc As Integer, ByVal crTransparent As Long) As Boolean ? Функция для копирования картинки ?из bmp файла, с определёнными размерами и ?прозрачным цветом?

 

Public Const SRCCOPY = &HCC0020

 

Public Type POINTAPI

љљљ X As Long

љљљ Y As Long

End Type

 

Public Picture As POINTAPI ? Предаём переменной Picture переменные X,Y из POINTAPI.

3. (если вы чего-то не поняли, обратитесь в архив рассылки на subscribe.ru)

4. На форме создайте PictureBox с Name: picField, ScaleMode: 3-Pixel

5. Далее нарисуйте картинку, например в Paint с размерами 60x60. Нарисуйте так, чтобы в некоторых местах был чисто чёрный цвет (0,0,0) ? этот цвет станет прозрачным.

6. Создайте ещё PictureBox с Name: pic, ScaleMode: 3 ? Pixel, Picture: ?загрузите сюда вашу картинку?, AutoSize: True

7. Далее в Form_Load() добавьте следующую строку:

 

TransparentBlt picField.hdc, Picture.X, Picture.Y, 60, 60, pic.hdc, 0,0 , 60, 60, vbBlack

 

8. Запустите приложение и вы увидите вашу картинку без черного цвета, который стал ?прозрачным?, т.е. исчез.=)

 

Сейчас разберём чего мы написали:

picField.hdc ? куда мы копируем картинку(PictureBox).

Picture.X, Picture.Y ? координаты (можно менять, например что бы картинка скопировалась в центр).

60,60 ? размеры

pic.hdc ? откуда мы копировали (PictureBox).

0,0 ? координаты рисунка в bmp-файле, если изменить, то можно скопировать картинку хоть из середины.

60,60 ? размеры копируемой картинки.

vbBlack ? API-шный чёрный цвет.

 

Поэкспериментируйте с разными изображениями и параметрами, ok?

 

 

љ

 

Конец (!!!).

 

Это далеко не единственная функция, так что разобрать все их невозможно, но теперь вы знаете как с ними работать =). Если вы что-то не поняли, то обратитесь к архиву рассылки или ко мне по адресу symsoft@narod.ru . И внимание!!! Зайдите на наш сайт www.heiva.netfirms.com ? подпишитесь на нашу рассылку, если вы конечно не хотите останавливаться, а хотите начать изучать новые языки (perl, c/c++ и др.), узнать о сетевой безопасности... в общем присоединяйтесь к нам! Там же скоро будет помещён архив этой рассылки ...

 

Урок: 18

Сайт: www.heiva.netfirms.com

e-mail: symsoft@narod.ru

ICQ: 7694377

 

Пока! До новых выпусков!



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное