powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как объявить и использовать CALLBACK-функцию?
2 сообщений из 2, страница 1 из 1
как объявить и использовать CALLBACK-функцию?
    #36162179
Фотография Фрилансер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
собственно, вопрос в сабже, а чтобы было окончательно все понятно - пример кода на C++:

int CALLBACK BrowseCallbackProc(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData)
{
switch(uMsg)
{
case BFFM_INITIALIZED:
SendMessage(hwnd,BFFM_SETSELECTION,TRUE,lpData);
break;
}
return 0;
}


...

wchar_t *selectPath=_T("D:\\");
BROWSEINFO pBrowseInfo;
ZeroMemory(&pBrowseInfo, sizeof(pBrowseInfo));
pBrowseInfo.hwndOwner = m_hWnd;
pBrowseInfo.lpszTitle = _T("Choose Directory");
pBrowseInfo.lpfn=BrowseCallbackProc;
pBrowseInfo.lParam=(LPARAM)selectPath;

LPITEMIDLIST pItemIDList = SHBrowseForFolder(&pBrowseInfo);
if (pItemIDList)
{
TCHAR strDirectory[512];
SHGetPathFromIDList(pItemIDList, strDirectory);
return strDirectory;
}
...
Рейтинг: 0 / 0
как объявить и использовать CALLBACK-функцию?
    #36162312
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фрилансер,
прототип данной Callback-функции аналогичен прототипу оконной процедуры:
Код: plaintext
1.
2.
Public Function BrowseCallbackProc( _
   ByVal hWnd As Long, ByVal uMsg As Long, _
   ByVal lParam As Long, ByVal lpData As Long) As Long
Функция должна находиться в обычном модуле (не модуле класса).
P.S. Надо помнить про описание четвёртого параметра в Declare SendMessage: если он описан As Any, то надо вызов SendMessage оформлять как
Код: plaintext
SendMessage hWnd, BFFM_SETSELECTION,  1 &, ByVal lpData
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как объявить и использовать CALLBACK-функцию?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]