Re: [GD-Windows] Crash when overriding tree view wndproc
Brought to you by:
vexxed72
|
From: Pierre T. <pte...@ag...> - 2007-07-04 13:37:27
|
Excellent, this seems to work!
Thanks!
- Pierre
----- Original Message -----
From: "Roman Keskenti" <Rom...@Pi...>
To: "Game Development for MS Windows"
<gam...@li...>
Sent: Wednesday, July 04, 2007 3:30 PM
Subject: [****** SPAM: ******] Re: [GD-Windows] Crash when overriding tree
view wndproc
> Pierre,
>
> i think you're supposed to use the CallWindowProc API instead of calling
the
> superclass proc yourself.
>
> static LRESULT CALLBACK MyTreeViewWndProc(HWND hwnd, UINT uMessage, WPARAM
> wParam, LPARAM lParam)
> {
> return ::CallWindowProc( OldWndProc, hwnd, uMessage, wParam, lParam);
> }
>
> Roman
>
> ----- Original Message -----
> From: "Pierre Terdiman" <pte...@ag...>
> To: "Game Development for MS Windows"
> <gam...@li...>
> Sent: Wednesday, July 04, 2007 3:23 PM
> Subject: [GD-Windows] Crash when overriding tree view wndproc
>
>
> > Hi,
> >
> > I'm trying to override the treeview wndproc to catch some messages. For
> > other controls it worked fine, but with this one it crashes as soon as I
> > call the old wndproc. So it looks like this:
> >
> > mHWnd = IceCore::CreateWindowEx(
> > WS_EX_CLIENTEDGE,
> > WC_TREEVIEW,
> > "",
> > dwStyle,
> > desc.mX, desc.mY,
> > desc.mWidth, desc.mHeight,
> > hwndParent,
> > (HMENU)desc.mID,
> > (HINSTANCE)GetModuleHandle(null),
> > null
> > );
> >
> >
> > And then to override the wndproc:
> >
> > typedef LRESULT (CALLBACK * WndProc_t)(HWND hwnd, UINT uMessage, WPARAM
> > wParam, LPARAM lParam);
> >
> > static WndProc_t OldWndProc = 0;
> >
> > OldWndProc = (WndProc_t) SetWindowLong(mHWnd, GWL_WNDPROC,
> > (LONG)MyTreeViewWndProc);
> >
> >
> > The new wndproc is simply calling the old one at the moment:
> >
> > static LRESULT CALLBACK MyTreeViewWndProc(HWND hwnd, UINT uMessage,
WPARAM
> > wParam, LPARAM lParam)
> > {
> > return (OldWndProc)(hwnd, uMessage, wParam, lParam);
> > }
> >
> > ==> this crashes inside the old wndproc somewhere. However this same
> > procedure worked fine for other controls (list boxes, edit boxes....) so
> > I'm
> > not sure what's going on.
> >
> > Is there something special about the treeview's wndproc?
> >
> > Thanks,
> > - Pierre
> >
> >
>
> -------------------------------------------------------------------------
> > This SF.net email is sponsored by DB2 Express
> > Download DB2 Express C - the FREE version of DB2 express and take
> > control of your XML. No limits. Just data. Click to get it now.
> > http://sourceforge.net/powerbar/db2/
> > _______________________________________________
> > Gamedevlists-windows mailing list
> > Gam...@li...
> > https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows
> > Archives:
> > http://sourceforge.net/mailarchive/forum.php?forum_id=555
> >
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Gamedevlists-windows mailing list
> Gam...@li...
> https://lists.sourceforge.net/lists/listinfo/gamedevlists-windows
> Archives:
> http://sourceforge.net/mailarchive/forum.php?forum_id=555
>
|