Announcement

Collapse
No announcement yet.

graphic install program takes over whole screen

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

  • graphic install program takes over whole screen

    Hi,

    I have seen several hardware installation programs (chipset installers, network and audio installers) that "take over" the whole screen.

    No window frame, no sys controls, no red 'X' and no taskbar/systray/start button.

    Nevertheless, these "non-windows" are fairly well behaved; you can "ALT-Tab" to another window, and the windows start key (you know... the one w/ the M$ flag) on the keyboard brings up both the Start menu and the taskbar.

    I have a use for this type of behavior; can it be done from PB8 (or 9... just ordered that) and is it difficult or strange?

    If someone could just point me in the right direction....

    Sincerely,

    Ken
    Ken S. Elvehjem
    [email protected]

  • #2
    If someone could just point me in the right direction....
    Maybe this will help:


    Paul.

    Comment


    • #3
      Pointer from blogs.msdn.com

      Another topic about it here:
      Furcadia, an interesting online MMORPG in which you can create and program your own content.

      Comment


      • #4
        Working Sample:
        Code:
        #COMPILE EXE
        #DIM ALL
        #IF NOT %DEF(%WINAPI)
            #INCLUDE "WIN32API.INC"
        #ENDIF
        
        %IDB_BUTTON1   = 1001
        %IDD_MAXWINDOW =  101
        
        FUNCTION PBMAIN()
            ShowMAXWINDOW %HWND_DESKTOP
        END FUNCTION
        
        CALLBACK FUNCTION ShowMAXWINDOWProc()
        LOCAL hmon  AS DWORD
        LOCAL mi    AS MONITORINFO
        LOCAL test  AS LONG
        
            SELECT CASE AS LONG CBMSG
                CASE %WM_INITDIALOG
                    hmon = MonitorFromWindow(CB.HNDL, %MONITOR_DEFAULTTONEAREST)
                    mi.cbSize = SIZEOF(mi)
                    test = GetMonitorInfo(hmon, mi)
                    DIALOG SET LOC CB.HNDL, mi.rcMonitor.nleft, mi.rcMonitor.ntop
                    DIALOG SET SIZE CB.HNDL, mi.rcMonitor.nright, mi.rcMonitor.nbottom
        
        
                CASE %WM_COMMAND
                    SELECT CASE AS LONG CBCTL
                        CASE %IDB_BUTTON1
                            IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
                                DIALOG END CB.HNDL
                            END IF
        
                    END SELECT
            END SELECT
        END FUNCTION
        
        FUNCTION ShowMAXWINDOW(BYVAL hParent AS DWORD) AS LONG
            LOCAL lRslt AS LONG
            LOCAL hDlg  AS DWORD
        
            DIALOG NEW hParent, "Max Window", 218, 387, 201, 121, %WS_POPUP OR _
                %WS_CLIPCHILDREN OR %WS_VISIBLE OR %DS_NOFAILCREATE OR _
                %DS_SETFONT, %WS_EX_LEFT OR %WS_EX_LTRREADING OR _
                %WS_EX_RIGHTSCROLLBAR, TO hDlg
            CONTROL ADD BUTTON, hDlg, %IDB_BUTTON1, "Close", 56, 36, 84, 36
        
            DIALOG SHOW MODAL hDlg, CALL ShowMAXWINDOWProc TO lRslt
        
            FUNCTION = lRslt
        END FUNCTION
        Close button for ease of closing.
        Furcadia, an interesting online MMORPG in which you can create and program your own content.

        Comment


        • #5
          Thank you all for the pointers.

          Colin, your short demo program was extremely helpful in that it showed exactly what I needed to understand.

          I take it that if can do graphics all the way out to the edge of the screen... which is what I was trying for.

          Thanks again!

          Ken
          Ken S. Elvehjem
          [email protected]

          Comment


          • #6
            Thanks, Colin. Your code, but all DDT.
            Code:
            #COMPILE EXE
            #DIM ALL
            %IDB_BUTTON1   = 1001
            %IDD_MAXWINDOW =  101
            FUNCTION PBMAIN()
                ShowMAXWINDOW %HWND_DESKTOP
            END FUNCTION
            CALLBACK FUNCTION ShowMAXWINDOWProc()
              LOCAL ncWidth&, ncHeight&
              SELECT CASE AS LONG CBMSG
                  CASE %WM_INITDIALOG
                      DESKTOP  GET SIZE TO ncWidth&, ncHeight&
                      DIALOG SET LOC CB.HNDL, 0,0
                      DIALOG SET SIZE CB.HNDL, ncWidth,ncHeight
                   CASE %WM_COMMAND
                      SELECT CASE AS LONG CBCTL
                          CASE %IDB_BUTTON1
                              IF CBCTLMSG = %BN_CLICKED OR CBCTLMSG = 1 THEN
                                  DIALOG END CB.HNDL
                              END IF
                      END SELECT
              END SELECT
            END FUNCTION
            FUNCTION ShowMAXWINDOW(BYVAL hParent AS DWORD) AS LONG
              LOCAL lRslt AS LONG
              LOCAL hDlg  AS DWORD
              DIALOG NEW hParent, "Max Window", 218, 387, 201, 121, %WS_POPUP OR _
                  %WS_CLIPCHILDREN OR %WS_VISIBLE OR %DS_NOFAILCREATE OR _
                  %DS_SETFONT, %WS_EX_LEFT OR %WS_EX_LTRREADING OR _
                  %WS_EX_RIGHTSCROLLBAR, TO hDlg
              CONTROL ADD BUTTON, hDlg, %IDB_BUTTON1, "Close", 56, 36, 84, 36
              DIALOG SHOW MODAL hDlg, CALL ShowMAXWINDOWProc TO lRslt
              FUNCTION = lRslt
            END FUNCTION
            The world is full of apathy, but who cares?

            Comment


            • #7
              Oh hey, DESKTOP! Something new.
              Furcadia, an interesting online MMORPG in which you can create and program your own content.

              Comment


              • #8
                I have seen several hardware installation programs (chipset installers, network and audio installers) that "take over" the whole screen.

                No window frame, no sys controls, no red 'X' and no taskbar/systray/start button.
                I have a use for this type of behavior
                WHY??????? (Personally I get annoyed by this behavior, especially if I have to enter some passcode to install and the passcode is in an email or some other spot and is impossible to memorize when I just want to run it and see if it does what I want???)

                Anyone that blots the screen and expect you to know what to enter is "Just ASKING for tech calls" to walk someone through the same procedure...Over...and OVer....and OVEr...and OVER...and OVERR...and OVERRR...and....."

                Anyways....lessons of the past....whether it was "Lazy programmers"...or uninformed, or trying to "Make things easier, but made it actually harder"....or something else should be a lesson learned and not to be repeated.

                Personally I keep my window as big as needed to be seen, and try to keep on top, but if someone adds to it and takes away focus or some other thing to try to simplify...then its up to them to code it right...not mine...I did not write the code....my code works, and not my fault

                (Ok ok....you caught me...I will attempt to assist on calls like that...but if a pain, I pass it back to the guy that did something I had not accounted for, and its then their problem)
                Engineer's Motto: If it aint broke take it apart and fix it

                "If at 1st you don't succeed... call it version 1.0"

                "Half of Programming is coding"....."The other 90% is DEBUGGING"

                "Document my code????" .... "WHYYY??? do you think they call it CODE? "

                Comment


                • #9
                  Reply to Cliff

                  Cliff,

                  Thanks for your response. I appreciate your comments, and by and large, I agree with you -- Why bother to have "windows" with all the built-in standardization that probably *does* save hours and hours of tech support.

                  My application is for a viewer of aerial photography, and every pixel counts. Additionaly, it will be written for an *extremely* exclusive audience, and believe me, they will tell me in a heartbeat if something doesn't meet their expectations. On the bright side, they will pay me to bring it in line with what they expect. It will also have a "front end" and controls that will pop through the graphic when some key (the "controls" comes to mind!) for some various features, then disappear for uncluttered viewing.

                  Well, that's my plan, anyway...

                  Thanks to all, though for the replies and advice.

                  Sincerely,

                  Ken S. Elvehjem
                  Ken S. Elvehjem
                  [email protected]

                  Comment


                  • #10
                    The open-source astronomy program, Stellarium at http://www.stellarium.org, is a good example of Ken's requirement, and it has floating graphic controls.

                    Comment

                    Working...
                    X