Thread: Real fullscreen application

  1. #1
    Reverse Engineer maxorator's Avatar
    Join Date
    Aug 2005
    Location
    Estonia
    Posts
    2,318

    Real fullscreen application

    I want to make a REAL fullscreen application, not some kind of a stretched window or something...

  2. #2
    Reverse Engineer maxorator's Avatar
    Join Date
    Aug 2005
    Location
    Estonia
    Posts
    2,318
    Code:
    #include <windows.h>
    HRGN hRegion2,hRegion1;
    /*  Declare Windows procedure  */
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
    DWORD dwStyle;
    /*  Make the class name into a global variable  */
    char szClassName[ ] = "WindowsApp";
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
    
    {
        HWND hwnd;               /* This is the handle for our window */
        MSG messages;            /* Here messages to the application are saved */
        WNDCLASSEX wincl;        /* Data structure for the windowclass */
    
        /* The Window structure */
        wincl.hInstance = hThisInstance;
        wincl.lpszClassName = szClassName;
        wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
        wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
        wincl.cbSize = sizeof (WNDCLASSEX);
    
        /* Use default icon and mouse-pointer */
        wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
        wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
        wincl.lpszMenuName = NULL;                 /* No menu */
        wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
        wincl.cbWndExtra = 0;                      /* structure or the window instance */
        /* Use Windows's default color as the background of the window */
        wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
    
        /* Register the window class, and if it fails quit the program */
        if (!RegisterClassEx (&wincl))
            return 0;
    
        /* The class is registered, let's create the program*/
        hwnd = CreateWindowEx (
               0,                   /* Extended possibilites for variation */
               szClassName,         /* Classname */
               "Windows App",       /* Title Text */
               WS_OVERLAPPEDWINDOW, /* default window */
               CW_USEDEFAULT,       /* Windows decides the position */
               CW_USEDEFAULT,       /* where the window ends up on the screen */
               544,                 /* The programs width */
               375,                 /* and height in pixels */
               HWND_DESKTOP,        /* The window is a child-window to desktop */
               NULL,                /* No menu */
               hThisInstance,       /* Program Instance handler */
               NULL                 /* No Window Creation data */
               );
    
        /* Make the window visible on the screen */
        ShowWindow (hwnd, nFunsterStil);
    
        /* Run the message loop. It will run until GetMessage() returns 0 */
        while (GetMessage (&messages, NULL, 0, 0))
        {
            /* Translate virtual-key messages into character messages */
            TranslateMessage(&messages);
            /* Send message to WindowProcedure */
            DispatchMessage(&messages);
        }
    
        /* The program return-value is 0 - The value that PostQuitMessage() gave */
        return messages.wParam;
    }
    
    
    /*  This function is called by the Windows function DispatchMessage()  */
    
    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch (message)                  /* handle the messages */
        {
            case WM_CREATE:
                dwStyle = GetWindowLong(hwnd, GWL_STYLE);
                dwStyle &= ~(WS_CAPTION|WS_SIZEBOX);
                SetWindowLong(hwnd, GWL_STYLE, dwStyle);
                SetWindowPos(hwnd,0,0,0,1024,768,SWP_SHOWWINDOW);
                break;
            case WM_ACTIVATEAPP:
                if(wParam==TRUE){
                SetWindowPos(hwnd,0,0,0,1024,768,SWP_SHOWWINDOW);
                }
                else{
                SetWindowPos(hwnd,0,0,0,0,0,SWP_SHOWWINDOW);
                }
                break;
            case WM_DESTROY:
                PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
                break;
            default:                      /* for messages that we don't deal with */
                return DefWindowProc (hwnd, message, wParam, lParam);
        }
    
        return 0;
    }
    Is there a better way to make a fullscreen window? If not, how can I get rid of the cursor...

  3. #3
    Registered User
    Join Date
    Sep 2004
    Posts
    57
    I ran this code from this website, and it seems ok. It uses the system class "FullScreenWnd".

    "Shows how to create a top most full screen window."
    http://www.ragestorm.net/snippet?id=91

    I ran your program and it appears to do the same.
    I think you should get the screen dimensions (1024,768) from
    GetSystemMetrics(), since not all screens are 1024x768.

  4. #4
    Registered /usr
    Join Date
    Aug 2001
    Location
    Newport, South Wales, UK
    Posts
    1,273
    Quote Originally Posted by maxorator
    Is there a better way to make a fullscreen window? If not, how can I get rid of the cursor...
    That's about as good as you're gonna get it, yeah.

    And try ShowCursor(FALSE).

  5. #5
    Reverse Engineer maxorator's Avatar
    Join Date
    Aug 2005
    Location
    Estonia
    Posts
    2,318
    But all those games? None of them is made with C++?
    That ShowCursor(FALSE) worked.
    Code:
            case WM_ACTIVATEAPP:
                if(wParam==TRUE){
                SetWindowPos(hwnd,0,0,0,1024,768,SWP_SHOWWINDOW);
                }
                else{
                SetWindowPos(hwnd,0,0,0,0,0,SWP_SHOWWINDOW);
                }
                break;
    This part makes the start menu visible when my program is not active.
    Last edited by maxorator; 11-05-2005 at 07:37 AM.

  6. #6
    Registered User Queatrix's Avatar
    Join Date
    Apr 2005
    Posts
    1,342
    >> I want to make a REAL fullscreen application, not some kind of a stretched window or something...

    Why, there is nothing wrong with the program if it isn't. It won't decrease business in any if your selling it. In fact I like it better because the monitor doesn't have to go through that flash procces. And if you terminate a program while in REAL fullscreen, the 'screen area' size will be to big.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Having a button link to another application -help?
    By Diablo02 in forum C# Programming
    Replies: 9
    Last Post: 09-30-2007, 09:16 PM
  2. how to make a windows application
    By crvenkapa in forum C++ Programming
    Replies: 3
    Last Post: 03-26-2007, 09:59 AM
  3. 6 measly errors
    By beene in forum Game Programming
    Replies: 11
    Last Post: 11-14-2006, 11:06 AM
  4. %16 with double
    By spank in forum C Programming
    Replies: 11
    Last Post: 03-05-2006, 10:10 PM
  5. problem with open gl engine.
    By gell10 in forum Game Programming
    Replies: 1
    Last Post: 08-21-2003, 04:10 AM