Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: VB6 Ламер просит помощи – Не могу вызвать Pop Добавлено: 17.03.06 20:29  

Автор вопроса:  GluMORG6
Здравствуйте Все, кто откликнулся на мою, наверняка уже набившую оскомину, просьбу. Прошу меня извинить за мой ламерский непрофессионализм, но дело в том, что за изучение написания программных приложений на VB6, я взялся совсем недавно, и из-за недостатка знаний и опыта, в ходе создания программного кода довольно часто сталкиваюсь с затруднениями в решении самых простых проблем. Вот и сейчас, уже несколько дней не могу решить простую проблему – “Размещение иконки в Tray”.
  Нет, не поймите меня неправильно. Скинуть иконку в трейбар, я смог без проблем, загвоздка, правильнее будет сказать, мой ламерский тормоз, тормознул меня на вызове меню кликом мыши по иконке. Тот код модуля, который я здесь привожу в качестве примера, я взял на форуме. В своём модуле, я использовал для обращения к API – функции аналогичный код:
     Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Public Const NIM_ADD = 0
Public Const NIM_MODIFY = 1
Public Const NIM_DELETE = 2

Public Const WM_MOUSEMOVE = &H200
Public Const NIF_MESSAGE = 1
Public Const NIF_ICON = 2
Public Const NIF_TIP = 4

Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_LBUTTONDBLCLK = &H203

Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const WM_RBUTTONDBLCLK = &H206

Public Const WM_MBUTTONDOWN = &H207
Public Const WM_MBUTTONUP = &H208
Public Const WM_MBUTTONDBLCLK = &H209

Type NOTIFYICONDATA
cbSize As Long
hWnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type
Это код моего модуля:
Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
 Public Const NIM_ADD = 0
 Public Const NIM_MODIFY = 1
 Public Const NIM_DELETE = 2
 Public Const WM_MOUSEMOVE = &H200
 Public Const NIF_MESSAGE = 1
 Public Const NIF_ICON = 2
 Public Const NIF_TIP = 4
 Public Const WM_LBUTTONDOWN = &H201
 Public Const WM_LBUTTONUP = &H202
 Public Const WM_LBUTTONDBLCLK = &H203
 Public Const WM_RBUTTONDOWN = &H204
 Public Const WM_RBUTTONUP = &H205
 Public Const WM_RBUTTONDBLCLK = &H206
 Public Const WM_MBUTTONDOWN = &H207
 Public Const WM_MBUTTONUP = &H208
 Public Const WM_MBUTTONDBLCLK = &H209
  Type NOTIFYICONDATA
   cbSize As Long
   hWnd As Long
   uID As Long
   uFlags As Long
   uCallbackMessage As Long
   hIcon As Long
   szTip As String * 64
  End Type
Собственно разницы никакой, проблема с кодом в форме, а именно, как в коде формы грамотно вписать строку вызова “PopupMenu”, и нужно ли при этом добавить что-либо в код модуля. Т. к., программёр я начинающий, поэтому тупой ламер, и у меня большая просьба к знающим. Пожалуйста разжуйте мне всё подробно. Сам я перепробовал всё, но вот мой VB6 на этом месте при запуске приложения выдаёт “Ошибку компиляции”. Буду признателен тем, кто ответит мне на мыло GluMORG6@yandex.ru.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 SL



ICQ: 277007669 

Вопросов: 10
Ответов: 86
 Профиль | | #1 Добавлено: 17.03.06 20:54
Проверь мыло)))
:)

Ответить

Номер ответа: 2
Автор ответа:
 GluMORG6



Вопросов: 1
Ответов: 2
 Профиль | | #2 Добавлено: 17.03.06 21:56
Благодарю.
Но тупить продолжаю, сама по себе форма работает без проблем. Меню кликом вызывается, всё нормально. Но как только пытаюсь встроить вызов меню в свой код:
 ;Dim nid As NOTIFYICONDATA

Private Sub cmdShow_Click()
 If Form1.Height = 1605 Then
    Form1.Height = 1050
 Else
    Form1.Height = 1605
 End If
    Form1.Width = 1290
 If Text2.Visible = False Then
    Text2.Visible = True
 Else
    Text2.Visible = False
 End If
 If Label1.Visible = False Then
    Label1.Visible = True
 Else
    Label1.Visible = False
 End If
End Sub

Private Sub Form_Load()
 nid.cbSize = Len(nid)
 nid.hWnd = Form1.hWnd
 nid.uID = vbNull
 nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
 nid.uCallbackMessage = WM_MOUSEMOVE
 nid.hIcon = Form1.Icon
 nid.szTip = "Часы и календарь" & vbNullChar
 Shell_NotifyIcon NIM_ADD, nid
 Form1.Height = 1050
 Form1.Width = 1290
  If App.PrevInstance = True Then
    MsgBox "Эй, эй, ну ты ЧЁ?! Ты ЧЁ?! Спишь ЧЁ ЛИ?!!!", 16, "Думай ЧЁ делаешь!"
   End
  End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
 If MsgBox("А мона не. А?", vbYesNo, "Спать!";) = vbYes Then
  Unload Me
  Set Form1 = Nothing
 Else
  Cancel = 1
 End If
End Sub

Private Sub Timer1_Timer()
 Text1.Text = Time
End Sub

Private Sub Timer2_Timer()
 Text2.Text = Date
 xday = Weekday(Date, vbUseSystemDayOfWeek = vbSunday)
 If xday = 7 Then
 Label1.Caption = "Воскресенье"
 xday = Weekday(Date, vbUseSystemDayOfWeek = vbMonday)
 ElseIf xday = 1 Then
 Label1.Caption = "Понедельник"
 xday = Weekday(Date, vbUseSystemDayOfWeek = vbTuesday)
 ElseIf xday = 2 Then
 Label1.Caption = "Вторник"
 xday = Weekday(Date, vbUseSystemDayOfWeek = vbWednesday)
 ElseIf xday = 3 Then
 Label1.Caption = "Среда"
 xday = Weekday(Date, vbUseSystemDayOfWeek = vbThursday)
 ElseIf xday = 4 Then
 Label1.Caption = "Четверг"
 xday = Weekday(Date, vbUseSystemDayOfWeek = vbFriday)
 ElseIf xday = 5 Then
 Label1.Caption = "Пятница"
 xday = Weekday(Date, vbUseSystemDayOfWeek = vbSaturday)
 ElseIf xday = 6 Then
 Label1.Caption = "Суббота"
 End If
End Sub

повторяется одна и та же история, VB6 выдаёт ошибку. Не могу понять где я торможу?

Ответить

Номер ответа: 3
Автор ответа:
 Fever



Вопросов: 60
Ответов: 808
 Профиль | | #3 Добавлено: 18.03.06 15:59
ищи AfClock. Хороший пример.

Ответить

Номер ответа: 4
Автор ответа:
 GluMORG6



Вопросов: 1
Ответов: 2
 Профиль | | #4 Добавлено: 20.03.06 20:04
SL спасибо за пример, разобрался где допускал ошибку.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам