VBNet
VBMania
Голосование: Ваш голос отсылается по E-mail владельцу сайта, после чего голоса анализируются и на отдельной странице выводятся результаты. Нет тем. Доска почёта: Sergey Y. Tkachev Кононенко Роман Kirill Sergey Sapozhnikov Sobic Ссылки: |
Господа!!! читайте MSDN!!! Несколько слов от автора:
Очередной, ничем не отличающийся от остальных, выпуск рассылки.
Читайте! Содержание выпуска
Книги
Остальные книги о VB можно найти здесь. наверх Как заблокировать действия кнопок управления формой Данный пример покажет, как можно заблокировать события кнопок MinButton, MaxButton и CloseButton. Добавьте на форму 2 элемента CommandButton. Изменяя цифру в событии Command1_Click() можно запретить получать форме отклик от кнопок минимизации (цифра 3), максимизации (цифра 4) и закрытия формы (цифра 6). Вторая командная кнопка добавлена для корректного закрытия вашей программы в случае запуска данного примера с параметром 6. Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long Private Const MF_BYPOS = &H400& Public Sub KillingMenu(hWnd As Long, what As Integer) Dim hSysMenu As Long hSysMenu = GetSystemMenu(hWnd, 0) Call RemoveMenu(hSysMenu, what, MF_BYPOS) End Sub Private Sub Command1_Click() 'замените цифру 6(блокировка CloseButton) на 3(блокировка MinButton) или 4(блокировка MaxButton) KillingMenu Me.hWnd, 6 End Sub Private Sub Command2_Click() End End Sub наверх Прорисовка системных иконок на форме Все вы знаете про функцию MsgBox (ссылка для незнающих эту функцию). При использовании этой функции вы также можете вывести одну из четырех иконок, которые заставляют пользователя обратить внимание. Данный пример как раз и позволяет вытащить системные иконки и расположить их на вашей форме. Public Enum enStockIcons IDI_APPLICATION = 32512& IDI_CRITICAL = 32513& IDI_QUESTION = 32514& IDI_EXCLAMATION = 32515& IDI_INFORMATION = 32516& IDI_WINLOGO = 32517& IDI_UNKNOWN = 32518& End Enum Private Declare Function LoadIconApi Lib "user32" Alias "LoadIconA" (ByVal hInstance As Long, ByVal lpIconName As Long) As Long Private Declare Function DrawIconApi Lib "user32" Alias "DrawIcon" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long Private Sub Form_Paint() Dim hIcon As Long 'здесь вы можете определить, какую иконку загрузить hIcon = LoadSystemIcon(IDI_QUESTION) If hIcon > 0 Then 'заменяя цифры 10,10 вы определяете месторасположение иконки на форме Call DrawIcon(Me.hdc, 10, 10, hIcon) End If End Sub Public Function LoadSystemIcon(ByVal StockIcon As enStockIcons) As Long Dim lRet As Long lRet = LoadIconApi(0, StockIcon) If Err.LastDllError = 0 Then LoadSystemIcon = lRet End If End Function Public Sub DrawIcon(ByVal mHdc As Long, ByVal xPos As Long, ByVal yPos As Long, ByVal hIcon As Long) Dim lRet As Long lRet = DrawIconApi(mHdc, xPos, yPos, hIcon) If (Err.LastDllError > 0) Or (lRet = 0) Then Debug.Print "DrawIcon failed" End If End Sub наверх Затемнение кнопки 'закрыть' и одновременное удаление системного меню Пользуйтесь данным примером очень аккуратно! При двойном нажатии кнопки программа "выполняет недопустимую операцию" Расположите на форме элемент CommandButton.
Эффекты при закрытии формы Функция AnimateWindow дает возможность Вам произвести специальные эффекты при появление или скрытии окон. Имеются три типа анимации: развёртывание, соскальзывание и постепенное появление. Private Declare Function AnimateWindow Lib "user32" (ByVal hwnd As Long, ByVal dwTime As Long, ByVal dwFlags As Long) As Boolean Const AW_HOR_POSITIVE = &H1 'Анимация окна слева направо. 'Этот флаг используется совместно с эффектами развёртывания и соскальзывания. Const AW_HOR_NEGATIVE = &H2 'Анимация окна справа налево. 'Этот флаг используется совместно с эффектами развёртывания и соскальзывания. Const AW_VER_POSITIVE = &H4 'Анимация окна сверху вниз. 'Этот флаг используется совместно с эффектами развёртывания и соскальзывания. Const AW_VER_NEGATIVE = &H8 'Анимация окна снизу вверх. 'Этот флаг используется совместно с эффектами развёртывания и соскальзывания. Const AW_CENTER = &H10 'Окно сворачивается внутрь себя если 'установлен флаг AW_HIDE, иначе разворачивается Const AW_HIDE = &H10000 'Скрывает окно, по умолчанию окно появляется. Const AW_ACTIVATE = &H20000 'Активизирует окно. Const AW_SLIDE = &H40000 'Устанавливает эффект соскальзывания. 'По умолчанию эффект развёртывания. Const AW_BLEND = &H80000 'Эффект постепенного появления. 'Применяется только к окнам верхнего уровня. Private Sub Form_Load() Me.AutoRedraw = True Me.Print "Закрой меня" End Sub Private Sub Form_Unload(Cancel As Integer) 'Анимация окна AnimateWindow Me.hwnd, 200, AW_VER_POSITIVE Or AW_HOR_NEGATIVE Or AW_HIDE 'Выгружаем форму полностью Set Form1 = Nothing End Sub 'Оригинальная версия примера
расположена на сайте http://rusproject.newmail.ru
Использование InputBox для ввода секретной информации Хотите использовать стандартный InputBox для ввода информации, скрытой звездочками? Нет проблем, сказал один из программистов, и создал для вас этот пример. В этом примере вам понадобится дополнительный модуль 'КОД ФОРМЫ Private Sub Command1_Click() Dim ret As String ret = InputBoxEx("Наберите пароль:", "Программа...") Label1 = ret End Sub 'КОД МОДУЛЯ Option Explicit Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Private Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long Private Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Const WH_CBT = 5 Private Const HCBT_ACTIVATE = 5 Private m_lMsgHandle As Long Private m_lhHook As Long Private Const ES_CENTER = &H1& Private Function GetMessageBoxHandle(ByVal lMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long If lMsg = HCBT_ACTIVATE Then m_lMsgHandle = wParam UnhookWindowsHookEx m_lhHook m_lhHook = 0 End If GetMessageBoxHandle = False End Function Private Sub InputBoxTimerUpdateEvent(hWnd As Long, uiMsg As Long, idEvent As Long, dwTime As Long) Dim res As Long If m_lMsgHandle = 0 Then Exit Sub res = FindWindowEx(m_lMsgHandle, 0, "Edit", "") SendMessage res, 1052, 42, ByVal 0& SendMessage res, &H441, ES_CENTER, ByVal 0& End Sub Public Function InputBoxEx(sMsgText As String, Optional sTitle As String = "Secured InputBox") As String Dim lTimerUpdate As Long m_lhHook = SetWindowsHookEx(WH_CBT, AddressOf GetMessageBoxHandle, App.hInstance, GetCurrentThreadId()) lTimerUpdate = SetTimer(0, 0, 0, AddressOf InputBoxTimerUpdateEvent) InputBoxEx = InputBox(sMsgText, sTitle) KillTimer 0, lTimerUpdate End Function наверх Прилипание формы к границам экрана Данный пример покажет, как ваша форма автоматически "прилипает" к границам экрана Создайте стандартный пример. В свойствах формы укажите: BorderStyle = 0 - None Мои программы BalloonMessage for MS Agent BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels. Автор: Шатрыкин Иван. Соавтор: Павел Сурменок. наверх Вопрос/Ответ Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы. Вопросы:Автор вопроса: sv Ответ ожидается по этому адресу Доброго всем времени суток. Есть у меня такой вопрос: в процессе программы открывается MediaPlayer строкой Shell path+file, vbMaximized, а как сделать автозакрытие MediaPlayer'a при закрытии программы ? Автор вопроса: Evgenia Vychub Ответ ожидается по этому адресу После изменения данных в ADO, подключенного к базе данных в Access, и update'a как определить, произошла ли физическая запись данных на диск? Проблема в том, что если тут же использовать такой же запрос из другого ADO, то приходят старые данные. А обновленные - со значительной задержкой по времени. Кто-нибудь сталкивался с такой проблемой? Автор вопроса: Алексей Ответ ожидается по этому адресу Слушайте, а как может программа, написанная в Visual Basic узнать подключены ли мы сейчас к Internet и разорвать подключение, когда уже истекло время. Автор вопроса: Саша Ответ ожидается по этому адресу Так я яаписываю в INI-файл Dim Path As String Path = App.Path & "\config.ini" p = WritePrivateProfileString("www", "w1", "30", Path) Все работает А этим кодом я пытаюсь считать от туда данные, но нечего не выходит. Кто яанет почему ? Dim Path As String Path = App.Path & "\config.ini" p = GetPrivateProfileString("www", "w1", "", "", 300, Path) Автор вопроса: Smael Ответ ожидается по этому адресу Как программно очистить корзину? Автор вопроса: Алексей Ответ ожидается по этому адресу Помогите. Как мне перебрать все формы в интрефейсе MDI, а то черея оператор For Each и чего не выходит? Автор вопроса: CyRax Ответ ожидается по этому адресу Как в панели задач определить: 1. Её положение (сверху, снизу, слева, справа) 2. тип отображения (постоянно, автоматически убирать с экрана) 3. вертикальный размер (Height). Автор вопроса: Николай Ответ ожидается по этому адресу Как получить список всех .ехе и .сом файлов с полным путём на VB 6.0 Автор вопроса: Николай Ответ ожидается по этому адресу При работе в локальной сети есть ли возможность запускать программы на удалённой машине??? Автор вопроса: Света Ответ ожидается по этому адресу Здравствуйте, подскажите пожалуйста, как удалить директорию (п-р: C:/Мои документы/Папка) из Excele? Автор вопроса: Vlad Lagutin Ответ ожидается по этому адресу подскажите , как подключить поле Базы Acsess тип поля OLE с объектом OLE в форме? (можно ли использовать word и html одновременно) Автор вопроса: Николай Ответ ожидается по этому адресу Имеется список запускающих файлов(.ехе),или "хандлов"(заголовков окон). Необходимо сделать так что бы при запуске какой либо программы из этого списка программа автоматически закрывалась а на рабочем столе появлялось окно сообщений. При наступлении определённого события (клик мышкой или при помощи таймера),программа проверяет все запущенные приложения и сверяет запускающий файл или "хендл" со списком,и если находит соответствие - закрывает эту программу. Примерно так,а вот как это реализовать на VB 6.0 в виде кода я не знаю. Я не хакер и не ламер,просто надоело что в рабочее время играют в игрушки. Автор вопроса: Дима Ответ ожидается по этому адресу Как в меню "Помощь" в раядел "О программе" добавить картинку, а также ссылку на домашнюю страничку автора и его e-mail. Ответы: Вопрос: Как можно ияменить стиль формы во время выполнения программы? Не было у формы бордюр, как сделать чтобы они появились и наоборот? Вояможно с помощью какой API-функции, или может можно форму переяагруяить с другим яначением BorderStyle? Ответ: Автор ответа: P@Ssword Насколько я понимаю, программисты из MicroHard не сделали это стандартными средствами потому, что как бы в результате должен меняться hWnd окна, а изменения трудно перехватить. Вопрос: В VB есть такой control DataRepeater. Прочитал, что его можно использовать в качестве подчинённой формы (не ленточной, а именно подчинённой, как в Access), но нет документации как это сделать. Может кто-нибудь знает? Ответ: Автор ответа: Sergey Y. Tkachev Могу дать только намек. Дата репитер может являться контейнером для одного контрола, который он размножает, как и ленточная форма Аксеса. Для этого тебе нужно сделать свой ActiveX (например два текстовых поля, чекбокс, комбобокс) и уже его положить на репитер. Можете заполнить эту форму, либо отослать вопрос СЮДА Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта. |
||||||||||||||||||||
Выпуск подготовили: |
Сурменок Павел |