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 Tech Support » Add scroll-bar to dialog Collapse All
Subject Author Date
Offer Har Mar 4, 2009 - 6:47 PM

Dear Support,


I have a tag container in a control-bar or a view, that contain several dialog derived from CExtResizableDialog. When the user resize the window so that it’s smaller then the dialog initial size, I need to have a scroll-bar so that thew user will be able to scrol to th bottom part of the dialog.


How can this be done?


Thanks,


Ron.

Technical Support Mar 5, 2009 - 7:59 AM

You should create a CExtScrollContainerWnd window and then create a child dialog inside it:

http://www.prof-uis.com/download/forums/TestScrollDialog2.zip

Offer Har Mar 5, 2009 - 11:13 AM

Dear Support,


The sample does not compile with 2.84, can you please check why?


These are the errors I get:


1>------ Build started: Project: TestScrollDialog, Configuration: Debug Win32 ------

1>Compiling...

1>StdAfx.cpp

1> WINVER not defined. Defaulting to 0x0502 (Windows Server 2003)

1>   Automatically linking with Prof-UIS library: ProfUIS284md.lib

1>      (Professional User Interface Suite)

1>Compiling...

1>ChildView.cpp

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.h(15) : error C2011: ’CExtScrollContainerWnd’ : ’class’ type redefinition

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(17) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(17) : error C2059: syntax error : ’)’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(19) : error C2448: ’m_sizeToScroll’ : function-style initializer appears to be a function definition

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(22) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(22) : error C2059: syntax error : ’)’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(23) : error C2143: syntax error : missing ’;’ before ’{’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(23) : error C2447: ’{’ : missing function header (old-style formal list?)

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(27) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(27) : error C2270: ’GetMessageMap’ : modifiers not allowed on nonmember functions

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(27) : error C3861: ’GetThisMessageMap’: identifier not found

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(27) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(27) : error C2365: ’GetThisMessageMap’ : redefinition; previous definition was ’formerly unknown identifier’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(29) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(29) : error C2065: ’OnCreate’ : undeclared identifier

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(31) : error C2248: ’CExtScrollWnd::GetThisMessageMap’ : cannot access protected member declared in class ’CExtScrollWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1387) : see declaration of ’CExtScrollWnd::GetThisMessageMap’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1232) : see declaration of ’CExtScrollWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(37) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(39) : error C2352: ’CWnd::PreCreateWindow’ : illegal call of non-static member function

1>        c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(2069) : see declaration of ’CWnd::PreCreateWindow’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(56) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(57) : error C2270: ’OnSwGetScrollPaintPos’ : modifiers not allowed on nonmember functions

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(58) : error C2673: ’OnSwGetScrollPaintPos’ : global functions do not have ’this’ pointers

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(62) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(64) : error C2673: ’OnSwPaint’ : global functions do not have ’this’ pointers

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(68) : error C2673: ’OnSwPaint’ : global functions do not have ’this’ pointers

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(73) : error C2660: ’GetClientRect’ : function does not take 1 arguments

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(76) : error C2673: ’OnSwPaint’ : global functions do not have ’this’ pointers

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(81) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(86) : error C2673: ’OnSwPaintAreaBetweenScrollBarWindows’ : global functions do not have ’this’ pointers

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(89) : error C2673: ’OnSwPaintAreaBetweenScrollBarWindows’ : global functions do not have ’this’ pointers

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(93) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(94) : error C2270: ’OnSwGetTotalSize’ : modifiers not allowed on nonmember functions

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(95) : error C2673: ’OnSwGetTotalSize’ : global functions do not have ’this’ pointers

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(96) : error C2065: ’m_sizeToScroll’ : undeclared identifier

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(99) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(100) : error C2270: ’OnSwGetPageSize’ : modifiers not allowed on nonmember functions

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(101) : error C2673: ’OnSwGetPageSize’ : global functions do not have ’this’ pointers

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(106) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(107) : error C2270: ’OnSwGetLineSize’ : modifiers not allowed on nonmember functions

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(108) : error C2673: ’OnSwGetLineSize’ : global functions do not have ’this’ pointers

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(113) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(114) : error C2270: ’GetScrollBarCtrl’ : modifiers not allowed on nonmember functions

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(115) : error C2673: ’GetScrollBarCtrl’ : global functions do not have ’this’ pointers

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(116) : error C2065: ’m_hWnd’ : undeclared identifier

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(121) : error C2065: ’m_wndScrollBarH’ : undeclared identifier

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(121) : error C2228: left of ’.GetSafeHwnd’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(126) : error C2065: ’m_wndScrollBarV’ : undeclared identifier

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(126) : error C2228: left of ’.GetSafeHwnd’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(132) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(134) : error C2352: ’CWnd::PreSubclassWindow’ : illegal call of non-static member function

