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

Русский_Проект: Изучение Visual Basic


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

Русский_Проект: Рассылка Вступление
Задачи
Функции API
Советы

Вступление

Здравствуйте! Народ по прежнему изучает Visual Basic. VB.NET пока отдыхает. Что дальше будет?

Задачи

Нашелся один смелый человек, который не поленился прислать правильный ответ на упражнения с обманом зрения. Героя зовут Андрей Мунгалов. Его пример будет опубликован при написании статьи об этом явлении.

А пока предлагаю поломать голову над следующей задачей. На сайте была опубликована серия статей, связанная с кривыми. Там говорилось, что многие кривые получаются при вращении одной окружности внутри или снаружи опорной окружности. Ваша задача - изобразить две окружности, выделить одну точку на вращаемой окружности другим цветом и показать вращение окружности и вычерчиваемую этой точкой но окружности кривую. Кривая на ваш выбор.

Функции API

Сегодня расскажем об удобном способе объявлений функций API.

Если функция API имеет несколько констант, то можно воспользоваться типом Enum. Поясним на примере функции ShowWindow. Функция имеет параметр nCmdShow, который может содержать различные флаги с префиксом SW_*. Воспользуемся Enum:

Public Enum enShowWindow
    SW_HIDE = 0
    SW_MAX = 10
    SW_MAXIMIZE = 3
    SW_MINIMIZE = 6
    SW_NORMAL = 1
    SW_OTHERUNZOOM = 4
    SW_OTHERZOOM = 2
    SW_PARENTCLOSING = 1
    SW_PARENTOPENING = 3
    SW_RESTORE = 9
    SW_SHOW = 5
    SW_SHOWDEFAULT = 10
    SW_SHOWMAXIMIZED = 3
    SW_SHOWMINIMIZED = 2
    SW_SHOWMINNOACTIVE = 7
    SW_SHOWNA = 8
    SW_SHOWNOACTIVATE = 4
    SW_SHOWNORMAL = 1
End Enum
Теперь объявим функцию, используя Alias:
Private Declare Function ShowWindowApi Lib "user32" Alias _
"ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As enShowWindow) _
As Long
Теперь, когда вы будете печатать код функции в IDE, то VB выведет подсказку Intellisense, которая поможет вам съэкономить время. Описание данног совета войдет в Cправочник по функциям Windows API, доступный только зарегистрированным пользователям. Данный справочник содержит около 400 популярных функций и сообщений!

Советы

Существуют разные функции API, позволяющие работать с реестром - RegOpenKeyEx, RegQueryValueEx, RegCloseKey, RegEnumValue. Но данные функции не позволяют работать с разделом HKEY_CLASSES_ROOT, где хранятся типы файлов, даже если использовать константу HKEY_CLASSES_ROOT = &H80000000. Для решения этой проблемы можно пойти другим путем. Для этого мы создадим reg-файл и экспортируем его в реестр. Пример:
    Open App.Path & "\RG.reg" For Output As #1
    Print #1, "REGEDIT4"
    Print #1, ""

    'rpr - Russian PRjoect - новое расширение файла, вроде .TXT
    Print #1, "[HKEY_CLASSES_ROOT\." & rpr & "]"

    '@ - используется как По умолчанию
    Print #1, "@=" & Chr(34) & rpr & "file" & Chr(34)
    Print #1, ""

    Print #1, "[HKEY_CLASSES_ROOT\" & rpr & "file]"

    Print #1, "@=" & Chr(34) & MyDescription & Chr(34)

    ' Значок для нового типа файла

    Print #1, ""
    Print #1, "[HKEY_CLASSES_ROOT\" & rpr & "file\DefaultIcon]"
    Print #1, "@=" & Chr(34) & "C:\\Windows\\System\\Shell32.dll,1" & Chr(34)

    Close#1

    ' запускаем файл
    Shell "RegEdit " & App.Path & "\RG.reg", vbNormalFocus

Вот и все на сегодня!

Присылайте ваши предложения по адресу rusproject@mail.ru
Посетите сайт Русский_Проект, где вы найдете другую интересную информацию
Давайте делать рассылку вместе! Счастливого вам программирования!



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

В избранное