Announcement

Collapse
No announcement yet.

Window styles

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Semen Matusovski
    replied
    Thanx, guys.

    DrawEdge looks like alone simple solution.
    Meanwhile calculations + 2 confuses me.
    In similar cases I use GetWindowRect
    Code:
       GetClientRect hWnd, rc
       GetWindowRect hWndStatus, rc2
       rc.nBottom = rc.nBottom - (rc2.nBottom - rc2.nTop)
       GetWindowRect hWndTB, rc2
       rc.nTop = rc.nTop + (rc2.nBottom - rc2.nTop)

    ------------------
    E-MAIL: [email protected]

    Leave a comment:


  • Jules Marchildon
    replied
    Semen,

    The PBNOTE.BAS example that came with PB/DLL 5.0 is an MDI that shows
    the same client edge. In addition the child windows also have the same
    client edge, so when you maximize the child, you see double edge'ing.

    In the past I made my own MDI using Parent/client and child windows. In
    my code adding the clientedge style to my client(only border) window gives
    this effect.

    Regards,
    Jules

    Leave a comment:


  • Borje Hagsten
    replied
    Think better to use Begin/EndPain in WM_PAINT, like:
    Code:
       Case %WM_ERASEBKGND: Function = 1: Exit Function
     
       Case %WM_PAINT
            Local rc As RECT, rc2 As RECT, ps AS PAINTSTRUCT
     
            BeginPaint hWnd, ps
               GetClientRect hWnd, rc
               GetClientRect hStatus, rc2
               rc.nBottom = rc.nBottom - rc2.nBottom
               GetClientRect hToolbar, rc2
               rc.nTop = rc.nTop + rc2.nBottom + 2
               FillRect ps.hDc, rc, GetSysColorBrush(%COLOR_WINDOW)
               DrawEdge ps.hDc, rc, %EDGE_SUNKEN, %BF_RECT
            EndPaint hWnd, ps
            FUNCTION = 0 : Exit Function
    Also, can add %WS_THICKFRAME style to CreateToolbarEx, to give toolbar
    own borders, but not needed with Kev's solution.


    ------------------

    Leave a comment:


  • Kev Peel
    replied
    I manufactured some code (for the lurkers), simply add to skeleton.bas and leave to simmer for 1 second...

    Code:
     
        Case %WM_ERASEBKGND: Function = 1: Exit Function
     
        Case %WM_PAINT
             Local hDc As Long, rc As RECT, rc2 As RECT
             Function = DefWindowProc(hWnd, wMsg, wParam, lParam)
             hDc = GetDc(hWnd)
             GetClientRect hWnd, rc
             GetClientRect hStatus, rc2
             rc.nBottom = rc.nBottom - rc2.nBottom
             GetClientRect hToolbar, rc2
             rc.nTop = rc.nTop + rc2.nBottom + 2
             FillRect hDc, rc, GetSysColorBrush(%COLOR_APPWORKSPACE)
             DrawEdge hDc, rc, %EDGE_SUNKEN, %BF_RECT
             ReleaseDc hWnd, hDc
             Exit Function
    ------------------
    Kev G Peel
    KGP Software, Bridgwater, UK.
    mailto:[email protected][email protected]</A>

    Leave a comment:


  • Gafny Jacob
    replied
    Both Pb/ide & Skeleton dosn't have %WS_EX_CLIENTEDGE style.

    In PB/Ide the white rectangle is another window with the %WS_EX_CLIENTEDGE
    while in skeleton only the background are painted white


    ------------------

    Leave a comment:


  • Kev Peel
    replied
    Since the skeleton doesn't have a MDI client window, there is no sunken border in the main window, solutions for this are...

    1. Create a static window and use that (%WS_EX_CLIENTEDGE)
    2. DrawEdge using %EDGE_SUNKEN

    In both these techniques, you must calculate main height of toolbar and status bar, hence creating the main window with %WS_EX_CLIENTEDGE won't look correct.

    Is that what you mean?



    ------------------
    Kev G Peel
    KGP Software, Bridgwater, UK.
    mailto:[email protected][email protected]</A>

    Leave a comment:


  • Semen Matusovski
    replied
    Borje --
    Compare left and right side of Skeleton's window with PB/IDE window.
    In skeleton they are flat. Look also bottom line of toolbar.

    Probably, DrawEdge in ERASEBKGND ?


    [This message has been edited by Semen Matusovski (edited October 11, 2001).]

    Leave a comment:


  • Borje Hagsten
    replied
    Don't understand. Are we talking MDI dialogs? In that case, maybe because
    in MDI32.INC, client is created with %WS_EX_CLIENTEDGE style. Had to remove
    that one by hand for an MDI-based Word Processor I'm working on.

    WS_OVERLAPPEDWINDOW gives correct look for me in main app's, otherwise
    WS_CAPTION OR WS_SYSMENU usually is enough. For dialogs, that is.
    Hm, what is "incorrect" in skeleton sample?


    ------------------

    Leave a comment:


  • Semen Matusovski
    started a topic Window styles

    Window styles

    Guys --
    What's necessary to do to have the same side borders as most windows have (PB/IDE, Imagine, Word and so on) - looks like CLIENTEDGE.
    I even took SpyXX and copied style/exstyle as hexadimal values.
    But my SDK window looks like in "incorrect" skeleton sample.

    I have impression that such effect could be due to additional WS_EX_CLIENTEDGE child window in cental part.
    Hope that it so not so.

    [This message has been edited by Semen Matusovski (edited October 11, 2001).]
Working...
X