Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Подмена оконной функции   Найти похожие ветки 

 
Yuri Btr ©   (2004-03-21 21:38) [0]

Ув. мастера, столкнулся с такой проблемой расширяя функциональность не моей программы - я на постороннем окне создаю контрол - класс "Button", и пытаюсь назначить ему новую оконную функцию для реагирования на оконные сообщения вот таким образом:
...
SetWindowLong(hButton,GWL_WNDPROC,Integer(@WindowProc));
...
function WindowProc(hWnd, uMsg, wParam, lParam: Integer): Integer; stdcall;
begin
Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
end;

Как видите я почти ничего не изменил, для контрола всё вроде бы должно быть прозрачно однако он даже перестал прорисовываться, хотя DefWindowProc вызывается...
Подскажите, где ошибка
Заранее спасибо


 
Yuri Btr ©   (2004-03-21 21:54) [1]

Cпасибо..:)
Решение нашлось

var
 Form1: TForm1;
 FNewProc:pointer;
 FOldProc:pointer;

function WindowProc(hWnd, uMsg, wParam, lParam: Integer): Integer; stdcall;

implementation
...

function WindowProc(hWnd, uMsg, wParam, lParam: Integer): Integer; stdcall;
begin
Result := CallWindowProc(FOldProc,hWnd, uMsg, wParam, lParam);
end;

....
FNewProc:=Pointer(@WindowProc);
FOldProc:=Pointer(GetWindowLong(handle,GWL_WNDPROC));
SetWindowLong(handle,GWL_WNDPROC,Integer(@WindowProc));



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.043 c
3-1081686065
kaif
2004-04-11 16:21
2004.04.11
Уникальность Case Insensitive


1-1079952301
dimon_programmer
2004-03-22 13:45
2004.04.11
Указали на динамические массивы


6-1079437001
marat2
2004-03-16 14:36
2004.04.11
wininet - InternetFindNextFile - ERROR_IO_PENDING


3-1081482425
ev
2004-04-09 07:47
2004.04.11
Как по клику на столбец в DBgrid сортировать его??


1-1082715039
pasha_golub
2004-04-23 14:10
2004.04.11
Использование директивы absolut