-
3 Attachment(s)
[VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
User Control: ucAddScroll.ctl
Author: Shagratt
Dependencies: ucScrollbar.ctl
-What it does?: It create a scrollable area on the TARGET (Control/Form) with all it's content.
It add 4 controls to the Form: (exposed in ucScrollAdd.xxxx)
1) .PBContainer: The new container that will scroll inside the Target with all the the content.
2) .UCScrollV: Vertical scrollbar
3) .UCScrollH: Horizontal scrollbar
4) .PBCover: A simple picture box put in bottom right corner between the scrollbars
-What it dosnt?: It's not a scrollable container by itself. You need to create the
content on a standard vb6 container (for example a PictureBox) or Form, wich has content
larger than its viewable area. This means you can use an already made Form and add
scrollable resize with just this control and 1 line of code.
-Usage:
1) Add a instance on the form.
2) In your code call: 'ucScrollAdd.AddScroll <TARGET CONTAINER>' to automatilly add
scrollbars when needed. (Example: ucScrollAdd.AddScroll Me)
Optional:
-call 'ucScrollAdd.TrackMouseWheel' to enable MouseWheel tracking over container area.
(Press SHIFT to scroll horizontal)
-call 'ucScrollAdd.ResizeWindowLimit <MINWIDTH>, <MINHEIGHT>,[MAXWIDTH], [MAXHEIGHT]'
to add Form resize limit without flickering
-call 'ucScrollAdd.RemoveFromContainer <CTRL>,[CTRL],[CTRL],...' to exclude all
controls/containers you want from Scrolling.
-If you want to know the size of content inside the container
'CalcContainerContentSize maxBottom&, maxRight&' values are returned by ref.
-propertys ContainerW/ContainerH can be used to force the size of the container
NOTE: You can have more than 1 scrolling area in the form
For better understanding check the included 4 examples in the project.
----------------
*v1.0.0 11/12/19
- Starting version. Basic usage working
Download: Attachment 172947
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Talking with Eduardo I realised that I did not explain well how to create this 'larger than screen' forms.
You can use 2 simple methods:
Method A)
-Create a PictureBox with the size you want and put in Top: 0, Left: 0. This will be our container.
Just for the example let's say our screen is 800x600 and we created a 800x1200 picture box called PBContainer
(This mean we now have a picturebox with a Height of 2 screens)
-Now add all the content you want on that picturebox (labels, others picturebox, images, textbox, etc.)
-The problem: You can only see the first 800x600 part that fit on the screen.
Fix: Move the picturebox (PBContainer) upward by dragging it or just changing its top to negative values.
Let's put in half screen up moving it to Top: -300.
Now we see the bottom half of the 800x600 we designed and the first part of the second.
(what we see in the screen is the rectangle 0,300 to 800,900 from the PBContainer.
-Keep adding controls and repeat moving it up until we have edited all the area we wanted.
-When finished restore the Top: 0 , Left: 0 of the Picturebox
-On Form_Load when calling "ScrollAdd.AddScroll me" and the form we will be
able to access everything that was offscreen.
Method B)
-Create diferent picturebox (like PbA PbB, PbC)
-On Form_Load put every picture box below the other
Example:
Code:
PbB.top = PbA.top + PbA.height
PbC.top = PbB.top + PbB.height
ScrollAdd.AddScroll me
All my examples and documentation was written in most used language in the world, and that is "BAD ENGLISH" , so if I was not clear enough feel free to ask
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
very good job this great control.
in the not too distant future will probably use
Greetings
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Great! Although Demo is not really a web page, it seems to be a good web UI simulator! Hope that VB6 can be more and more applied to web development.
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Quote:
Originally Posted by
dreammanor
Great! Although Demo is not really a web page, it seems to be a good web UI simulator! Hope that VB6 can be more and more applied to web development.
Of course! The demos are just drawn to show the kind of UI design that can be accomplished with the usercontrol. No real functionality added. (I copied the style of a well known news webpage wich can be created with standard VB6 elements)
I have in mind to create more controls to mimic more web UI functionality. Too many good ideas, too little time to make them :bigyello:
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
hi. been playing around with this control and it works very well.
I did not like to bounce when i scrolled and found somewhere in the code and set it to 1 and not 0.15.
this was more inline with a scrollbar i usually use.
i also wanted a status bar at the bottom, and had to make a few adjustments in the code to leave a gap
at the bottom of the form.
Works real nice now.
Many thanks.
p.s will you be adding any other features etc
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Quote:
Originally Posted by
k_zeon
hi. been playing around with this control and it works very well.
I did not like to bounce when i scrolled and found somewhere in the code and set it to 1 and not 0.15.
this was more inline with a scrollbar i usually use.
The 'bounce' effect was expected :P but if you dont like you dont need to change anything in the code.
Scrollbars have a property called 'SmoothScrollFactor' wich its pretty sure what you have modified
You can change it from the ScrollAdd control with 'ucScrollAdd1.UCScrollV.SmoothScrollFactor=1' and 'ucScrollAdd1.UCScrollH.SmoothScrollFactor=1' (for the vertical and horizontal axis)
Quote:
Originally Posted by
k_zeon
i also wanted a status bar at the bottom, and had to make a few adjustments in the code to leave a gap
at the bottom of the form.
Works real nice now.
Again no need to change the code. You can use 'ucScrollAdd.ResizeTargetOnFormResize X,Y' where X and Y are the padding left and bottom you want to leave when resizing.
Quote:
Originally Posted by
k_zeon
p.s will you be adding any other features etc
There are a few bugs that I still not found. So aside from fix this bugs I dont think so, it's pretty much working as I spected.
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Very nice control shagratt .
How about adding support to scrolling by mouse_down on the container itself that is being hooked to act like mobile phones scrolling . It will be so great for applications that run on touch screens so the user will not have to scroll using the scrollbar only .
I don`t know if it should be added to UcScrollbar or the UcScrollAdd . Only you who can evaluate this .
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Quote:
Originally Posted by
Hosam AL Dein
Very nice control shagratt .
How about adding support to scrolling by mouse_down on the container itself that is being hooked to act like mobile phones scrolling . It will be so great for applications that run on touch screens so the user will not have to scroll using the scrollbar only .
I don`t know if it should be added to UcScrollbar or the UcScrollAdd . Only you who can evaluate this .
Hi Hosam! That's a really cool idea! Thanks for sharing it! :thumb: I will add it to the TODO LIST to make it in the near future. (working on another UC right now)
Unfortunately I dont have any touchscreen to play with (but I could try test sharing my screen to my phone and use it as a touch monitor...)
Even if right now the feature is not implemented I think you can capture the mouse down in your code and change the values of ucScrollAdd1.UCScrollV to mimic the drag.
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Ok , I will see what I can come up with . Keep it up .
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
hi shagratt
great control !!
i'm running it in VB6 in Windows XP
and i get this error when call the Form_Unload event
Private Sub Command1_Click()
Unload Me
End Sub
Attachment 180353
any idea?
tanx!
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
I just added a button Command1 to your project :
Private Sub Command1_Click()
Unload Me
End Sub
when i click the button vb6 crash
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Hi Jeeba!!! Thanks for finding that bug!
I found the problem and fixed:
- Go to ucScrollbar.ctl and replace the SubclassEnd sub with this code:
Private Sub SubclassEnd()
sc_UnSubclass UserControl.Parent.hwnd
sc_UnSubclass UserControl.hwnd
End Sub
now it should not crash anymore!
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Hi Shagratt,
now everything work fine. Thank you!
i have another issue.
i make a new project, added your controls ( i make a copy of ucScrollAdd and ucScrollbar in this directory )
in the form1
i just copied your Example3 ( everything , the form and code )
but it crashes
AddScroll UCScrollV Error: Object variable or With block variable not set
AddScroll UCScrollH Error: Object variable or With block variable not set
TrackMouseWheel Err: Object variable or With block variable not set
did i miss something? how can i use this controls in other projects?
thanx again
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
yes! of course. The problem is that you copied the Form from one project to another.
The control in the form is declared with "[your projectname].[Control Name]" so when you copy it try to look for an object called "[my project].[Control Name]" wich dosnt exit anymore.
There is a really simple fix when you need to do that:
-Copy the form from my project to your project (DONT OPEN VB6 YET) Remember to copy the .frm and .frx (when exist)
-Open the copy of the frm copied in your project in a text editor like notepad
-Change every declaration of the object like
Begin ScrollAdd.ucScrollAdd ucScrollAdd1
with
Begin [Your project name].ucScrollAdd ucScrollAdd1
-if you dont know your project name, just open your project, create an empty form and add a AddScroll control, then save, and open the frm in a text editor to see what is the name that vb put before the ucScrollAdd and use that.
Tell me if that solved your problem.
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Hi Shagratt,
in the .frm file the project name is correct.
Begin TemplateSoftware.ucScrollAdd ucScrollAdd1
...
Begin TemplateSoftware.ucScrollAdd ucScrollAdd2
i just make a copy of your code ( form Example3 ), it's not the same file.
in my project i added a form , copied your code and added controls, ( ucScrollbar.ctl and ucScrollAdd.ctl , .ctx too )
Before it crashes i get Object variable or With block variable not set in the Form_Load here:
ucScrollAdd1.UCScrollV.ShowButtons = False
ucScrollAdd1.UCScrollH.ShowButtons = False
ucScrollAdd2.UCScrollV.ShowButtons = False
ucScrollAdd2.UCScrollH.ShowButtons = False
this is my code :
Private Sub Form_Load()
ucScrollAdd1.AddScroll Me
ucScrollAdd1.TrackMouseWheel Vertical
ucScrollAdd1.ResizeWindowLimit 750, 500
ucScrollAdd1.RemoveFromContainer frTop, frDashboard, PicHover
ucScrollAdd2.AddScroll Frame1Cont
ucScrollAdd2.TrackMouseWheel Vertical
ucScrollAdd2.RemoveFromContainer PicHover, PBMovingTitle1, PBMovingTitle2
ucScrollAdd1.UCScrollV.ShowButtons = False
ucScrollAdd1.UCScrollH.ShowButtons = False
ucScrollAdd2.UCScrollV.ShowButtons = False
ucScrollAdd2.UCScrollH.ShowButtons = False
Form_Resize
End Sub
even if i try to add your controls from their location ( where it works ) to another form (with another path.)
just add the instance in the form ( nothing else ) and in the form_load :
ucScrollAdd1.AddScroll Me
ucScrollAdd1.TrackMouseWheel Vertical
ucScrollAdd1.UCScrollV.ShowButtons = False
ucScrollAdd1.UCScrollH.ShowButtons = False
i really don't understand.
Hope you can find a solution!
thanks again
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Please, attach all the project files in a zip and i test them.
-
1 Attachment(s)
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Hi Shagratt,
this is the project
Attachment 180399
thanx!
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Quote:
Originally Posted by
jeeba73
Hi jeeba73! I found why it was not working... there is 2 things you need to change:
1) On the project properties uncheck the "REMOVE INFORMATION ABOUT UNUSED ACTIVEX CONTROLS".
This is because the scrollbars are added by the scrollAdd control, so the compiler think you never added any scrollbars at all and remove it before executing it.
2) On ucScrollAdd.ctl you need to do 2 aditional changes:
Line 374 and 381 should use the name of the project like:
'Vertical
Set UCScrollV = TargetForm.Controls.Add("Project1.ucScrollBar", UCScrollVName$)
'Horizontal
Set UCScrollH = TargetForm.Controls.Add("Project1.ucScrollBar", UCScrollHName$)
This can be avoided if the ucAddScroll and ucScrollbar are compiled as an OCX with a fixed project name, but it will have the downside of the OCX needed alongside with the exe (i always try to keep everything inside the exe)
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Hi Shagratt,
everything works properly now!
thank you!!!!
and... great job
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Shagratt, recently found your scrolling control which is fantastic. I've implemented it into our software product, following the instructions in post numbers 1, 2, 13 and 19. However, my software requires that "REMOVE INFORMATION ABOUT UNUSED ACTIVEX CONTROLS" is checked, given all the other controls we use. Despite wanting to keep everything in the EXE, how do I create an OCX from the 2 user control files (ucAddScroll and ucScrollbar)?
Regards
Gordon
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Quote:
Originally Posted by
SGordonS
Shagratt, recently found your scrolling control which is fantastic. I've implemented it into our software product, following the instructions in post numbers 1, 2, 13 and 19. However, my software requires that "REMOVE INFORMATION ABOUT UNUSED ACTIVEX CONTROLS" is checked, given all the other controls we use. Despite wanting to keep everything in the EXE, how do I create an OCX from the 2 user control files (ucAddScroll and ucScrollbar)?
Regards
Gordon
Hi Gordon! Good to know that you liked the scrollbars! :)
If you cant uncheck to remove unused activex dont worry! Its really easy! You need to make the compiler think you use the scrollbar, so just add the scrollbar control into any form and make it invisible (in the "About" form is just perfect).
Now when you make the exe it will not remove the scrollbars.
Tell me if that worked for you.
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Thanks for your quick reply. Installed an invisible scrollbar control in my About form ... and magic happens. Thanks for your assistance, now looking forward to doing great things with your scrollbar control. :):)
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
I would like to use the Page Up/Down, Home/End and Arrow Up/Down keys for scrolling. I've looked through your code and don't see where that is possible. Can you advise?
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Quote:
Originally Posted by
SGordonS
I would like to use the Page Up/Down, Home/End and Arrow Up/Down keys for scrolling. I've looked through your code and don't see where that is possible. Can you advise?
That's a very good idea!
All On ucScrollbar.ctl:
On SubclassingStart() add the line:
Code:
Call sc_AddMsg(UserControl.hwnd, WM_KEYDOWN, MSG_BEFORE)
On zWndProc1(...) add in the case:
Code:
Case WM_KEYDOWN
'PGUP
If (wParam = 33) Then
Call pvScrollPosDec(m_lLargeChange)
Call pvKillTimer(TIMERID_CHANGE1)
Call pvSetTimer(TIMERID_CHANGE1, m_lChangeDelay)
'PGDW
ElseIf (wParam = 34) Then
Call pvScrollPosInc(m_lLargeChange)
Call pvKillTimer(TIMERID_CHANGE1)
Call pvSetTimer(TIMERID_CHANGE1, m_lChangeDelay)
'HOME
ElseIf (wParam = 36) Then
Call pvScrollPosDec(999999)
Call pvKillTimer(TIMERID_CHANGE1)
Call pvSetTimer(TIMERID_CHANGE1, m_lChangeDelay)
'END
ElseIf (wParam = 35) Then
Call pvScrollPosInc(999999)
Call pvKillTimer(TIMERID_CHANGE1)
Call pvSetTimer(TIMERID_CHANGE1, m_lChangeDelay)
End If
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
very good idea.
Try adding what it does not work for me.
It only works if I first click on the scroll or the scroll has the focus.
regards
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Thanks for the code in post #25. On execution, I get a "Variable not defined" error for WM_KEYDOWN. Should there be a declaration for "Private Const WM_KEYDOWN as Long = ???"
In SubclassingStart(), I note the square brackets used in other calls that end with "MSG_BEFORE", such as:
Code:
Call sc_AddMsg(UserControl.hwnd, WM_PAINT, [MSG_BEFORE])
Should KEY_DOWN have the same square brackets?
Code:
Call sc_AddMsg(UserControl.hwnd, WM_KEYDOWN, [MSG_BEFORE])
Regards
Gordon
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Quote:
Originally Posted by
SGordonS
Thanks for the code in post #25. On execution, I get a "Variable not defined" error for WM_KEYDOWN. Should there be a declaration for "Private Const WM_KEYDOWN as Long = ???"
Sorry! my mistake!
Add this declaration
Private Const WM_KEYDOWN As Long = &H100 '256
Quote:
In SubclassingStart(), I note the square brackets used in other calls that end with "MSG_BEFORE", such as:
Code:
Call sc_AddMsg(UserControl.hwnd, WM_PAINT, [MSG_BEFORE])
Should KEY_DOWN have the same square brackets?
Code:
Call sc_AddMsg(UserControl.hwnd, WM_KEYDOWN, [MSG_BEFORE])
Regards
Gordon
Not really needed.Its equivalent
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Quote:
Originally Posted by
yokesee
very good idea.
Try adding what it does not work for me.
It only works if I first click on the scroll or the scroll has the focus.
regards
yes, WM_KEYDOWN its only send to the control with the focus.
I made a lot more changes to have support for the keys (included up/down arrows) also on the container. Instead of using the WM_KEYDOWN message I used a simpler method programing the _KeyDown event.
Still needs the focus to work (on the container or scrollbar) wich is not ideal.
Having a perfect support to detect keys on the container is becoming a little problematic without resorting to a keyboard hook (wich I prefer to stay away). If you think of a better solution I will glady implement it.
This is the code I added on UcScrollbar.ctl (remove all the WM_KEYDOWN related code I posted before), just this:
Code:
Private Sub UserControl_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case (KeyCode)
Case 33: Scroll_UP 1 'PGUP
Case 34: Scroll_DOWN 1 'PGDOWN
Case 36: Scroll_UP 2 'HOME
Case 35: Scroll_DOWN 2 'END
Case 38: Scroll_UP 0 'UP ARROW
Case 40: Scroll_DOWN 0 'DOWN ARROW
End Select
End Sub
'==================================
'Scroll Up
'==================================
'(Also for external call)
Public Sub Scroll_UP(Distance_Type&)
Dim dist&
Select Case (Distance_Type&)
Case 0: dist = m_lSmallChange
Case 1: dist = m_lLargeChange
Case 2: dist = 99999999
End Select
Call pvScrollPosDec(dist&)
Call pvKillTimer(TIMERID_CHANGE1)
Call pvSetTimer(TIMERID_CHANGE1, m_lChangeDelay)
End Sub
'==================================
'Scroll Down
'==================================
'(Also for external call)
Public Sub Scroll_DOWN(Distance_Type&)
Dim dist&
Select Case (Distance_Type&)
Case 0: dist = m_lSmallChange
Case 1: dist = m_lLargeChange
Case 2: dist = 99999999
End Select
Call pvScrollPosInc(dist&)
Call pvKillTimer(TIMERID_CHANGE1)
Call pvSetTimer(TIMERID_CHANGE1, m_lChangeDelay)
End Sub
And on AddScroll.ctl:
Code:
Private Sub PBContainer_KeyDown(KeyCode As Integer, Shift As Integer)
on error resume next
Select Case (KeyCode)
Case 33: UCScrollV.Scroll_UP 1 'PGUP
Case 34: UCScrollV.Scroll_DOWN 1 'PGDOWN
Case 36: UCScrollV.Scroll_UP 2 'HOME
Case 35: UCScrollV.Scroll_DOWN 2 'END
Case 38: UCScrollV.Scroll_UP 0 'UP ARROW
Case 40: UCScrollV.Scroll_DOWN 0 'DOWN ARROW
End Select
End Sub
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Many thanks. Error gone, however, none of the 'keys_down' function in IDE or compiled.
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Oops, our messages crossed paths. I've removed the WM_KEYDOWN code from post #25 and inserted code from post #29. When run in IDE, my scrolling form generates "VB has encountered a problem and needs to close", then the IDE environment crashes and closes. The program compiles but generates "Data Execution Prevention" message and then crashes.
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
In Examples 1,2 and 3 it seems to work quite well.
In Example 4, having 2 scroll not so well.
But it works pretty well
great job.
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Quote:
Originally Posted by
yokesee
In Examples 1,2 and 3 it seems to work quite well.
In Example 4, having 2 scroll not so well.
But it works pretty well
great job.
Solution from post#29 works well also in example 4. (always remember you need to give focus first)
I cant work on more complex solutions for the time being (too busy on other works right now) but if someone can do it I will be happy to test it.
-
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Quote:
Originally Posted by
shagratt
Hi jeeba73! I found why it was not working... there is 2 things you need to change:
1) On the project properties uncheck the "REMOVE INFORMATION ABOUT UNUSED ACTIVEX CONTROLS".
This is because the scrollbars are added by the scrollAdd control, so the compiler think you never added any scrollbars at all and remove it before executing it.
2) On ucScrollAdd.ctl you need to do 2 aditional changes:
Line 374 and 381 should use the name of the project like:
'Vertical
Set UCScrollV = TargetForm.Controls.Add("Project1.ucScrollBar", UCScrollVName$)
'Horizontal
Set UCScrollH = TargetForm.Controls.Add("Project1.ucScrollBar", UCScrollHName$)
This can be avoided if the ucAddScroll and ucScrollbar are compiled as an OCX with a fixed project name, but it will have the downside of the OCX needed alongside with the exe (i always try to keep everything inside the exe)
can fixed
Code:
Dim proj As String
proj = "ScrollAdd.ucScrollBar"
Err.Raise vbObjectError '
'https://www.vbforums.com/showthread.php?891152-Access-the-VBIDE-library-without-add-ins&p=5581021&viewfull=1#post5581021’
'That’s not the point of this thread at all. You can retrieve current project name by raising a runtime error (e.g. Err.Raise vbObjectError) and observing the Err.Source property should be current project name.’
proj = Replace$(proj, "ScrollAdd", Err.Source)
'MsgBox proj
Set UCScrollV = TargetForm.Controls.Add(proj, UCScrollVName$)
SetParent UCScrollV.hwnd, Target.hwnd
UCScrollV.AddedFromCodeINIT_AND_DEFAULTS
UCScrollV.Style = sFlat
If (Err.Number <> 0) Then Debug.Print ("AddScroll UCScrollV Error: " & Err.Description) 'Capture error on create
'Horizontal ScrollAdd
Set UCScrollH = TargetForm.Controls.Add(proj, UCScrollHName$)
SetParent UCScrollH.hwnd, Target.hwnd
UCScrollH.AddedFromCodeINIT_AND_DEFAULTS
UCScrollH.Style = sFlat
UCScrollH.Orientation = oHorizontal
UCScrollH.DisableMouseWheelSupport = True
-
2 Attachment(s)
Re: [VB6] ScrollAdd Ctrl v1.0 (add scrolling to current forms and containers)
Hi.
Thank you for this great control. I have two questions or requests:
1. Is it possible that the control element, i.e. MouseWheel Up/Down, also works if it is loaded onto another form via SetParent?
I've adjusted your demo a bit so you can see what I mean. (shape 5)
2. Is it possible to adapt the display of your scrollbar to Windows 11?
The demo project "GetThemeSysColor Subclass" contains the subclassing for Windows 11, which only works after compilation into an EXE file and when running on a Windows 11 system.
Attachment 186000
Attachment 186001
Thanks in advance Andrew