Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: wintoosa sovelluksia?

sami_jokimies [20.08.2004 10:13:45]

#

hankin borlandin freecommandlinetools paketin ja olen tehnyt sillä muutaman komentopohjasen sovelluksen...

onko sillä mahdollista ensinnäkin tehdä puhtaalle dosille sovelluksia koska kääntämäni sovellukset toimivat vain wintoosan komentokehotteessa...

onko sillä mahdollista koodata graafisia windows ohjelmia?
jos on, niin haluaisin esimerkin vaikka ohjelmasta joka luo windows ikkunan ja sen keskelle vaikka painonapin jota klikkaamalla ohjelma sammuu...

Latska [20.08.2004 14:08:29]

#

sami_jokimies kirjoitti:

hankin borlandin freecommandlinetools paketin ja olen tehnyt sillä muutaman komentopohjasen sovelluksen...

Mietippä mikä tuo "freecommandlinetools" on suomeksi. "Ilmainen Komentorivityökalu" tjsp

sami_jokimies kirjoitti:

onko sillä mahdollista ensinnäkin tehdä puhtaalle dosille sovelluksia koska kääntämäni sovellukset toimivat vain wintoosan komentokehotteessa...

Jos käyttis on uudempi kuin WinME, kuten annoit ymmärtää, uskoisin että ne toimivat. "Komentokehoite" on "Windows®:in päälle rakennettu DOS" Ainakin Omalla XP:lläni ohjelmat toimivat ainakin 98:lla ja ME:llä moitteettomasti.

sami_jokimies kirjoitti:

onko sillä mahdollista koodata graafisia windows ohjelmia?

Kuten ylempänä sanoin, sen nimi on suomeksi "Ilmainen Komentorivityökalu" joten en oikein usko

sami_jokimies kirjoitti:

jos on, niin haluaisin esimerkin vaikka ohjelmasta joka luo windows ikkunan ja sen keskelle vaikka painonapin jota klikkaamalla ohjelma sammuu...

Ja mitäs ohjeet sanovatkaan...

lainaus:

Älä ruinaa valmista koodia. Ohjelmointiputkan tarkoitus on auttaa kaikissa ohjelmointiongelmissa mutta ei tehdä ohjelmia kysyjän puolesta.

Meitsi [20.08.2004 15:45:15]

#

Meneppä www.bloodshed.nu --> downloads --> dev-c++
Sillä voit tehdä windows ohjelmia ja kaikkea muutakin opengl:stä piipperimusiikkiin. Kaikenlisäksi ilmainen.

EDIT:
Tässä hassunhauska windows-ohjelma.

#include <windows.h>

HWND hwndNapinKahva;
HINSTANCE hThisInstance;

/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/*  Make the class name into a global variable  */
char szClassName[ ] = "LuokanNimi";

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 */
           "Tämä on pääikkunan otsikko",       /* 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:
            hwndNapinKahva=CreateWindow("button","Hei, minä olen nappi.", BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD, 30, 30, 200, 100, hwnd, (HMENU) 1, hThisInstance, NULL);
            break;
        case WM_COMMAND:
            if (HIWORD(wParam) == BN_CLICKED)
            {
                      if ((HWND) lParam == hwndNapinKahva)
                      {
                      if(MessageBoxA(hwnd,"Hahaa!!! I am the evil nappi. I will close this program now!!!!! HAHAA! \r\n Haluatko sulkea ohjelman vai et?","Nappi muuttui pahikseksi",0+MB_ICONHAND+MB_YESNO)==IDYES)
                      {
                      PostQuitMessage(0);
                      }
                      }
            }
            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;
}

Metabolix [20.08.2004 17:25:18]

#

Kyllä, Windows-ohjelmia voi tehdä,
ja Ei, DOS-ohjelmia ei voi.
Se, että ne ovat Command-line -työkalut, tarkoittaa vain sitä, että mukana ei ole IDEä; kääntökyvyn kannalta sillä ei ole merkitystä.
Kokeile vaikka tuolla ylläolevalla koodilla.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta