Показать сообщение отдельно
  #21  
Старый 03.12.2012, 22:27
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Есть - subclassing. Не желает ProgressBar по-другому ловиться. Classes здесь не причём, размер будет минимальный.
Вот пример
Код:
var
  hpbPrev	: Pointer;
...
function pbWndProc(Wnd : HWND; Msg, wParam, lParam : Longint) : Longint; stdcall;
begin
  Result := CallWindowProc(hpbPrev, Wnd, Msg, wParam, lParam);
  case Msg of
    WM_LBUTTONDOWN : MessageBox(Wnd, 'ProgressBar1Click',   'Click', MB_OK);
  end;  
end;
...
function WindowProc(Wnd: HWnd; Message, wParam, lParam : Integer): Integer; stdcall;
begin
  Result := 0;
  case Message of
    WM_CREATE :
    begin
      ProgressBar1 := CreateWindow('msctls_progress32', 'progressbar', WS_VISIBLE or WS_CHILD or WS_BORDER,
                               48, 320, 150, 18, Wnd, 0, hInstance, NIL);
      // Subclass ListView
      hpbPrev := Pointer(GetWindowLong(ProgressBar1, GWL_WNDPROC));
      SetWindowLong(ProgressBar1, GWL_WNDPROC, Longint(@pbWndProc));
    end;
...
  else
    Result := DefWindowProc(Wnd, Message, wParam, lParam);
  end;
end;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием