Суббота, 21 Декабря 2024, 21:24

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [358]
Статьи об общих понятиях связанных с созданием игр.
Программирование [85]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [151]
Статьи о программах для создания игр, уроки и описания.
Софт [44]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [17]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [169]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [133]
Статьи, которые не вошли в определённые разделы.
Наш опрос
На какую платформу/систему создаёте игры?
Всего ответов: 10687
Главная » Статьи » Программирование

Круглые окна в Visual Basic 6 от FSO
Всем привет. В этой статье я хочу рассказать, как можно в Visual Basic сделать круглые окна. Это сделать очень легко, ведь программный код в Visual Basic куда легче, чем в С++ или в С и не требует большой обработки памяти. Итак, что нам нужно? Для начала нам нужно использовать две API функции. Если ты начинающий программист, то ты спросишь: "Что такое API ?". API - это как набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (готовой библиотекой) для использования во внешних программных продуктах (так же API можно записать в модуль для выполнения одного API всеми формами проекта). Для начала открой VB и создай новый проект EXE. Поставь курсор в вверх, где будет написано (General) (Declarations). Далее нужно использовать две API:

Code
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long


Эта API работает с координатами круглого окна. Я потом расскажу подробно, а пока нужно вставить тебе вставить вторую (последнюю) API:

Code
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long


Итак, теперь собственно сам код. Нужно записать его в Form_Load, что окна сразу принимало круглую форму:

Code
SetWindowRgn hWnd, CreateEllipticRgn(0, 0, 223, 323), True


Что этот код делает?

SetWindowRgn hWnd ' Указывает работу с окном
CreateEllipticRgn(0, 0, 223, 323) ' Создает окно с нужными координатами.

Первых два нуля указывают координаты окна, а последние два числа ( 223, 323) указывают размер окна. Не бойся практиковаться.

У тебя должно получиться что-то вроде такого:



Вот только координаты окна у меня такие:

Code
SetWindowRgn hWnd, CreateEllipticRgn(0, 0, 723, 323), True


Число (323) ставит высоту окна, а (723) ширину. Кстати, такой метод часто использую в играх. Очень часто.

Спасибо за внимание. С уважением, FSO.
Категория: Программирование | Добавил: FSO (24 Июня 2012)
Просмотров: 7964 | Комментарии: 2 | Рейтинг: 4.1/7 |
Теги: код, Basic, vb, кодинг, Visual Basic 6, API, программирование, окна, Visual Basic, Круглые окна
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Круглые окна в Visual Basic 6 от FSO», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 2
+0-
2 First   (08 Декабря 2012 22:51) [Материал]
FirstVB имеет модуль для работы и другие приспособления! Автор не опытный в программировании и не рассказал о всех возможностях этой API функции!

+0-
1 TimKruz   (30 Июля 2012 10:30) [Материал]
TimKruz
Quote
две API функции

Две WindowsAPI (WinAPI) функции. API бывает разным.
Quote
Далее нужно использовать две API:

Разве в VB нет стандартного модуля для работы с WinAPI?

P.S. Кстати, с помощью SetWindowRGN можно сделать окно любой формы. Да и не только окно, а любой компонент. Можно даже вырезать окно по bitmap-картинке, что весьма удобно... Вот только перемещение окна, кнопки сворачивания/закрытия и прочее придётся делать самому, без этого ты получишь просто неудобный кусок формы (если верхняя полоска срезалась)...

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • PixelLight
  • FBA
  • DreamSDK
  • FIFE
  • BuildBox
  • LOVE
  • Pixie
  • 0m3ga VNE
  • Easy FPS Editor
  • Jake2
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг