graphics?

Discussion in 'Programming General' started by darion123, Aug 23, 2008.

graphics?
  1. Unread #1 - Aug 23, 2008 at 1:06 AM
  2. darion123
    Referrals:
    0

    darion123 Guest

    graphics?

    ok im new to c++ but i was wandering how i can make actual graphics not just the cmd prompt window. thanks!
     
  3. Unread #2 - Aug 23, 2008 at 2:53 AM
  4. Swan
    Joined:
    Jan 23, 2007
    Posts:
    4,957
    Referrals:
    0
    Sythe Gold:
    0
    Sythe's 10th Anniversary Member of the Month Winner

    Swan When They Cry...
    Retired Global Moderator

    graphics?

    You need a graphical library. If you're new, chances are you won't be able to do this. You don't even need GUI for most things, anyway.

    In Windows native code, this is the code just to create a window:
    Code:
    #include <windows.h>
    
    /*  Declare Windows procedure  */
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
    
    /*  Make the class name into a global variable  */
    char szClassName[ ] = "CodeBlocksWindowsApp";
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR lpszArgument,
                         int nCmdShow)
    {
        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 colour 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 */
               "Code::Blocks Template 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, nCmdShow);
    
        /* 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_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;
    }
    
     
  5. Unread #3 - Sep 17, 2008 at 7:08 PM
  6. Code zombie
    Referrals:
    0

    Code zombie Guest

    graphics?

    Lemme tell you a tip about programming, nowadays on these complex platforms programmers rarely have direct access to the basic resources the computer hardware provides, and to be honest no one would want that! It gets so complex down there that not even the platforms we use anymore have access to it, they request it from its HAL which is software that comes with our hardware to make the hardware useably across many platforms and the parts of are platform that request it are called services. The services call other ones and eventually you see a nice graphical interface. Ofcourse the Command prompt is from that boring age where we did not have this. anyway in order to talk to the PC and say I want to draw something on the screen we gotta know how to call and commincate with those services and ask them to call the appropriate services so that something will appear on the screen.

    anyway to make programmers lifes easier there is a library file called windows.h, it allows us to talk to microsoft windows services and call those functions so we can get the resources we need to make a window appear on the screen. The library makers knew what they were doing so you just gotta use the functions they provide in the right way. above some dude posted all the code needed to make a GUI, its alot isn't it and you gotta remember the makers of the API tried really hard to simplify it and that was the best they could do =p. If your looking to do something simpiler like just colored text on the dos, pm me and I will show it only works with windows though.
     
< Making my own WoW scriptable macro program | c++ string\function problem. >

Users viewing this thread
1 guest


 
 
Adblock breaks this site