Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS General Discussion » RecalcLayout crash. Collapse All
Subject Author Date
na cheong ju Jan 28, 2007 - 11:42 PM

i try to load windows position from registry.
but some case, by window rayout, my app crash.

can you advise me?


call stack
mfc71d.dll!CWnd::RepositionBars(unsigned int nIDFirst=0, unsigned int nIDLast=65535, unsigned int nIDLeftOver=59648, unsigned int nFlags=2, tagRECT * lpRectParam=0x01b8b050, const tagRECT * lpRectClient=0x00000000, int bStretch=1) line 2981    C++
mfc71d.dll!CFrameWnd::RecalcLayout(int bNotify=1) line 2008    C++
LuaConsole_locald.exe!CMainFrame::RecalcLayout(int bNotify=1) line 116    C++
ProfUIS262md.dll!CExtControlBar::InternalDockStateSite::StateSet(bool bPresetWP=true) line 4120 + 0x1a    C++
ProfUIS262md.dll!CExtControlBar::InternalFriendlyFrameWnd::SetDockState(const CExtControlBar::InternalDockStateSite & state={...}, bool bPresetWP=true) line 3131    C++
ProfUIS262md.dll!CExtControlBar::ProfileBarStateSerialize(CArchive & ar={...}, CFrameWnd * pFrame=0x01b8afe0, tagWINDOWPLACEMENT * pFrameWp=0x01b8b4ac, bool bSerializeFixedBarsState=true, bool bSerializeResizableBarsState=true, bool bEnableThrowExceptions=false) line 5578    C++
ProfUIS262md.dll!CExtControlBar::ProfileBarStateLoad(CFrameWnd * pFrame=0x01b8afe0, const char * sSectionNameCompany=0x016db700, const char * sSectionNameProduct=0x016db5c0, const char * sSectionNameProfile=0x016db5c0, tagWINDOWPLACEMENT * pFrameWp=0x01b8b4ac, bool bSerializeFixedBarsState=true, bool bSerializeResizableBarsState=true, HKEY__ * hKeyRoot=0x80000001, bool bEnableThrowExceptions=false) line 2516 + 0x20    C++

Suhai Gyorgy Jan 29, 2007 - 2:39 AM

Prof-UIS saves the positions and states of controlbars in binary format in the registry. If during development you remove or change ID of any controlbar or toolbar, or any command ID is modified or removed, the ProfileBarStateSerialize method can’t apply states saved in the registry at next startup of application, as some identifiers in binary data do not exist anymore. If during development you change anything like that, you can remove registry entry before running application with the changes, that will avoid crash. Or you can just ignore crash and proper identifiers will be saved at next closing of application.