1>        c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(2013) : see declaration of ’CWnd::PreSubclassWindow’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(137) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(138) : error C2365: ’OnCreate’ : redefinition; previous definition was ’formerly unknown identifier’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(139) : error C2248: ’CWnd::OnCreate’ : cannot access protected member declared in class ’CWnd’

1>        c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(2567) : see declaration of ’CWnd::OnCreate’

1>        c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(1973) : see declaration of ’CWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(139) : error C2352: ’CWnd::OnCreate’ : illegal call of non-static member function

1>        c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxwin.h(2567) : see declaration of ’CWnd::OnCreate’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(142) : error C2228: left of ’.m_eSO’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(143) : error C2228: left of ’.m_eSO’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(144) : error C2228: left of ’.Create’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(147) : error C2673: ’OnCreate’ : global functions do not have ’this’ pointers

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(155) : error C2228: left of ’.Create’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(158) : error C2673: ’OnCreate’ : global functions do not have ’this’ pointers

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(166) : error C2228: left of ’.SyncReservedSpace’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(167) : error C2228: left of ’.SyncReservedSpace’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(168) : error C2065: ’m_wndCorner’ : undeclared identifier

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(168) : error C2228: left of ’.Create’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(172) : error C2673: ’OnCreate’ : global functions do not have ’this’ pointers

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(180) : error C3861: ’OnSwRecalcLayout’: identifier not found

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(185) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(189) : error C2365: ’OnSwRecalcLayout’ : redefinition; previous definition was ’formerly unknown identifier’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(190) : error C2673: ’OnSwRecalcLayout’ : global functions do not have ’this’ pointers

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(191) : error C3861: ’GetWndToScroll’: identifier not found

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(192) : error C2228: left of ’.cx’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(192) : error C2228: left of ’.cy’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(204) : error C2228: left of ’.cx’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(204) : error C2228: left of ’.cy’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(206) : error C2352: ’CExtScrollWnd::OnSwRecalcLayout’ : illegal call of non-static member function

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1272) : see declaration of ’CExtScrollWnd::OnSwRecalcLayout’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(208) : error C2228: left of ’.cx’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(209) : error C2228: left of ’.cy’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(215) : error C2228: left of ’.cx’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(215) : error C2228: left of ’.cx’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(216) : error C2228: left of ’.cy’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(216) : error C2228: left of ’.cy’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(218) : error C3861: ’ScrollPos32Get’: identifier not found

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(219) : error C3861: ’ScrollPos32Get’: identifier not found

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(226) : error C2228: left of ’.GetSafeHwnd’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(227) : error C2228: left of ’.GetSafeHwnd’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(228) : error C2228: left of ’.GetSafeHwnd’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(232) : error C2228: left of ’.GetStyle’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(233) : error C2228: left of ’.GetStyle’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(237) : error C2228: left of ’.GetWindowRect’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(238) : error C2228: left of ’.GetWindowRect’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(245) : error C2660: ’ScreenToClient’ : function does not take 1 arguments

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(248) : error C2228: left of ’.SetWindowPos’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(249) : error C2065: ’wndTop’ : undeclared identifier

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(253) : error C2228: left of ’.GetStyle’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(254) : error C2228: left of ’.ShowWindow’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(259) : error C2027: use of undefined type ’CExtScrollContainerWnd’

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(264) : error C2673: ’OnSwDoScrollBy’ : global functions do not have ’this’ pointers

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(265) : error C2352: ’CExtScrollWnd::OnSwDoScrollBy’ : illegal call of non-static member function

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1346) : see declaration of ’CExtScrollWnd::OnSwDoScrollBy’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(266) : error C2228: left of ’.cx’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(267) : error C2228: left of ’.cy’ must have class/struct/union

