Xin chào, tôi có một biểu mẫu có nhiều khung bên trong.Delphi 7 - Xử lý sự kiện MouseWheel cho Khung được nhúng trong Biểu mẫu?
Đối với một số khung, tôi muốn cuộn nội dung (hoặc ít nhất là xử lý sự kiện con lăn chuột).
Tôi đã thử những điều sau đây:
Đơn giản chỉ cần gán một xử lý sự kiện OnMouseWheel cho mỗi khung
Trọng sự kiện mousewheel cho form cha:
procedure TFmReview.MouseWheelHandler(var Message: TMessage);
var Control: TControl;
begin
Control := ControlAtPos(ScreenToClient(SmallPointToPoint(TWMMouseWheel(Message).Pos)), False, True);
if Assigned(Control) and (Control <> ActiveControl) then
begin
ShowMessage(Control.Name);
Message.Result := Control.Perform(CM_MOUSEWHEEL, Message.WParam, Message.LParam);
if Message.Result = 0 then
Control.DefaultHandler(Message);
end else inherited MouseWheelHandler(Message);
end;
Đáng tiếc là cả hai không có vẻ làm việc.
- Trong trường hợp 1, sự kiện sẽ không bao giờ được kích hoạt, tuy nhiên, trình xử lý bánh xe chuột được kích hoạt.
- Trong trường hợp 2, điều khiển nhận tiêu điểm là bảng chứa khung tôi muốn gửi sự kiện con lăn chuột tới.
Vì vậy, chỉ đơn giản là, làm cách nào tôi có thể điều khiển sự kiện con lăn đến phần điều khiển trên cùng mà con trỏ chuột kết thúc (bất kể con trỏ/khung hình/con trỏ ở đâu)?
Hãy xem [những SO câu trả lời] [ 1] họ có thể sẽ giúp đỡ. [1]: http://stackoverflow.com/questions/2472743/what-is-the-best-method-for-implementing-mouse-wheel-activity-in-delphi-vcl-form –
có thể trùng lặp của [Làm thế nào để chỉ đạo đầu vào bánh xe chuột để điều khiển theo con trỏ thay vì tập trung?] (http://stackoverflow.com/questions/2251019/how-to-direct-the-mouse-wheel-input-to-control -under-cursor-thay-of-focus) – Kromster