Balloon из VB через API. Пример на сайте не предлагать

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Balloon из VB через API. Пример на сайте не предлагать

Сообщение ALX_2002 » 27.09.2004 (Пн) 19:06

Добрый вечер братья и отцы по разуму. Я к вам по одному простому сабжу.

Мне нужно сгенерить окно-balloon через API фунции. Я парюсь незнамо сколько. Уже весь пример на сайте излазил. Там столько кода, что разобраться как это ужать до минимума я никак не соображу(голова устала после праздников).

Короче вопр такой: У кого есть примерчик кода или сам примерчик САМОГО ПРОСТОГО вызова балуна из VB через API ? :scratch: :cyclops: [/u]

kazah_
Обычный пользователь
Обычный пользователь
 
Сообщения: 99
Зарегистрирован: 13.01.2003 (Пн) 18:37
Откуда: Russia

Сообщение kazah_ » 27.09.2004 (Пн) 19:25

а чего это хоть такое...
Mr DEN - THE WAY YOU KNOW / Мр. ДЕН - Ваш Путь к Познанию!

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 27.09.2004 (Пн) 19:41

kazah_ писал(а):а чего это хоть такое...


Это сообщение в винде, выглядящее как облако с хвостиком.. :shock: :wink:

Вот такая вот шаманская девелопа. :roll:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.09.2004 (Пн) 20:15

Что за намёки? :)

Щас пойду шаманить, благо сам давно хотел :)
Но чтобы и тебе дать направляющие, скажу: нуно createwindowex (tooltipclass), потом послать ему мессагу "присобачься к этой кнопке", и тогда оно само появится...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 28.09.2004 (Вт) 13:59

2 Gserg: Товарисч. Никаких намёков. :oops: Толбко прозьба о помощи. :cheers: :)

Мне надо сделать появление ентого облака по клику, а не по наведению на кнопешник.

XPraptor
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 115
Зарегистрирован: 02.12.2003 (Вт) 18:13
Откуда: Minsk

Сообщение XPraptor » 28.09.2004 (Вт) 14:16

Держите братцы, отличный и простой пример балона.
Блин, чего файл не цепляется, Модератор! В чем дело?
Последний раз редактировалось XPraptor 28.09.2004 (Вт) 14:18, всего редактировалось 2 раз(а).
Если руки кривые, то не надо ругать разработчиков.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.09.2004 (Вт) 14:17

:)
Ладно, пошёл смотреть :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

kazah_
Обычный пользователь
Обычный пользователь
 
Сообщения: 99
Зарегистрирован: 13.01.2003 (Пн) 18:37
Откуда: Russia

Сообщение kazah_ » 05.10.2005 (Ср) 15:28

ALX_2002 писал(а):
kazah_ писал(а):а чего это хоть такое...


Это сообщение в винде, выглядящее как облако с хвостиком.. :shock: :wink:

Вот такая вот шаманская девелопа. :roll:


Блин Это я задавал такой глупый варос? Ну я дурак... :)
Mr DEN - THE WAY YOU KNOW / Мр. ДЕН - Ваш Путь к Познанию!

JohnK
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 874
Зарегистрирован: 03.08.2002 (Сб) 0:35
Откуда: 48.02` 37.58`

Сообщение JohnK » 11.10.2005 (Вт) 12:29

Вот тебе модуль:

Код: Выделить всё
Option Explicit
'Initialization of New ClassNames
Public Const ICC_BAR_CLASSES = &H4      'toolbar, statusbar, trackbar, tooltips
Private Declare Sub InitCommonControls Lib "comctl32.dll" ()
Private Declare Function InitCommonControlsEx Lib "comctl32.dll" (lpInitCtrls As tagINITCOMMONCONTROLSEX) As Boolean

Type tagINITCOMMONCONTROLSEX
   dwSize As Long   ' size of this structure
   dwICC As Long    ' flags indicating which classes to be initialized.
End Type


' ToolTip Styles
Public Const TTS_ALWAYSTIP = &H1
Public Const TTS_NOPREFIX = &H2
Public Const TTS_BALLOON = &H40 ' comctl32.dll v5.8 require

Public Const CW_USEDEFAULT = &H80000000

Public Const WS_POPUP = &H80000000

Public Const WM_USER = &H400

' ToolTip Messages
Public Const TTM_SETDELAYTIME = (WM_USER + 3)
Public Const TTM_ADDTOOL = (WM_USER + 4)
Public Const TTM_SETTIPBKCOLOR = (WM_USER + 19)
Public Const TTM_SETTIPTEXTCOLOR = (WM_USER + 20)
Public Const TTM_SETMAXTIPWIDTH = (WM_USER + 24)

Public Const TTDT_AUTOPOP = 2
Public Const TTDT_INITIAL = 3

Public Const TTF_IDISHWND = &H1
Public Const TTF_CENTERTIP = &H2
Public Const TTF_SUBCLASS = &H10

Public Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Public Type TOOLINFO
    cbSize      As Long
    uFlags      As Long
    hwnd        As Long
    uId         As Long
    cRect       As RECT
    hinst       As Long
    lpszText    As String
End Type

Public Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
Public Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Public bCreated As Boolean, hTT As Long
Public hCreated() As Long

Public Sub CreateTTWindow(hParent As Long, Optional bBalloon As Boolean = False)
  Dim h As Long, lStyle As Long
  lStyle = TTS_NOPREFIX Or TTS_ALWAYSTIP
  If bBalloon Then lStyle = lStyle Or TTS_BALLOON
  hTT = CreateWindowEx(0, "tooltips_class32", 0, lStyle, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hParent, 0, App.hInstance, 0)
  If Not bCreated Then
     ReDim hCreated(0)
     bCreated = True
  Else
     ReDim Preserve hCreated(UBound(hCreated) + 1)
  End If
  hCreated(UBound(hCreated)) = hTT
End Sub

Public Sub SetToolTip(objTT As Object, sTipText As String, _
                      Optional BkColor As Long = &HEEFFFF, _
                      Optional TxtColor As Long = vbBlack, _
                      Optional MaxWidth As Long = 300, _
                      Optional DelayTime As Long = 500, _
                      Optional VisibleTime As Long = 2000, _
                      Optional bCenter As Boolean = False)
    Dim TI As TOOLINFO
    With TI
        GetClientRect objTT.hwnd, .cRect
        .hwnd = objTT.hwnd
        .uFlags = TTF_IDISHWND Or TTF_SUBCLASS
        If bCenter Then
            .uFlags = .uFlags Or TTF_CENTERTIP
        End If
        .uId = objTT.hwnd
        .lpszText = sTipText
        .cbSize = Len(TI)
    End With
    SendMessageLong hTT, TTM_SETMAXTIPWIDTH, 0, MaxWidth
    SendMessageLong hTT, TTM_SETDELAYTIME, TTDT_INITIAL, DelayTime
    SendMessageLong hTT, TTM_SETDELAYTIME, TTDT_AUTOPOP, VisibleTime
    SendMessageLong hTT, TTM_SETTIPTEXTCOLOR, TxtColor, 0&
    SendMessageLong hTT, TTM_SETTIPBKCOLOR, BkColor, 0&
    SendMessage hTT, TTM_ADDTOOL, 0, TI
End Sub

Public Sub DestroyTT()
  If Not bCreated Then Exit Sub
  Dim i As Integer
  For i = 0 To UBound(hCreated)
      DestroyWindow hCreated(i)
  Next
End Sub

Public Function InitComctl32(dwFlags As Long) As Boolean
   Dim icc As tagINITCOMMONCONTROLSEX
   On Error GoTo Err_OldVersion
   icc.dwSize = Len(icc)
   icc.dwICC = dwFlags
   InitComctl32 = InitCommonControlsEx(icc)
   On Error GoTo 0
   Exit Function
Err_OldVersion:
   InitCommonControls
End Function


А вот форма:

Код: Выделить всё
На Form_Load:

Private Sub Form_Load()
'Создаем всплывающие подсказки
InitComctl32 ICC_BAR_CLASSES
'Якобы говорим
CreateTTWindow hwnd, True
SetToolTip Text1, "Текстовый бокс!" & vbCrLf & "в чате", vbBlue, vbWhite, 200, 100, 5000

На Form_Unload

Private Sub Form_Unload(Cancel As Integer)
Call DestroyTT
End Sub
SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 70

    TopList