Docking windows in Progress

roo

New Member
I need to dock a Progress window to the Windows desktop, preferably to the windows task bar at the bottom. Does anyone know how this can be done in Progress, or know of any dll or ocx that would allow this to be done in Progress.

Thanks,
Randy
 

vinod_home

Member
your question is still not clear. but if i am guessing it correct, you mean positioning a session window on the left top of your screen or left bottom of your screen and keeping the window top only.

Originally posted by roo
By dock, I mean attaching a Progress window somewhere on the windows desktop (maybe to the task bar or at the top of the screen) so it is visible, but nothing can be overlayed on top of it.
 

roo

New Member
Nope. I need the whole window showing. An example of a docked application would be the Microsoft Office Tool Bar, which you can dock to the top, bottom, left, or right side of the screen. That's what I'm trying to do with one Progress window, which is a marquee that scrolls information. I want this marquee viewable at all times, without interference from other windows opening up; the only way to do this is docking it.

Any idea how to do this in Progress. I can't find any dll's or ocx's that allow this on a windows desktop.

Randy


Originally posted by vinod_home
your question is still not clear. but if i am guessing it correct, you mean positioning a session window on the left top of your screen or left bottom of your screen and keeping the window top only.
 

bendaluz2

Member
This will create you a window which sits at the top of the screen and is always on top. There is no such property as "docking" really, just code is used to detect when the window is dragged near the edge and then it is locked into position and properties such as always on top set to give the appearance of docking.

hope this helps :)

Code:
[I]Definitions[/I]
{windows.i}
{ProExtra.i}

&SCOPED-DEFINE SW_HIDE 0


[I]local-initialize[/I]
    DEFINE VARIABLE i$return AS INTEGER NO-UNDO.
    DEFINE VARIABLE i$winhandle AS INTEGER NO-UNDO.
    DEFINE VARIABLE i$style AS INTEGER NO-UNDO.
    DEFINE VARIABLE i$oldstyle AS INTEGER NO-UNDO.

    RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) .

    ASSIGN i$winhandle = GetParent({&window-name}:HWND).

    RUN ShowWindow in hpApi
        (i$winhandle,
         {&SW_HIDE},
         OUTPUT i$return).

    RUN GetWindowLong{&A} IN hpApi
        (i$winhandle, 
         {&GWL_EXSTYLE},
         OUTPUT i$style).
    RUN Bit_Or in hpExtra
        (input-output i$style, 
         {&WS_EX_PALETTEWINDOW}).
    RUN SetWindowLong{&A} IN hpApi
        (i$winhandle,
         {&GWL_EXSTYLE},
         i$style,
         OUTPUT i$oldstyle).
                                 
    RUN GetWindowLong{&A} IN hpApi
        (i$winhandle, 
         {&GWL_STYLE},
         OUTPUT i$style).
    RUN Bit_Remove IN hpExtra
        (INPUT-OUTPUT i$style,
         {&WS_CAPTION}).
    RUN Bit_Remove IN hpExtra
        (INPUT-OUTPUT i$style,
         {&WS_THICKFRAME}).
    RUN SetWindowLong{&A} IN hpApi
        (i$winhandle,
         {&GWL_STYLE},
         i$style,
         OUTPUT i$oldstyle).

    RUN SetWindowPos IN hpApi
        (i$winhandle,
         {&HWND_TOPMOST},
         0,
         0,
         0,
         0,
         {&SWP_NOSIZE} + {&SWP_NOMOVE} + {&SWP_SHOWWINDOW},
         OUTPUT i$return).
         
    ASSIGN W-Win:X = 0
           W-Win:WIDTH-PIXELS = 1024
           W-Win:Y = 0
           W-Win:HEIGHT-PIXELS = 20.

Originally posted by roo
Nope. I need the whole window showing. An example of a docked application would be the Microsoft Office Tool Bar, which you can dock to the top, bottom, left, or right side of the screen. That's what I'm trying to do with one Progress window, which is a marquee that scrolls information. I want this marquee viewable at all times, without interference from other windows opening up; the only way to do this is docking it.

Any idea how to do this in Progress. I can't find any dll's or ocx's that allow this on a windows desktop.

Randy
 

VoxEcho

New Member
Ok, so I know this is a really old thread but I was wondering if anyone has this systray.zip file (as the link is dead) -

As I have mentioned before, I am not the progress programmer here at my POB, however, I enjoy interfering with that which is not my domain :p - that said, our lead Progress Programmer has little flare for user interface (though I am told that he is exceptional at work flow) as a result the programs our company has tend to cascade all over the screen, each new process opening in a new window. This is fine, however if I accidentally close the root window, all of the other windows close. It happens a lot. Since you have to log into the progress application, it would be 100% improvement if the main window could be minimized to the system tray, and even better if it would respond to a right button click to access the available programs in a hierarchal manor

from this:

main.jpg

to this:
systray.jpg




I figure, if I find what he needs to make this happen, he may put it into place.. Ideas?


Not sure what you mean by "dock", but I use systray to minimise a window to an icon on the system tray in the taskbar.

http://www.global-shared.com/api/dl/systray.zip
 
Top