From 82f402379322cbc7e2ec21688ebcfbc2bf1806a8 Mon Sep 17 00:00:00 2001 From: sekelsenmat Date: Thu, 20 May 2010 20:12:26 +0000 Subject: [PATCH] Improves wince debug info and adds PageWindowProc git-svn-id: trunk@25553 - --- lcl/interfaces/wince/wincecallback.inc | 8 ++++++-- lcl/interfaces/wince/wincewsextctrls.pp | 8 +++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/lcl/interfaces/wince/wincecallback.inc b/lcl/interfaces/wince/wincecallback.inc index 84a35472df..96f531d24e 100644 --- a/lcl/interfaces/wince/wincecallback.inc +++ b/lcl/interfaces/wince/wincecallback.inc @@ -65,14 +65,18 @@ function CallDefaultWindowProc(Window: HWnd; Msg: UInt; WParam: Windows.WParam; var PrevWndProc: Windows.WNDPROC; setComboWindow: boolean; + WindowInfo: PWindowInfo; begin {$ifdef MSG_DEBUG} DebugLn('Trace:CallDefaultWindowProc - Start'); {$endif} - PrevWndProc := GetWindowInfo(Window)^.DefWndProc; + WindowInfo := GetWindowInfo(Window); + PrevWndProc := WindowInfo^.DefWndProc; + if (PrevWndProc = nil) or (PrevWndProc = @WindowProc) // <- prevent recursion - then begin + or ((WindowInfo^.WinControl <> nil) and (WindowInfo^.WinControl is TTabSheet)) then + begin {$ifdef MSG_DEBUG} DebugLn('Trace:CallDefaultWindowProc - A'); {$endif} diff --git a/lcl/interfaces/wince/wincewsextctrls.pp b/lcl/interfaces/wince/wincewsextctrls.pp index 7063f86406..d6e95e3a20 100644 --- a/lcl/interfaces/wince/wincewsextctrls.pp +++ b/lcl/interfaces/wince/wincewsextctrls.pp @@ -288,7 +288,7 @@ end; function PageWindowProc(Window: HWnd; Msg: UInt; WParam: Windows.WParam; LParam: Windows.LParam): LResult; {$ifdef win32}stdcall{$else}cdecl{$endif}; begin -// Result := WindowProc(Window, Msg, WParam, LParam); + Result := WindowProc(Window, Msg, WParam, LParam); end; class function TWinCEWSCustomPage.CreateHandle(const AWinControl: TWinControl; @@ -307,10 +307,8 @@ begin with Params do begin pClassName := @ClsName; - SubClassWndProc := nil;//@PageWindowProc; -// Params.Flags := WS_CHILD or WS_CLIPSIBLINGS or WS_CLIPCHILDREN; -// Flags := Flags and not WS_VISIBLE; -// Params.FlagsEx := WS_EX_CONTROLPARENT; + SubClassWndProc := @PageWindowProc; + Flags := Flags and not WS_VISIBLE; end; // create window FinishCreateWindow(AWinControl, Params, false);