Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.basic.visual.misc > #1907

Re: PBM_SETMARQUEE in VB6

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.

Show all headers | View raw



"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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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