dcsimg


DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

Page 2 of 3 FirstFirst 123 LastLast
Results 16 to 30 of 43

Thread: GetClientRect and DrawEdge not working on a UserControl?

  1. #16
    Klaus H. Probst Guest

    Re: GetClientRect and DrawEdge not working on a UserControl?

    Hi Michael,

    > The paint event is unusable as it stops firing when a message box appears.
    > You have to subclass.


    Once you compile your app that goes away (well, in most cases). But what's
    that have to do with the original posting?


    .. . . . . . . . . . . . . . . . . . . . . .
    Klaus H. Probst, MVP
    http://www.vbbox.com/
    http://www.mvps.org/ccrp/

    Please post/reply to the newsgroup(s)




  2. #17
    Klaus H. Probst Guest

    Re: GetClientRect and DrawEdge not working on a UserControl?

    Hi Michael,

    > The paint event is unusable as it stops firing when a message box appears.
    > You have to subclass.


    Once you compile your app that goes away (well, in most cases). But what's
    that have to do with the original posting?


    .. . . . . . . . . . . . . . . . . . . . . .
    Klaus H. Probst, MVP
    http://www.vbbox.com/
    http://www.mvps.org/ccrp/

    Please post/reply to the newsgroup(s)




  3. #18
    Klaus H. Probst Guest

    Re: GetClientRect and DrawEdge not working on a UserControl?

    Hi Brad,

    > Okay, this one tickled the fancy. After a prolonged SmartCheck jam
    > session, here is what I observed VB doing with regard to graphics:


    > Call GetObject(obj.Image, Len(bm), bm)
    > With bm
    > Select Case .bmBitsPixel ' system color depth
    > Case 2: cb = (.bmWidth * .bmHeight) * (.bmPlanes / 4)
    > Case 4: cb = (.bmWidth * .bmHeight) * (.bmPlanes / 2)
    > Case 8: cb = (.bmWidth * .bmHeight) * .bmPlanes
    > Case 16: cb = (.bmWidth * .bmHeight) * (.bmPlanes * 2)
    > Case 24: cb = (.bmWidth * .bmHeight) * (.bmPlanes * 3)
    > Case 32: cb = (.bmWidth * .bmHeight) * (.bmPlanes * 4)
    > End Select
    > End With
    >
    > (I think that's right...)


    That sounds about right ;-)

    > - after the memory bitmap is created, when AutoRedraw is set to
    > True, VB swaps all GDI objects from the window to the memory DC
    > and visa versa, when AutoRedraw = False, VB swaps all GDI objects
    > back to normal and StretchBlt the memory DC onto the form window
    > DC on each WM_PAINT.
    >
    > - when AutoRedraw = True, CLS swaps the memory/window GDI
    > objects back to normal, deletes the memory DC and bitmap, and
    > we start all over.


    Man, that sounds expensive...

    > Addendum: just ran a quick check on VB6/Win2K, and everything
    > seems about the same, though the memory hits from Image property
    > creation wasn't as pronounced (might be some kind of caching in
    > the OS or VB...).


    More efficient GDI code? Maybe....

    > So, with all that, and because we now know that VB suspends a
    > window's execution when it calls MsgBox, Raymond is either left
    > with subclassing the PictureBox and calling DrawEdge on each
    > WM_PAINT, or just setting the PictureBoxes AutoRedraw to true
    > calling DrawEdge once, and eating a few KBs...


    Brad, does the MessageBox problem go away once you're out of the IDE? I
    think it does, doesn't it? Isn't this the same contention issue as the
    timers?

    > (just goes to show, you put a dangerous tool in the hands of an
    > insomniac and things get scary... :>)


    You can say that again <g>
    But great info on the innards of veebee there, sir. Appreciated ;-)

    ____________
    Klaus




  4. #19
    Klaus H. Probst Guest

    Re: GetClientRect and DrawEdge not working on a UserControl?

    Hi Brad,

    > Okay, this one tickled the fancy. After a prolonged SmartCheck jam
    > session, here is what I observed VB doing with regard to graphics:


    > Call GetObject(obj.Image, Len(bm), bm)
    > With bm
    > Select Case .bmBitsPixel ' system color depth
    > Case 2: cb = (.bmWidth * .bmHeight) * (.bmPlanes / 4)
    > Case 4: cb = (.bmWidth * .bmHeight) * (.bmPlanes / 2)
    > Case 8: cb = (.bmWidth * .bmHeight) * .bmPlanes
    > Case 16: cb = (.bmWidth * .bmHeight) * (.bmPlanes * 2)
    > Case 24: cb = (.bmWidth * .bmHeight) * (.bmPlanes * 3)
    > Case 32: cb = (.bmWidth * .bmHeight) * (.bmPlanes * 4)
    > End Select
    > End With
    >
    > (I think that's right...)


    That sounds about right ;-)

    > - after the memory bitmap is created, when AutoRedraw is set to
    > True, VB swaps all GDI objects from the window to the memory DC
    > and visa versa, when AutoRedraw = False, VB swaps all GDI objects
    > back to normal and StretchBlt the memory DC onto the form window
    > DC on each WM_PAINT.
    >
    > - when AutoRedraw = True, CLS swaps the memory/window GDI
    > objects back to normal, deletes the memory DC and bitmap, and
    > we start all over.


    Man, that sounds expensive...

    > Addendum: just ran a quick check on VB6/Win2K, and everything
    > seems about the same, though the memory hits from Image property
    > creation wasn't as pronounced (might be some kind of caching in
    > the OS or VB...).


    More efficient GDI code? Maybe....

    > So, with all that, and because we now know that VB suspends a
    > window's execution when it calls MsgBox, Raymond is either left
    > with subclassing the PictureBox and calling DrawEdge on each
    > WM_PAINT, or just setting the PictureBoxes AutoRedraw to true
    > calling DrawEdge once, and eating a few KBs...


    Brad, does the MessageBox problem go away once you're out of the IDE? I
    think it does, doesn't it? Isn't this the same contention issue as the
    timers?

    > (just goes to show, you put a dangerous tool in the hands of an
    > insomniac and things get scary... :>)


    You can say that again <g>
    But great info on the innards of veebee there, sir. Appreciated ;-)

    ____________
    Klaus




  5. #20
    Brad Martinez Guest

    Re: GetClientRect and DrawEdge not working on a UserControl?

    Klaus,

    >> (I think that's right...)

    >
    >That sounds about right ;-)


    Phew. :-)

    [vb swaps window/mem dc gdi objects on autoredraw]
    >Man, that sounds expensive...


    Yeah, it doesn't look like we're talking high end performance
    graphics here... But I'll tell ya, persistent graphics definitely
    have their convenient aspects...

    [less gdi memory hit on VB6/Win2K]
    >More efficient GDI code? Maybe....


    I really couldn't say, or didn't look hard enough. But seeing
    as how any given bitmap should occupy the same amount
    of memory on any given OS, something's definitely going on...

    >> So, with all that, and because we now know that VB suspends a
    >> window's execution when it calls MsgBox, Raymond is either left
    >> with subclassing the PictureBox and calling DrawEdge on each
    >> WM_PAINT, or just setting the PictureBoxes AutoRedraw to true
    >> calling DrawEdge once, and eating a few KBs...

    >
    >Brad, does the MessageBox problem go away once you're out of the IDE? I
    >think it does, doesn't it?


    D'oh, it sure does. In the compile MsgBox doles out to
    MessageBoxIndirect, which itself installs a WH_MSGFILTER
    hook (more SC :>). I guess VB just blocks events from being
    raised in the IDE during the MsgBox call...

    >Isn't this the same contention issue as the
    >timers?


    That they fire in the compiled binary during MsgBox? Yes.
    Another little interesting tidbit, when VB starts its Timer,
    it specifies the window's handle in which the Timer is sited
    for SetTimer's nIDEvent param, i.e.

    SetTimer(Form1.hWnd, Form1.hWnd, Timer1.Interval, 0)

    Also, in VB's Form1 wndproc, VB does a KillTimer before
    raising the Timer event, then does SetTimer again. ...just
    in case you ever need to futz with WM_TIMER in your
    wndprocs... :-)

    >> (just goes to show, you put a dangerous tool in the hands of an
    >> insomniac and things get scary... :>)

    >
    >You can say that again <g>


    Hey, now what is that supposed to mean? :-)

    >But great info on the innards of veebee there, sir. Appreciated ;-)


    Thanks man, it wouldn't be so much fun if VB didn't hide all
    this stuff. :-)

    Brad


    Klaus H. Probst wrote in message <3915487e$1@news.devx.com>...
    >Hi Brad,
    >
    >> Okay, this one tickled the fancy. After a prolonged SmartCheck jam
    >> session, here is what I observed VB doing with regard to graphics:

    >
    >> Call GetObject(obj.Image, Len(bm), bm)
    >> With bm
    >> Select Case .bmBitsPixel ' system color depth
    >> Case 2: cb = (.bmWidth * .bmHeight) * (.bmPlanes / 4)
    >> Case 4: cb = (.bmWidth * .bmHeight) * (.bmPlanes / 2)
    >> Case 8: cb = (.bmWidth * .bmHeight) * .bmPlanes
    >> Case 16: cb = (.bmWidth * .bmHeight) * (.bmPlanes * 2)
    >> Case 24: cb = (.bmWidth * .bmHeight) * (.bmPlanes * 3)
    >> Case 32: cb = (.bmWidth * .bmHeight) * (.bmPlanes * 4)
    >> End Select
    >> End With
    >>
    >> (I think that's right...)

    >
    >That sounds about right ;-)
    >
    >> - after the memory bitmap is created, when AutoRedraw is set to
    >> True, VB swaps all GDI objects from the window to the memory DC
    >> and visa versa, when AutoRedraw = False, VB swaps all GDI objects
    >> back to normal and StretchBlt the memory DC onto the form window
    >> DC on each WM_PAINT.
    >>
    >> - when AutoRedraw = True, CLS swaps the memory/window GDI
    >> objects back to normal, deletes the memory DC and bitmap, and
    >> we start all over.

    >
    >Man, that sounds expensive...
    >
    >> Addendum: just ran a quick check on VB6/Win2K, and everything
    >> seems about the same, though the memory hits from Image property
    >> creation wasn't as pronounced (might be some kind of caching in
    >> the OS or VB...).

    >
    >More efficient GDI code? Maybe....
    >
    >> So, with all that, and because we now know that VB suspends a
    >> window's execution when it calls MsgBox, Raymond is either left
    >> with subclassing the PictureBox and calling DrawEdge on each
    >> WM_PAINT, or just setting the PictureBoxes AutoRedraw to true
    >> calling DrawEdge once, and eating a few KBs...

    >
    >Brad, does the MessageBox problem go away once you're out of the IDE? I
    >think it does, doesn't it? Isn't this the same contention issue as the
    >timers?
    >
    >> (just goes to show, you put a dangerous tool in the hands of an
    >> insomniac and things get scary... :>)

    >
    >You can say that again <g>
    >But great info on the innards of veebee there, sir. Appreciated ;-)
    >
    >____________
    >Klaus
    >
    >
    >








  6. #21
    Brad Martinez Guest

    Re: GetClientRect and DrawEdge not working on a UserControl?

    Klaus,

    >> (I think that's right...)

    >
    >That sounds about right ;-)


    Phew. :-)

    [vb swaps window/mem dc gdi objects on autoredraw]
    >Man, that sounds expensive...


    Yeah, it doesn't look like we're talking high end performance
    graphics here... But I'll tell ya, persistent graphics definitely
    have their convenient aspects...

    [less gdi memory hit on VB6/Win2K]
    >More efficient GDI code? Maybe....


    I really couldn't say, or didn't look hard enough. But seeing
    as how any given bitmap should occupy the same amount
    of memory on any given OS, something's definitely going on...

    >> So, with all that, and because we now know that VB suspends a
    >> window's execution when it calls MsgBox, Raymond is either left
    >> with subclassing the PictureBox and calling DrawEdge on each
    >> WM_PAINT, or just setting the PictureBoxes AutoRedraw to true
    >> calling DrawEdge once, and eating a few KBs...

    >
    >Brad, does the MessageBox problem go away once you're out of the IDE? I
    >think it does, doesn't it?


    D'oh, it sure does. In the compile MsgBox doles out to
    MessageBoxIndirect, which itself installs a WH_MSGFILTER
    hook (more SC :>). I guess VB just blocks events from being
    raised in the IDE during the MsgBox call...

    >Isn't this the same contention issue as the
    >timers?


    That they fire in the compiled binary during MsgBox? Yes.
    Another little interesting tidbit, when VB starts its Timer,
    it specifies the window's handle in which the Timer is sited
    for SetTimer's nIDEvent param, i.e.

    SetTimer(Form1.hWnd, Form1.hWnd, Timer1.Interval, 0)

    Also, in VB's Form1 wndproc, VB does a KillTimer before
    raising the Timer event, then does SetTimer again. ...just
    in case you ever need to futz with WM_TIMER in your
    wndprocs... :-)

    >> (just goes to show, you put a dangerous tool in the hands of an
    >> insomniac and things get scary... :>)

    >
    >You can say that again <g>


    Hey, now what is that supposed to mean? :-)

    >But great info on the innards of veebee there, sir. Appreciated ;-)


    Thanks man, it wouldn't be so much fun if VB didn't hide all
    this stuff. :-)

    Brad


    Klaus H. Probst wrote in message <3915487e$1@news.devx.com>...
    >Hi Brad,
    >
    >> Okay, this one tickled the fancy. After a prolonged SmartCheck jam
    >> session, here is what I observed VB doing with regard to graphics:

    >
    >> Call GetObject(obj.Image, Len(bm), bm)
    >> With bm
    >> Select Case .bmBitsPixel ' system color depth
    >> Case 2: cb = (.bmWidth * .bmHeight) * (.bmPlanes / 4)
    >> Case 4: cb = (.bmWidth * .bmHeight) * (.bmPlanes / 2)
    >> Case 8: cb = (.bmWidth * .bmHeight) * .bmPlanes
    >> Case 16: cb = (.bmWidth * .bmHeight) * (.bmPlanes * 2)
    >> Case 24: cb = (.bmWidth * .bmHeight) * (.bmPlanes * 3)
    >> Case 32: cb = (.bmWidth * .bmHeight) * (.bmPlanes * 4)
    >> End Select
    >> End With
    >>
    >> (I think that's right...)

    >
    >That sounds about right ;-)
    >
    >> - after the memory bitmap is created, when AutoRedraw is set to
    >> True, VB swaps all GDI objects from the window to the memory DC
    >> and visa versa, when AutoRedraw = False, VB swaps all GDI objects
    >> back to normal and StretchBlt the memory DC onto the form window
    >> DC on each WM_PAINT.
    >>
    >> - when AutoRedraw = True, CLS swaps the memory/window GDI
    >> objects back to normal, deletes the memory DC and bitmap, and
    >> we start all over.

    >
    >Man, that sounds expensive...
    >
    >> Addendum: just ran a quick check on VB6/Win2K, and everything
    >> seems about the same, though the memory hits from Image property
    >> creation wasn't as pronounced (might be some kind of caching in
    >> the OS or VB...).

    >
    >More efficient GDI code? Maybe....
    >
    >> So, with all that, and because we now know that VB suspends a
    >> window's execution when it calls MsgBox, Raymond is either left
    >> with subclassing the PictureBox and calling DrawEdge on each
    >> WM_PAINT, or just setting the PictureBoxes AutoRedraw to true
    >> calling DrawEdge once, and eating a few KBs...

    >
    >Brad, does the MessageBox problem go away once you're out of the IDE? I
    >think it does, doesn't it? Isn't this the same contention issue as the
    >timers?
    >
    >> (just goes to show, you put a dangerous tool in the hands of an
    >> insomniac and things get scary... :>)

    >
    >You can say that again <g>
    >But great info on the innards of veebee there, sir. Appreciated ;-)
    >
    >____________
    >Klaus
    >
    >
    >








  7. #22
    Michael Culley Guest

    Re: GetClientRect and DrawEdge not working on a UserControl?


    Phil,

    It also happens when you use this method to draw a usercontrol and the usercontrol
    has a font property. As soon as the font dialog appears, the paint event
    disappears

    Michael Culley

    "Phil Weber" <pweber@teleport.com> wrote:
    > > The Paint event is unusable as it stops firing when
    > > a message box appears. You have to subclass.

    >
    >Michael: ...or don't use message boxes. ;-)
    >---
    >Phil Weber
    >
    >



  8. #23
    Michael Culley Guest

    Re: GetClientRect and DrawEdge not working on a UserControl?


    Phil,

    It also happens when you use this method to draw a usercontrol and the usercontrol
    has a font property. As soon as the font dialog appears, the paint event
    disappears

    Michael Culley

    "Phil Weber" <pweber@teleport.com> wrote:
    > > The Paint event is unusable as it stops firing when
    > > a message box appears. You have to subclass.

    >
    >Michael: ...or don't use message boxes. ;-)
    >---
    >Phil Weber
    >
    >



  9. #24
    Michael Culley Guest

    Re: GetClientRect and DrawEdge not working on a UserControl?


    >Once you compile your app that goes away (well, in most cases).


    Hmmm, interesting, I did not know that. Maybe it is not so useless after
    all. When does it not work when compiled?

    >But what's that have to do with the original posting?


    It was in relation to you post.

    Michael Culley


    "Klaus H. Probst" <kprobst@vbbox.com> wrote:
    >Hi Michael,
    >
    >> The paint event is unusable as it stops firing when a message box appears.
    >> You have to subclass.

    >
    >Once you compile your app that goes away (well, in most cases). But what's
    >that have to do with the original posting?
    >
    >
    >.. . . . . . . . . . . . . . . . . . . . . .
    >Klaus H. Probst, MVP
    > http://www.vbbox.com/
    > http://www.mvps.org/ccrp/
    >
    >Please post/reply to the newsgroup(s)
    >
    >
    >



  10. #25
    Michael Culley Guest

    Re: GetClientRect and DrawEdge not working on a UserControl?


    >Once you compile your app that goes away (well, in most cases).


    Hmmm, interesting, I did not know that. Maybe it is not so useless after
    all. When does it not work when compiled?

    >But what's that have to do with the original posting?


    It was in relation to you post.

    Michael Culley


    "Klaus H. Probst" <kprobst@vbbox.com> wrote:
    >Hi Michael,
    >
    >> The paint event is unusable as it stops firing when a message box appears.
    >> You have to subclass.

    >
    >Once you compile your app that goes away (well, in most cases). But what's
    >that have to do with the original posting?
    >
    >
    >.. . . . . . . . . . . . . . . . . . . . . .
    >Klaus H. Probst, MVP
    > http://www.vbbox.com/
    > http://www.mvps.org/ccrp/
    >
    >Please post/reply to the newsgroup(s)
    >
    >
    >



  11. #26
    Raymond R Cassick Guest

    Re: GetClientRect and DrawEdge not working on a UserControl?

    Ok why does this code not do what it is supposed to then...

    Private Sub DrawBorder(ctlControl As Control)

    Dim RetVal As Long
    Dim AreaRc As RECT

    InvalidateRect ctlControl.hWnd, 0, 1
    RetVal = GetClientRect(ctlControl.hWnd, AreaRc)
    RetVal = DrawEdge(ctlControl.hdc, AreaRc, BDR_RAISEDINNER, BF_TOPLEFT)
    RetVal = DrawEdge(ctlControl.hdc, AreaRc, BDR_RAISEDOUTER,
    BF_BOTTOMRIGHT)

    End Sub

    I still get the ghosted images as the ctlControl resizes..

    I am drawing a border around a picture box by the way., and I call this
    function after each resize, as shown below...

    Private Sub UserControl_Resize()

    'set the location of my picture box here
    picBackground.Top = 0
    picBackground.Left = 0
    picBackground.Width = UserControl.ScaleWidth
    picBackground.Height = 375

    'set the location of my simulated close button here inside the picture
    box
    picCloseButton.Left = picBackground.ScaleWidth - 400
    picCloseButton.Top = (picBackground.ScaleHeight -
    picCloseButton.ScaleHeight) / 2

    'set the location of my lable control here inside the picturebox
    lblTitle.Top = (picBackground.ScaleHeight - lblTitle.Height) / 2
    lblTitle.Left = 120
    lblTitle.Width = (picBackground.ScaleWidth - 620)

    'draw the border around the picturebox now
    DrawBorder picBackground

    End Sub

    The results are that the resizing edge of the picture box shows the lines of
    the border redraw.

    Why?




    "Klaus H. Probst" <kprobst@vbbox.com> wrote in message
    news:3913cb3a@news.devx.com...
    >
    > > why is that? Does this do cleanup for the GetClientRect function?

    >
    > No. It forces the DC ro redraw itself. Try it -- omit the InvalidateRect
    > call and resize your control. You'll get "ghosted" edges and incorrect
    > drawing. This is by design, BTW. Windows are not supposed to do a full
    > redraw on a simple WM_SIZE message.
    >
    >
    > --
    > . . . . . . . . . . . . . . . . . . . . . .
    > Klaus H. Probst, MVP
    > http://www.vbbox.com/
    > http://www.mvps.org/ccrp/
    >
    > Please post/reply to the newsgroup(s)
    >
    >
    >
    >






  12. #27
    Raymond R Cassick Guest

    Re: GetClientRect and DrawEdge not working on a UserControl?

    Ok why does this code not do what it is supposed to then...

    Private Sub DrawBorder(ctlControl As Control)

    Dim RetVal As Long
    Dim AreaRc As RECT

    InvalidateRect ctlControl.hWnd, 0, 1
    RetVal = GetClientRect(ctlControl.hWnd, AreaRc)
    RetVal = DrawEdge(ctlControl.hdc, AreaRc, BDR_RAISEDINNER, BF_TOPLEFT)
    RetVal = DrawEdge(ctlControl.hdc, AreaRc, BDR_RAISEDOUTER,
    BF_BOTTOMRIGHT)

    End Sub

    I still get the ghosted images as the ctlControl resizes..

    I am drawing a border around a picture box by the way., and I call this
    function after each resize, as shown below...

    Private Sub UserControl_Resize()

    'set the location of my picture box here
    picBackground.Top = 0
    picBackground.Left = 0
    picBackground.Width = UserControl.ScaleWidth
    picBackground.Height = 375

    'set the location of my simulated close button here inside the picture
    box
    picCloseButton.Left = picBackground.ScaleWidth - 400
    picCloseButton.Top = (picBackground.ScaleHeight -
    picCloseButton.ScaleHeight) / 2

    'set the location of my lable control here inside the picturebox
    lblTitle.Top = (picBackground.ScaleHeight - lblTitle.Height) / 2
    lblTitle.Left = 120
    lblTitle.Width = (picBackground.ScaleWidth - 620)

    'draw the border around the picturebox now
    DrawBorder picBackground

    End Sub

    The results are that the resizing edge of the picture box shows the lines of
    the border redraw.

    Why?




    "Klaus H. Probst" <kprobst@vbbox.com> wrote in message
    news:3913cb3a@news.devx.com...
    >
    > > why is that? Does this do cleanup for the GetClientRect function?

    >
    > No. It forces the DC ro redraw itself. Try it -- omit the InvalidateRect
    > call and resize your control. You'll get "ghosted" edges and incorrect
    > drawing. This is by design, BTW. Windows are not supposed to do a full
    > redraw on a simple WM_SIZE message.
    >
    >
    > --
    > . . . . . . . . . . . . . . . . . . . . . .
    > Klaus H. Probst, MVP
    > http://www.vbbox.com/
    > http://www.mvps.org/ccrp/
    >
    > Please post/reply to the newsgroup(s)
    >
    >
    >
    >






  13. #28
    Klaus H. Probst Guest

    Re: GetClientRect and DrawEdge not working on a UserControl?

    Raymond,

    You have to call InvalidateRect _in the Resize event_. That will trigger a
    Paint event. From there you call your drawing code.


    --
    .. . . . . . . . . . . . . . . . . . . . . .
    Klaus H. Probst, MVP
    http://www.vbbox.com/
    http://www.mvps.org/ccrp/

    Please post/reply to the newsgroup(s)


    "Raymond R Cassick" <raycass@adelphia.net> wrote in message
    news:39177fcd@news.devx.com...
    > Ok why does this code not do what it is supposed to then...





  14. #29
    Klaus H. Probst Guest

    Re: GetClientRect and DrawEdge not working on a UserControl?

    Raymond,

    You have to call InvalidateRect _in the Resize event_. That will trigger a
    Paint event. From there you call your drawing code.


    --
    .. . . . . . . . . . . . . . . . . . . . . .
    Klaus H. Probst, MVP
    http://www.vbbox.com/
    http://www.mvps.org/ccrp/

    Please post/reply to the newsgroup(s)


    "Raymond R Cassick" <raycass@adelphia.net> wrote in message
    news:39177fcd@news.devx.com...
    > Ok why does this code not do what it is supposed to then...





  15. #30
    Klaus H. Probst Guest

    Re: GetClientRect and DrawEdge not working on a UserControl?

    Hi Michael,

    > >Once you compile your app that goes away (well, in most cases).

    >
    > Hmmm, interesting, I did not know that. Maybe it is not so useless after
    > all. When does it not work when compiled?


    When you do it incorrectly ;-)
    As far as I can tell, it never fails to work.

    > >But what's that have to do with the original posting?

    >
    > It was in relation to you post.


    Oh, OK.


    .. . . . . . . . . . . . . . . . . . . . . .
    Klaus H. Probst, MVP
    http://www.vbbox.com/
    http://www.mvps.org/ccrp/

    Please post/reply to the newsgroup(s)




Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


   Development Centers

   -- Android Development Center
   -- Cloud Development Project Center
   -- HTML5 Development Center
   -- Windows Mobile Development Center