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 > |