Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.basic.visual.misc > #1907
| From | "MikeD" <nobody@nowhere.edu> |
|---|---|
| Newsgroups | microsoft.public.vb.general.discussion, comp.lang.basic.visual.misc |
| Subject | Re: PBM_SETMARQUEE in VB6 |
| Date | 2013-12-10 06:00 -0500 |
| Organization | A noiseless patient Spider |
| Message-ID | <l86s8i$pb1$1@dont-email.me> (permalink) |
| References | <l84urt$67g$1@speranza.aioe.org> |
Cross-posted to 2 groups.
"Deanna Earley" <dee.earley@icode.co.uk> wrote in message
news:l84urt$67g$1@speranza.aioe.org...
> Hi all.
>
> I've just tried setting up a scrolling marquee progress bar in one of my
> applications, and while it seems to switch into marquee mode, the
> automatic timer (set via PBM_SETMARQUEE) either fails or is ignored.
>
> I have an appropriate visual style manifest.
> I have called InitCommonControls in the form's Initialize event.
> I am using the v5 SP2 common controls.
> The project is compiled.
> I have set the PBS_MARQUEE style and confirmed it has applied.
> The PBM_SETMARQUEE message returns 1.
>
> If I minimise and restore the window it progresses.
> If I set .Value it progresses.
> If I send PBM_STEPIT it progresses.
> If I send PBM_SETMARQUEE it sits there doing nothing.
>
> This is the same issue discussed here:
> http://www.vbforums.com/showthread.php?462116-Marquee-Progressbar
>
> Does anyone have any deeper insight as to why the VB wrapper is dropping
> the PBM_SETMARQUEE message or the associated timer events and why I need
> to do it "manually"?
OK. Did you actually *start* the timer? The below code worked fine for me,
and this was within the IDE (with a VB6.exe.manifest file). Note that I
explicitly declared constants As Long and passed 0& for lParam in the
SendMessage calls (because I believe it's "best practice" to do so). To be
fair, I DID test without the constants being declared As Long and passing 0
for lParam, and it did still work. Only other thing I can think of is that
perhaps the timer's interval needs to match the interval set with
PBM_SETMARQUEE. I didn't play around with other values to see if it'd make
a difference. Also, per the docs on MSDN, the return value for
PBM_SETMARQUEE is always True (i.e. 1) so that's useless. I DID try this
same code as is but WITHOUT setting the style or sending PBM_SETMARQUEE. The
progress bar still advanced from the PBM_STEPIT message, but in the normal
fashion rather than the marquee.
What I can deduce from this is that PBM_SETMARQUEE merely sets the mode (and
is what the docs say). It doesn't actually "advance" or animate the progress
though.
-----------------------------------------------------------------
Option Explicit
Private Const GWL_STYLE As Long = (-16)
Private Const PBS_MARQUEE As Long = &H8
Private Const WM_USER As Long = &H400
Private Const PBM_STEPIT As Long = WM_USER + 5
Private Const PBM_SETMARQUEE As Long = WM_USER + 10
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA"
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA"
(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As
Any) As Long
Private Declare Sub InitCommonControls Lib "comctl32" ()
Private Sub Form_Initialize()
InitCommonControls
End Sub
Private Sub Form_Load()
Dim Style As Long
Style = GetWindowLong(ProgressBar1.hWnd, GWL_STYLE)
Style = Style Or PBS_MARQUEE
SetWindowLong ProgressBar1.hWnd, GWL_STYLE, Style
SendMessage ProgressBar1.hWnd, PBM_SETMARQUEE, 1, ByVal 0&
Timer1.Interval = 30
Timer1.Enabled = True
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
SendMessage ProgressBar1.hWnd, PBM_STEPIT, 0, ByVal 0&
End Sub
-----------------------------------------------------------------
Mike
Back to comp.lang.basic.visual.misc | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
PBM_SETMARQUEE in VB6 Deanna Earley <dee.earley@icode.co.uk> - 2013-12-09 17:32 +0000
Re: PBM_SETMARQUEE in VB6 "Farnsworth" <nospam@nospam.com> - 2013-12-09 14:37 -0500
Re: PBM_SETMARQUEE in VB6 Deanna Earley <dee.earley@icode.co.uk> - 2013-12-10 08:54 +0000
Re: PBM_SETMARQUEE in VB6 "MikeD" <nobody@nowhere.edu> - 2013-12-10 05:13 -0500
Re: PBM_SETMARQUEE in VB6 Deanna Earley <dee.earley@icode.co.uk> - 2013-12-10 10:53 +0000
Re: PBM_SETMARQUEE in VB6 "MikeD" <nobody@nowhere.edu> - 2013-12-10 06:05 -0500
Re: PBM_SETMARQUEE in VB6 Deanna Earley <dee.earley@icode.co.uk> - 2013-12-10 09:22 +0000
Re: PBM_SETMARQUEE in VB6 john@jeasonNoSpam.cix.co.uk (John K.Eason) - 2013-12-12 18:03 +0000
Re: PBM_SETMARQUEE in VB6 Deanna Earley <dee.earley@icode.co.uk> - 2013-12-16 10:33 +0000
Re: PBM_SETMARQUEE in VB6 john@jeasonNoSpam.cix.co.uk (John K.Eason) - 2013-12-16 18:59 +0000
Re: PBM_SETMARQUEE in VB6 Deanna Earley <dee.earley@icode.co.uk> - 2013-12-17 09:04 +0000
Re: PBM_SETMARQUEE in VB6 john@jeasonNoSpam.cix.co.uk (John K.Eason) - 2013-12-17 19:16 +0000
Re: PBM_SETMARQUEE in VB6 "Auric__" <not.my.real@email.address> - 2013-12-18 05:52 +0000
Re: PBM_SETMARQUEE in VB6 "Mayayana" <mayayana@invalid.nospam> - 2013-12-18 10:07 -0500
Re: PBM_SETMARQUEE in VB6 Deanna Earley <dee.earley@icode.co.uk> - 2013-12-18 16:22 +0000
Re: PBM_SETMARQUEE in VB6 "Mayayana" <mayayana@invalid.nospam> - 2013-12-18 13:52 -0500
Re: Windows version numbers (was: PBM_SETMARQUEE in VB6) Deanna Earley <dee.earley@icode.co.uk> - 2013-12-19 08:57 +0000
Re: Windows version numbers (was: PBM_SETMARQUEE in VB6) "Mayayana" <mayayana@invalid.nospam> - 2013-12-19 09:58 -0500
Re: PBM_SETMARQUEE in VB6 GS <gs@somewhere.net> - 2013-12-18 12:10 -0500
Re: PBM_SETMARQUEE in VB6 Arne Saknussemm <motz001.20.wannabet@spamgourmet.com> - 2013-12-10 11:31 +0100
Re: PBM_SETMARQUEE in VB6 Arne Saknussemm <motz001.20.wannabet@spamgourmet.com> - 2013-12-10 11:32 +0100
Re: PBM_SETMARQUEE in VB6 Deanna Earley <dee.earley@icode.co.uk> - 2013-12-10 10:55 +0000
Re: PBM_SETMARQUEE in VB6 Arne Saknussemm <motz001.20.wannabet@spamgourmet.com> - 2013-12-10 12:30 +0100
Re: PBM_SETMARQUEE in VB6 "MikeD" <nobody@nowhere.edu> - 2013-12-10 06:00 -0500
Re: PBM_SETMARQUEE in VB6 Deanna Earley <dee.earley@icode.co.uk> - 2013-12-10 11:37 +0000
Re: PBM_SETMARQUEE in VB6 "David Youngblood" <dwy@flash.net> - 2013-12-10 06:02 -0600
Re: PBM_SETMARQUEE in VB6 Deanna Earley <dee.earley@icode.co.uk> - 2013-12-10 12:28 +0000
Re: PBM_SETMARQUEE in VB6 "MikeD" <nobody@nowhere.edu> - 2013-12-10 07:44 -0500
csiph-web