![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WinHotKeyCtrl [D7, Win2k, WinXP]
ShiFT © (2005-10-18 13:14:00)http://rsdn.ru/article/controls/WinHotkeyCtrl.xml
Случайно никто не переделывал под Delphi версию для WinAPI?
Меня интересует несколько строк которые я не смог перевести в Delphi
#define MAKEWHCDATA(vkCode, fModSet, fModRel, fIsPressed) \
((DWORD)(((BYTE)((DWORD_PTR)(vkCode) & 0xff)) | \
(((DWORD)((BYTE)((DWORD_PTR)(fModSet) & 0xff)))
ShiFT (2005-10-20 10:44:00) [1]
> Скажем, неверное соглашение о вызове в WinHotKeyCtrlProc.
> (д.б. function(..): LResult; stdcall;)
А ведь в натуре. В этом была проблема. =(
Спасибо. Теперь работает.
А где можно прочитать об этих соглашениях о вызове??
Желательно на русском.
Leonid Troyanovsky (2005-10-20 10:00:00) [2]
> ShiFT (20.10.05 06:30) [3]
> почему возникает ошибка Rantime error 216??
>
> после этих строчек
> SetWindowLong( hwndWhc, GWL_WNDPROC, LongInt( @_WinHotkeyCtrlProc));
>
И чему равен hwndWhc?
И что значит после строчек?
Если они идут подряд, то, причина, возможно, в первой.
Скажем, неверное соглашение о вызове в WinHotKeyCtrlProc.
(д.б. function(..): LResult; stdcall;)
--
Regards, LVT.
ShiFT (2005-10-20 06:57:00) [3]GWL_WNDPROC
Sets a new address for the window procedure.
Windows NT/2000/XP: You cannot change this attribute if the window does not belong to the same process as the calling thread.
но у меня ведь в том же процессе, в том же треде.
Как можно решить эту проблему????
ShiFT (2005-10-20 06:30:00) [4]почему возникает ошибка Rantime error 216??
после этих строчек
SetWindowLong( hwndWhc, GWL_WNDPROC, LongInt( @_WinHotkeyCtrlProc));
и
SetWindowLong( hwndWhc, GWL_USERDATA, dwWhcData);
ShiFT (2005-10-19 08:13:00) [5]help
ShiFT (2005-10-18 13:24:00) [6]
> SetWindowLongPtr(hwndWhc, GWLP_WNDPROC, (LONG)(LONG_PTR)(WNDPROC)_WinHotkeyCtrlProc);
Может быть так???
SetWindowLong( hwndWhc, GWL_WNDPROC, Integer( TFNWndProc( @_WinHotkeyCtrlProc)));