3 августа 2001 года вышел первый выпуск этой рассылки! Поздравляю всех с юбилеем!
Читайте!
Книги
|
|
Переход на VB .NET. Стратегии, концепции, код (цена ~ 158 руб.)
Эта книга была задумана как одна из первых книг о .NET, которая ознакомит читателя с основными идеями новой архитектуры и подготовит его к знакомству с более детальной литературой, например документацией Microsoft и ее толкованиями, которая неизбежно появится на рынке. Она поможет вам взглянуть на эту технологию с позиций ваших собственных рабочих планов и быстро освоить те концепции, которые покажутся необычными для большинства прогр...
|
Автор(ы): Дан Эпплман, Издательство: Питер, 2002 г.
|
|
|
Программирование на VB.NET. Учебный курс (цена ~ 119 руб.)
Эта книга является вводным курсом по
изучению языка программирования Visual Basic .NET.
Даны основные принципы объектно-ориентированного
программирования в контексте языка VB .NET,
поскольку без хорошей подготовки в этой
области невозможно в полной мере
пользоваться всеми преимуществами VB .NET.
Изложены азы всех аспектов языка, которыми
должен владеть любой профессиональный
разработчик VB .NET
|
Автор(ы): Г. Корнелл, Дж. Моррисон, Издательство: Питер, 2002 г.
|
|
|
VB.NET для разработчиков (цена ~ 125 руб.)
Основная задача книги - быстро ознакомить
разработчиков Visual Basic с изменениями в .NET
Framework. Программисты, использующие Java, C++, Delphi
или другие инструменты разработки
приложений и интересующиеся Visual Basic или
технологией .NET Framework, также найдут эту книгу
полезной. Хотя книга посвящена Visual Basic.NET, ее
основная цель - продемонстрировать
взаимодействие Visual Basic и ...
|
Автор(ы): Кит Франклин, Издательство: Вильямс, 2002 г.
|
Остальные книги о VB можно найти
здесь.
наверх
Получить время двойного клика
Этот пример покажет время двойного клика в
миллисекундах: 1000 milliseconds=1 second.
Значение S лежит в ключе реестра:
[HKEY_CURRENT_USER\Control Panel\Mouse] - "DoubleClickSpeed"
Private Declare Function GetDoubleClickTime Lib "user32" () As Long
Private Sub Form_Load()
S = GetDoubleClickTime
MsgBox S
End Sub
наверх
Скрыть/показать курсор мыши
'Добавьте 1 CommandButton на форму. Вызов функции как
ShowCursor& 0 - скроет курсор, вызов как ShowCursor&
1 - покажет курсор. Данная API-функция не
всегда срабатывает. Я не знаю, почему. Если у вас
есть объяснение, напишите.
Private Declare Function ShowCursor& Lib "user32" (ByVal bShow As Long)
Private Sub Command1_Click()
ShowCursor& 0 'Скрыть курсор
End Sub
Private Sub Form_Unload(Cancel As Integer)
ShowCursor& 1 'Показать курсор
End Sub
наверх
Курсор: Перемещение, центрирование, имитация нажатия
В данном примеры вы можете: CenterMouseOn - центрировать курсор мыши на каком-либо элементе, MouseMove - передвигать мышь в определенную точку экрана, MouseFullClick - имитировать нажатие клавиш мыши.
Private Const MOUSEEVENTF_ABSOLUTE = &H8000
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
Private Const MOUSEEVENTF_MIDDLEUP = &H40
Private Const MOUSEEVENTF_MOVE = &H1
Private Const MOUSEEVENTF_RIGHTDOWN = &H8
Private Const MOUSEEVENTF_RIGHTUP = &H10
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As
Long, ByVal dy As Long, ByVal cbuttons As Long, ByVal dwExtraInfo As Long)
Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1
Private Const TWIPS_PER_INCH = 1440
Private Const POINTS_PER_INCH = 72
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As
Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect
As RECT) As Long
Private Const MOUSE_MICKEYS = 65535
Public Enum enReportStyle
rsPixels
rsTwips
rsInches
rsPoints
End Enum
Public Enum enButtonToClick
btcLeft
btcRight
btcMiddle
End Enum
' Returns the screen size in pixels or, optionally, in others scalemode styles
Public Sub GetScreenRes(ByRef X As Long, ByRef Y As Long, Optional ByVal ReportStyle As
enReportStyle)
X = GetSystemMetrics(SM_CXSCREEN)
Y = GetSystemMetrics(SM_CYSCREEN)
If Not IsMissing(ReportStyle) Then
If ReportStyle <> rsPixels Then
X = X * Screen.TwipsPerPixelX
Y = Y * Screen.TwipsPerPixelY
If ReportStyle = rsInches Or ReportStyle = rsPoints Then
X = X \ TWIPS_PER_INCH
Y = Y \ TWIPS_PER_INCH
If ReportStyle = rsPoints Then
X = X * POINTS_PER_INCH
Y = Y * POINTS_PER_INCH
End If
End If
End If
End If
End Sub
' Convert's the mouses coordinate system to a pixel position.
Public Function MickeyXToPixel(ByVal mouseX As Long) As Long
Dim X As Long
Dim Y As Long
Dim tX As Single
Dim tmouseX As Single
Dim tMickeys As Single
GetScreenRes X, Y
tX = X
tMickeys = MOUSE_MICKEYS
tmouseX = mouseX
MickeyXToPixel = CLng(tmouseX / (tMickeys / tX))
End Function
' Converts mouse Y coordinates to pixels
Public Function MickeyYToPixel(ByVal mouseY As Long) As Long
Dim X As Long
Dim Y As Long
Dim tY As Single
Dim tmouseY As Single
Dim tMickeys As Single
GetScreenRes X, Y
tY = Y
tMickeys = MOUSE_MICKEYS
tmouseY = mouseY
MickeyYToPixel = CLng(tmouseY / (tMickeys / tY))
End Function
' Converts pixel X coordinates to mickeys
Public Function PixelXToMickey(ByVal pixX As Long) As Long
Dim X As Long
Dim Y As Long
Dim tX As Single
Dim tpixX As Single
Dim tMickeys As Single
GetScreenRes X, Y
tMickeys = MOUSE_MICKEYS
tX = X
tpixX = pixX
PixelXToMickey = CLng((tMickeys / tX) * tpixX)
End Function
' Converts pixel Y coordinates to mickeys
Public Function PixelYToMickey(ByVal pixY As Long) As Long
Dim X As Long
Dim Y As Long
Dim tY As Single
Dim tpixY As Single
Dim tMickeys As Single
GetScreenRes X, Y
tMickeys = MOUSE_MICKEYS
tY = Y
tpixY = pixY
PixelYToMickey = CLng((tMickeys / tY) * tpixY)
End Function
Public Function CenterMouseOn(ByVal hwnd As Long) As Boolean
Dim X As Long
Dim Y As Long
Dim maxX As Long
Dim maxY As Long
Dim crect As RECT
Dim rc As Long
GetScreenRes maxX, maxY
rc = GetWindowRect(hwnd, crect)
If rc Then
X = crect.Left + ((crect.Right - crect.Left) / 2)
Y = crect.Top + ((crect.Bottom - crect.Top) / 2)
If (X >= 0 And X <= maxX) And (Y >= 0 And Y <= maxY) Then
MouseMove X, Y
CenterMouseOn = True
Else
CenterMouseOn = False
End If
Else
CenterMouseOn = False
End If
End Function
Public Function MouseFullClick(ByVal MBClick As enButtonToClick) As Boolean
Dim cbuttons As Long
Dim dwExtraInfo As Long
Dim mevent As Long
Select Case MBClick
Case btcLeft
mevent = MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP
Case btcRight
mevent = MOUSEEVENTF_RIGHTDOWN Or MOUSEEVENTF_RIGHTUP
Case btcMiddle
mevent = MOUSEEVENTF_MIDDLEDOWN Or MOUSEEVENTF_MIDDLEUP
Case Else
MouseFullClick = False
Exit Function
End Select
mouse_event mevent, 0&, 0&, cbuttons, dwExtraInfo
MouseFullClick = True
End Function
Public Sub MouseMove(ByRef xPixel As Long, ByRef yPixel As Long)
Dim cbuttons As Long
Dim dwExtraInfo As Long
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_MOVE, PixelXToMickey(xPixel),
PixelYToMickey(yPixel), cbuttons, dwExtraInfo
End Sub
Private Sub Command1_Click()
Call CenterMouseOn(Command1.hwnd)
End Sub
наверх
"Заморозить"/"Разморозить" курсор мыши
Расположите на форме 2 элемента CommandButton. При нажатии на первую кнопку, курсор мыши заморозится. При нажатии на вторую конпку - курсор снова будет активным. Используйте клавишу TAB для перехода с фокуса первой кнопки на фокус второй.
Private Declare Function ClipCursor Lib "user32" (lpRect As Any) As Long
Private Sub Command1_Click()
ClipCursor Null
End Sub
Private Sub Command2_Click()
ClipCursor ByVal 0&
End Sub
наверх
Определить над каким элементом находится курсор мыши
Добавьте на форму элемент ListBox.
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
Const LB_ITEMFROMPOINT = &H1A9
Private Sub Form_Load()
List1.AddItem "111"
List1.AddItem "222"
List1.AddItem "333"
List1.AddItem "444"
End Sub
Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lXPoint As Long
Dim lYPoint As Long
Dim lIndex As Long
If Button = 0 Then
lXPoint = CLng(X / Screen.TwipsPerPixelX)
lYPoint = CLng(Y / Screen.TwipsPerPixelY)
With List1
lIndex = SendMessage(.hwnd, LB_ITEMFROMPOINT, 0, ByVal _
((lYPoint * 65536) + lXPoint))
If (lIndex >= 0) And (lIndex <= .ListCount) Then
' .List(lIndex) contains the name of the item under the
mouse cursor.
' if you want to display the item in textbox, simply write:
' Text1.Text =.List(lIndex)
.ToolTipText = .List(lIndex)
Else
.ToolTipText = ""
End If
End With
End If
End Sub
наверх
Ограничить передвижение мыши
Данный пример покажет, как можно ограничить передвижение мыши в пределах запущенной формы.
Расположите на форме 2 элемента CommandButton.
Private Declare Sub ClipCursor Lib "user32" (lpRect As Any)
Private Declare Sub GetClientRect Lib "user32" (ByVal hWnd As Long, lpRect As
RECT)
Private Declare Sub ClientToScreen Lib "user32" (ByVal hWnd As Long, lpPoint As
POINT)
Private Declare Sub OffsetRect Lib "user32" (lpRect As RECT, ByVal x As Long,
ByVal y As Long)
Private Type RECT
left As Integer
top As Integer
right As Integer
bottom As Integer
End Type
Private Type POINT
x As Long
y As Long
End Type
Private Sub Form_Load()
Command1.Caption = "Ограничить передв."
Command2.Caption = "Снять ограничение"
End Sub
Private Sub Form_Unload(Cancel As Integer)
ClipCursor ByVal 0&
End Sub
Private Sub Command1_Click()
Dim client As RECT
Dim upperleft As POINT
GetClientRect Me.hWnd, client
upperleft.x = client.left
upperleft.y = client.top
ClientToScreen Me.hWnd, upperleft
OffsetRect client, upperleft.x, upperleft.y
ClipCursor client
End Sub
Private Sub Command2_Click()
ClipCursor ByVal 0&
End Sub
наверх
Мои программы
BalloonMessage for MS Agent
BalloonMessage for Microsoft Agent реализует диалог программы с
пользователем, используя при этом технологию Microsoft Agent. OCX реализует три
типа диалоговых окон: InputBox, MsgBox и MsgLabels.
Автор: Шатрыкин Иван. Соавтор: Павел Сурменок.
наверх
Вопрос/Ответ
Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы.
Вопросы:
Автор вопроса: Alex
Ответ ожидается по этому
адресу
При яапуске Аутлука надо яаполнить URL, subject, и!! приатачить файл. По отдельности как это сделать понятно. Напрмер .sendfile - но как добавить url & subject? Или mailto: , но как присоединить файл? В баяе есть яакаячик с емайлом и ему надо отсылать формируемый в ворде файл. Помогите кто янает, pls
Автор вопроса:
AFB
Ответ ожидается по этому
адресу
Как остановить удаление файлов если их нет в папке?
Автор вопроса:
XAlex
Ответ ожидается по этому
адресу
Как добавить информацию ия reg файла в реестр бея всяких вопросов и уведомлений
Автор вопроса:
Dima
Ответ ожидается по этому
адресу
Как узнать название монитора и видеокарты программно в VB?
Автор вопроса:
sv
Ответ ожидается по этому
адресу
Как сделать форму прозрачной?
Ответы:
Вопрос:
У меня есть нетипияированный файл (тот который открывается RANDOM) Как уянать сколько в файле яаписей ?
Ответ:
Автор ответа:
Andrew Isakov
Ну… Узнаешь его размер, делаешь поправку на размер заголовка и остаток делишь на размер записи… Почитай про FileSystemObject. Правда, он только в VB6 присутствует…
Вопрос:
Где (в Москве или в инете) можно приобрести лицензионный VB и MSDN?
Ответ:
Автор ответа:
Andrew Isakov
IMHO, вопрос к Московскому представительству Мелкософта…
Вопрос:
Кто знает как пользоваться компонентом Direct Text-to-Speech...пожалуйста напишите...
Ответ:
Автор ответа:
Andrew Isakov
Как пользоваться – не знаю, но знаю, что русского его пока нет, да и, возможно, не предвидится… ;-( Но че-то не очень замутненное я писал года полтора назад – использовал латиницу, подбирал сочетания английских фонем, чтобы звучало по-русски. Акцент, правда, остался… ;-)
Вопрос:
Как программно открыть файл, что б как при двойном щелчке грыяуном открывался?
Ответ:
Автор ответа:
ZemD
Очень просто используй ShellExecute(
HWND hwnd, // handle to parent window
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename or folder name string
LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
);
или если надо запустить ехе'шник
UINT WinExec(
LPCSTR lpCmdLine, // address of command line
UINT uCmdShow // window style for new application
);
Надеюсь всё очень понятно ;) а вобще лучше читай мелкософт сдк
Вопрос:
Как программно съимитировать нажатие кнопки мыши?
Ответ:
Автор ответа:
Andrew Isakov
Нажатие кнопки мыши – это событие… Просто вызывай обработчик нажатия кнопки мыши нужного объекта (контрола) – и все…
Вопрос:
помогите составить оптимальный алгоритм создания дерева (treeviewer)из таблицы, в которой два основных поля - ссылка на верхний и нижний узел ( rec_up,rec_down )
Ответ:
Автор ответа:
Andrew Isakov
Оптимальной будет рекурсия. При каждом вызове самой себя контекст прежнего узла сохраняется… При выходе (в саму себя, разумеется) – восстанавливается…
Вопрос:
Народ подскажите плиз как считать/записать в файл бинарный код и где мне его в VB потом хранить ведь в переменные типа iteger и long нечего не поместиться .
Ответ:
Автор ответа:
Andrew Isakov
Попробуй string – там аж 32К умещается. А доступ – через указатель…
Можете заполнить эту форму, либо отослать вопрос
СЮДА
Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта.
наверх