Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: CallBack Добавлено: 10.03.06 20:07  

Автор вопроса:  Tamplier | ICQ: 298742928 
Нужно использование CallBack'а при использовании MessageBoxIndirect. На сколько я понял, в переменную lpfnMsgBoxCallback типа MSGBOXPARAMS передается адрес процедуры. Ну, поскольку напрямую использовать AddressOf не удалось, написал функцию
Public Function GetAddressOfFunction(ByVal Addr As Long) As Long
        GetAddressOfFunction = Addr
End Function

В качастве параметра передавал
AddressOf CallBackMsg

CallBackMsg объявлена как Public
VB мне говорит, что я неправильно использую AddressOf.
Что можно сделать?

Вот код:
Private Sub Form_Paint()
    Dim MBP As MSGBOXPARAMS, Addr As Long
    MBP.dwStyle = MB_ICONASTERISK
    MBP.hwndOwner = Me.hWnd
    MBP.lpszCaption = "Message"
    MBP.lpfnMsgBoxCallback = GetAddressOfFunction(AddressOf BrowseCallbackProc)
    MessageBoxIndirect MBP
End Sub

Public Function GetAddressOfFunction(ByVal Addr As Long) As Long
        GetAddressOfFunction = Addr
End Function
Public Function BrowseCallbackProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal lp As Long, ByVal pData As Long) As Long
    
    Dim lpIDList As Long
    Dim ret As Long
    Dim sBuffer As String
    Dim i As Integer, flag As Boolean, sPath As String
    
    On Error Resume Next
    
    ' тут, типа, код
    
    BrowseCallbackProc = 0
    
End Function


P.S. Поиск ничего дельного не дал. Есть что-то подобно, то там надо еще доп. форму создавать. А у меня проект и так уже довольно большой.

Ответить

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

Номер ответа: 1
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #1 Добавлено: 10.03.06 20:09
BrowseCallbackProc должна быть объявлена в модуле

Ответить

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



ICQ: 298742928 

Вопросов: 58
Ответов: 340
 Профиль | | #2 Добавлено: 10.03.06 20:26
Опаньки... Спасибо.

Ответить

Номер ответа: 3
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #3 Добавлено: 10.03.06 20:41
Опаньки... Спасибо

Ага :)

Ответить

Страница: 1 |

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



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