1>        type is ’’unknown-type’’

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(270) : error C3861: ’GetWndToScroll’: identifier not found

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(272) : error C3861: ’OnSwGetClientRect’: identifier not found

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.cpp(272) : fatal error C1003: error count exceeds 100; stopping compilation

1>MainFrm.cpp

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.h(15) : error C2011: ’CExtScrollContainerWnd’ : ’class’ type redefinition

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\mainfrm.h(47) : error C2079: ’CMainFrame::m_wndScrollContainer’ uses undefined class ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\mainfrm.cpp(79) : error C2228: left of ’.GetSafeHwnd’ must have class/struct/union

1>        type is ’int’

1>z:\3rdparty\prof-uis\testscrolldialog2\mainfrm.cpp(80) : error C2228: left of ’.SetFocus’ must have class/struct/union

1>        type is ’int’

1>z:\3rdparty\prof-uis\testscrolldialog2\mainfrm.cpp(86) : error C2228: left of ’.GetSafeHwnd’ must have class/struct/union

1>        type is ’int’

1>z:\3rdparty\prof-uis\testscrolldialog2\mainfrm.cpp(88) : error C2228: left of ’.OnCmdMsg’ must have class/struct/union

1>        type is ’int’

1>z:\3rdparty\prof-uis\testscrolldialog2\mainfrm.cpp(159) : error C2228: left of ’.Create’ must have class/struct/union

1>        type is ’int’

1>z:\3rdparty\prof-uis\testscrolldialog2\mainfrm.cpp(165) : error C2664: ’BOOL CExtResDlg::Create(__EXT_MFC_SAFE_LPCTSTR,CWnd *)’ : cannot convert parameter 1 from ’’ to ’__EXT_MFC_SAFE_LPCTSTR’

1>        Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast

1>z:\3rdparty\prof-uis\testscrolldialog2\mainfrm.cpp(171) : error C2228: left of ’.OnSwRecalcLayout’ must have class/struct/union

1>        type is ’int’

1>testdialog.cpp

1>TestScrollDialog.cpp

1>z:\3rdparty\prof-uis\testscrolldialog2\childview.h(15) : error C2011: ’CExtScrollContainerWnd’ : ’class’ type redefinition

1>        z:\3rdparty\prof-uis\include\extscrollwnd.h(1849) : see declaration of ’CExtScrollContainerWnd’

1>z:\3rdparty\prof-uis\testscrolldialog2\mainfrm.h(47) : error C2079: ’CMainFrame::m_wndScrollContainer’ uses undefined class ’CExtScrollContainerWnd’

1>Generating Code...

1>Build log was saved at "file://z:\3rdParty\Prof-UIS\TestScrollDialog2\Debug\BuildLog.htm"

1>TestScrollDialog - 113 error(s), 0 warning(s)

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Technical Support Mar 10, 2009 - 8:15 AM

We are sorry for the inconvenience.

Before Prof-UIS 2.84: the CExtScrollContainerWnd class was the part of this sample project.

In Prof-UIS 2.84: the CExtScrollContainerWnd is present inside Prof-UIS.

So, the old and test version of the CExtScrollContainerWnd
class should be simply removed from this test project. Please download the updated version:

http://www.prof-uis.com/download/forums/TestScrollDialog3.zip

Offer Har Mar 10, 2009 - 9:45 AM

Dear Support,


Ignore the crash report - I was doing a wrong cast - Now it works


However, I have one small question:


When I use the arrow buttons of the scroll bars, it goes pixel by pixel, which is not very effective - how can I cahnge it to be, say 20 pixels each press?


Thanks,


Ron.

Technical Support Mar 10, 2009 - 1:19 PM

Please set the CExtScrollBar::m_nStepSize property to 20.

Offer Har Mar 10, 2009 - 1:28 PM

Did not work. I changed my code as follows:



    CExtScrollContainerWnd* pScrollPageContainer = new  CExtScrollContainerWnd;

    CRect rc;
    m_pTab->GetClientRect(rc);
    pScrollPageContainer->Create(m_pTab, rc);
    pScrollPageContainer->m_wndScrollBarH.m_nStepSize = 20;
    pScrollPageContainer->m_wndScrollBarV.m_nStepSize = 20;

    pPage->Create(nID, pScrollPageContainer);
    pScrollPageContainer->SetPage(pPage);
    m_pTab->PageInsert(pScrollPageContainer, pPage->GetName());


And still, the arrows move it pixel in each iteraion, and not 20.

Offer Har Mar 10, 2009 - 9:09 AM

Dear Support,


There is one more twist in my situation - the dialog is embedded inside a tab container. So I tried to add the page like this:



   pwndScrollContainer = new CExtScrollContainerWnd;

   CRect rc;
   m_pTab->GetClientRect(rc);
   pwndScrollContainer->Create(m_pTab, rc);
   pPage->SetView(this);
   pPage->Create(nIDD, m_wndScrollContainer);
   m_pTab->PageInsert(wndScrollContainer, "My Page");

But it crashes, and this is the last entries in the stack:


     mfc80d.dll!AfxAssertValidObject(const CObject * pOb=0x0012e688, const char * lpszFileName=0x01e350d8, int nLine=15233)  Line 99 + 0xe bytes    C++

>    ProfUIS284md.dll!CExtPaintManager::PAINTINHERITEDBACKGROUNDDATA::PAINTINHERITEDBACKGROUNDDATA(bool bClientMapping=true, CDC & dc={...}, CWnd * pWnd=0x0485aae8, CObject * pObjHelperSrc=0x00000000, long lParam=0)  Line 15234    C++

     ProfUIS284md.dll!CExtPaintManager::RenderCustomBackground(bool bClientMapping=true, CDC & dc={...}, CObject * pObjHelperSrc=0x00000000, long lParam=0)  Line 15355    C++

     ProfUIS284md.dll!CExtPaintManagerOffice2003::PaintDockerBkgnd(bool bClientMapping=true, CDC & dc={...}, CWnd * pWnd=0x0485aae8, long lParam=0)  Line 15741 + 0x22 bytes    C++

     ProfUIS284md.dll!CExtScrollContainerWnd::OnSwPaint(CDC & dc={...})  Line 6857 + 0x2b bytes    C++

    
MyApp.exe!CMyView::CTab::OnTabWndSelectionChange(long nOldItemIndex=-1, long nNewItemIndex=0, bool bPreSelectionTest=false)  Line 290 + 0x12 bytes    C++

     ProfUIS284md.dll!CExtTWPC<CExtTabWnd>::OnTabWndSelectionChange(long nOldItemIndex=-1, long nNewItemIndex=0, bool bPreSelectionTest=false)  Line 132 + 0x1e bytes    C++

     ProfUIS284md.dll!CExtTabWnd::SelectionSet(long nSelIndex=0, bool bEnsureVisible=true, bool bUpdateTabWnd=true)  Line 4741 + 0x22 bytes    C++

     ProfUIS284md.dll!CExtTabPageContainerWnd::PageInsert(HWND__ * hWnd=0x00282e32, const CExtCmdIcon & pageIcon={...}, const char * sItemText=0x048bcc40, long nPos=0, bool bSelect=true)  Line 462    C++

     ProfUIS284md.dll!CExtTabPageContainerWnd::PageInsert(HWND__ * hWnd=0x00282e32, const char * sItemText=0x048bcc40, HICON__ * hIcon=0x00000000, bool bCopyIcon=true, long nPos=-1, bool bSelect=false)  Line 398 + 0x1c bytes    C++

     ProfUIS284md.dll!CExtTabPageContainerWnd::PageInsert(CWnd * pWnd=0x0485aae8, const char * sItemText=0x048bcc40, HICON__ * hIcon=0x00000000, bool bCopyIcon=true, long nPos=-1, bool bSelect=false)  Line 490    C++

     MyApp.exe!CMyView::AddPage(CMyPage * pPage=0x04803f80, unsigned int nID=2047)  Line 124 + 0x6c bytes    C++


What am I missing?


Thanks,


Ron.

Technical Support Mar 10, 2009 - 1:16 PM

The source code snippet looks correct. The call stack listing is incomplete. We suspect the code snippet in your message is invoked under some WM_CREATE message handler what causes conflict with MFC’ window creation hooking. Please try to initialize the tab pages with delay or send us a test project demonstrating this crash.

Offer Har Mar 10, 2009 - 1:19 PM

Thanks, but as I said, I already found the problem, somewhere there was a wrong cast of PagePermanentWndGet, because now the page is of type CExtScrollContainerWnd, and the actual dialog is its child.