Windows Menü Funktion. Hilfe!



  • Guten Abend
    Ich habe vor einigen Wochen mit C++ angefangen und kann jetzt die Grundlagen und ein paar fortgeschrittene Themen. Nun möchte ich Windows Programme proggen. Hier mein Code:

    #include <windows.h>

    #define ID_DATEI_BEENDEN 9001
    #define ID_FORM_DREIECKE 9002
    #define ID_INFO_ABOUT 9003

    const char g_szClassName[] = "myWindowClass";

    LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
    {
    switch(Message)
    {
    case WM_CREATE:
    {
    HMENU hMenu, hSubMenu;
    HICON hIcon, hIconSm;

    hMenu = CreateMenu();

    hSubMenu = CreatePopupMenu();
    AppendMenu(hSubMenu, MF_STRING, ID_DATEI_BEENDEN, "B&eenden");
    AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu, "&Datei");

    hSubMenu = CreatePopupMenu();
    AppendMenu(hSubMenu, MF_STRING, ID_FORM_DREIECKE, "&Dreiecke");
    AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu, "&Form");

    hSubMenu = CreatePopupMenu();
    AppendMenu(hSubMenu, MF_STRING, ID_INFO_ABOUT, "&About");
    AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu, "&Info");

    SetMenu(hwnd, hMenu);

    }
    break;
    case WM_COMMAND:
    switch(LOWORD(wParam))
    {
    case ID_DATEI_BEENDEN:
    PostMessage(hwnd, WM_CLOSE, 0, 0);
    break;
    case ID_FORM_DREIECKE:
    MessageBox(hwnd, "Noch keine Funktion!", "Sorry!", MB_OK);
    break;
    case ID_INFO_\1:
    MessageBox(hwnd, "Noch keine Funktion!", "Sorry!", MB_OK);
    break;
    }
    break;
    case WM_CLOSE:
    DestroyWindow(hwnd);
    break;
    case WM_DESTROY:
    PostQuitMessage(0);
    break;
    default:
    return DefWindowProc(hwnd, Message, wParam, lParam);
    }
    return 0;
    }

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
    {
    WNDCLASSEX wc;
    HWND hwnd;
    MSG Msg;

    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = 0;
    wc.lpfnWndProc = WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = NULL;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wc.lpszMenuName = NULL;
    wc.lpszClassName = g_szClassName;
    wc.hIconSm = NULL;

    if(!RegisterClassEx(&wc))
    {
    MessageBox(NULL, "Window Registration Failed!", "Error!",
    MB_ICONEXCLAMATION | MB_OK);
    return 0;
    }

    hwnd = CreateWindowEx(
    WS_EX_CLIENTEDGE,
    g_szClassName,
    "Mathe Berechungs Programm Version 1.0",
    WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, CW_USEDEFAULT, 600, 400,
    NULL, NULL, hInstance, NULL);

    if(hwnd == NULL)
    {
    MessageBox(NULL, "Window Creation Failed!", "Error!",
    MB_ICONEXCLAMATION | MB_OK);
    return 0;
    }

    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);

    while(GetMessage(&Msg, NULL, 0, 0) > 0)
    {
    TranslateMessage(&Msg);
    DispatchMessage(&Msg);
    }
    return Msg.wParam;
    }

    Diesen Teil möchte ich ändern:

    hSubMenu = CreatePopupMenu();
    AppendMenu(hSubMenu, MF_STRING, ID_FORM_DREIECKE, "&Dreiecke");
    AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu, "&Form");

    Ich möchte, dass beim Klicken auf "Dreiecke" im Hauptfenster ein Programm aufgeht. Dort soll man dann Zahlen eingeben usw. Doch ich brauch den Code. So nebenbei, gibts sowas wie http://self.cpp.org oda so? 😛



  • Cortana schrieb:

    Guten Abend
    Ich habe vor einigen Wochen mit C++ angefangen und kann jetzt die Grundlagen und ein paar fortgeschrittene Themen.

    Wenn du vorher nicht schon programmiert hast, bezweifle ich das ganz stark.

    Ich möchte, dass beim Klicken auf "Dreiecke" im Hauptfenster ein Programm aufgeht. Dort soll man dann Zahlen eingeben usw. Doch ich brauch den Code.

    Wenn du mit Programm nen Dialog meinst, dazu gibts genügen Tutorials



  • Link zu MSDN Suchergebnis schrieb:

    Wenn du vorher nicht schon programmiert hast, bezweifle ich das ganz stark.

    Mit 10 konnte uch Basic. Mit 12 HTML. Mit 13 PHP und Javscript. Mit 14 hab ich noch CSS gelernt. Und jetzt mit 16.0 lerne ich C++. In der Konsole kann ich fast alles zustande bringen, nur ist das mit dem Windows Fenster noch nicht so einleuchtend.

    Link zu MSDN Suchergebnis schrieb:

    Wenn du mit Programm nen Dialog meinst, dazu gibts genügen Tutorials

    Kannste mir ein paar Links mit funktionstüchtigen Codes geben? Alles was ich gefunden habe, hatte Fehler!
    Danke für die Hilfe 🙂





  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten