Несколько слов от автора:
Приветствую! Вот сижу, отмечаю свой день рождения. Стараюсь, как быстрее накатать вам выпуск. Ну вот, ловите, что сумел, накатал.
Группа VB. Заходите в гости. Здесь вы приобретете практические навыки по программированию на Visual Basic. Как вы этого сможете достигнуть? Путем написания собственной серьезной программы. Чем обычно занимается рядовой чайник-программист? Ну, пишет там всякие приколы на VB... Ну, ма-а-ленькую полезную программку наваляет. А как получить навыки в создании серьезных программ? Правильно, путем создания серьезных программ. ;) Но в одиночку вам с этим не справиться. Вот для этого в проекте СообЧа существует группа программистов-чайников, которые занимаются разработкой серьезного софта на VB. Суть состоит в том, что вам совсем необязательно знать все в Visual Basicе. Вам достаточно быть рядовым чайником и немного знать операторы VB. Остальному научимся вместе. На данный момент в группе разрабатывается почтовая программа под рабочим названием "Сообчайлер". Она будет уметь все, что умеет популярная программа The Bat и даже намного больше. Есть сборник оригинальных идей, выдвинутых членами нашей группы, которые мы постараемся реализовать все вместе. Проект разбивается на отдельные простые задачи. Такие как: проверка орфографии, форма для написания нового письма, главное окно... и т.п. Каждую часть делает отдельный человек. Затем он высылает сделанный модуль в группу, и остальные просто присоединяют его к базовому проекту. Вам совсем не обязательно четко представлять, как это сделать. Достаточно просто начать и столкнуться с какой-нибудь проблемой. Пусть это будет даже проблема типа "А как добавить новый модуль к проекту?". Все. Наткнулись... ;) Дальше действуем по одной схеме - пишем письмо с описанием проблемы в группу и мы все вместе разбираемся в проблеме. Таким образом, все остальные получат ЗНАНИЯ и некоторые навыки в решении создавшихся проблем. Не забывайте - все мы чайники. Не стоит бояться задать вопрос. Задавайте - а мы вместе попытаемся найти ответ.
Public Declare Function fCreateShellLink Lib "STKIT432.DLL" _
(ByVal lpstrFolderName As String, _
ByVal lpstrLinkName As String, _
ByVal lpstrLinkPath As String, _
ByVal lpstrLinkArgs As String) As Long
fCreateShellLink "C:\Windows\Desktop", _
"NotePad", _
"C:\Windows\Notepad.exe", vbNullString
Практикум на примерах
Windows API (Часть 3 - Использование)
Использование функций API в Visual Basic
Функции API,вызываемые в Visual Basic должны быть предварительно объявлены. При объявлении указывается имя DLL и функции,а также информация о количестве и типе аргументов.
Процедуры DLL объявляются командой Declare в секции General Declarations модуля формы или стандартного модуля: Declare Function имя Lib "библиотека" [Alias "псевдоним"] [([[ByVal ] _
переменная [As тип] [,ByVal,] переменная [As тип]]...])] As тип
Процедуры DLL,находящиеся в стандартных модулях,по умолчанию являются открытыми и могут вызываться из любой точки приложения.Процедуры,объявленные в модуле формы,являются закрытыми и перед их объявлением должно стоять ключевое слово Private. Примечание.
Начиная с версии Visual Basic 5,в именах процедур учитывается регистр символов. Библиотеки
Добавьте на форму любое меню, состоящее из скольки угодно пунктов, а также одну кнопку Command1. Затем внесите в модуль кода формы следующее:
'Необходимые нам API функции
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" _
(ByVal hMenu As Long, ByVal un As Long, ByVal b As Boolean, lpMenuItemInfo _
As MENUITEMINFO) As Long
Private Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" _
(ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, _
lpcMenuItemInfo As MENUITEMINFO) As Long
'Константы
Const MIIM_TYPE = &H10
Const MFT_RIGHTJUSTIFY = &H4000
Const MFT_STRING = &H0&
'Тип MENUITEMINFO
Private Type MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hSubMenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
End Type
'При нажатии на кнопку меню перескочит из левого края в правый
Private Sub Command1_Click()
Dim MnuInfo As MENUITEMINFO
Dim mnuH As Long, MyTemp As Long
mnuH = GetMenu(Me.hwnd)
MnuInfo.cbSize = Len(MnuInfo)
MnuInfo.fMask = MIIM_TYPE
'Если вы хотите выравнять только часть пунктов меню, тогда замените в следующей
'строке, а также в строке над End Sub число 0 на число пунктов, которое вы хотите
'оставить слева
MyTemp = GetMenuItemInfo(mnuH, 0, True, MnuInfo)
MnuInfo.fType = MFT_RIGHTJUSTIFY Or MFT_STRING
'Вам также надо заменить "MenuCaption" на имя пункта, которое будет крайним слева
'в новой расстановке
MnuInfo.cch = Len("MenuCaption")
MnuInfo.dwTypeData = "MenuCaption"
MnuInfo.cbSize = Len(MnuInfo)
MyTemp = SetMenuItemInfo(mnuH, 0, True, MnuInfo)
MyTemp = DrawMenuBar(Me.hwnd)
End Sub
Вопросы / Ответы
Отправитель вопроса @LEXis Приветствие!
Не подскажите, как из VB отключить клавиатуру?
Заранее спасибо.
Объявления
Требуются люди
Хочу напомнить, что еще пусты многие вакансии рассылки:
- Рубрика "Рецензия книг"
- Рубрика "Практикум на примерах"
Также можно просто присылать коды.
Проекты группы СообЧа-VB
Вот проекты которые на данный момент в рабочем состоячнии:
- Сообчайлер: почтовый клиент
- Крестики - Нолики: игра :)
- Secret CODE: шифратор
- Inet TIMER: блокиратор интернета