Fenster mit Button und Textbox



  • Hallo,

    Ich brauche eine änderung für den folgenden code. Er erstellt ein fenster und wenn man darauf klick erscheint text. Das möchte ich aber nicht, soll also komplett raus aus dem code. Dafür soll nur ein einfacher Button mit text und ein einfaches leeres Textfeld in dem fenster angezeigt werden.
    Is eine schulaufgabe.

    / API.cpp : Ein Windows-Programm.
    //

    #include <windows.h>

    // Vorwärtsdeklaration
    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

    // Eintrittsfunktion, die Argumente werden von Windows an
    // die Funktion übergeben
    int APIENTRY WinMain( HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow )
    {
    // ZU ERLEDIGEN: Fügen Sie hier den Code ein.

    HWND hWindow; // Fenster-Handle
    MSG Message; // Strukturvariable für Nachrichten
    WNDCLASS WinClass; // Fensterklasse

    // erste Instanz
    memset(&WinClass,0,sizeof(WNDCLASS));
    WinClass.style = CS_HREDRAW | CS_VREDRAW;
    WinClass.lpfnWndProc = WndProc;
    WinClass.hInstance = hInstance;
    WinClass.hbrBackground = (HBRUSH) (COLOR_WINDOW);
    WinClass.hCursor = LoadCursor(NULL, IDC_ARROW);
    WinClass.lpszClassName = "Windows-Programm";

    // Fensterklasse anmelden
    if(!RegisterClass(&WinClass))
    return(FALSE);

    // erstelle Hauptfenster der Anwendung
    hWindow = CreateWindow("Windows-Programm",
    "API-Programm",
    WS_OVERLAPPEDWINDOW, 10, 10,
    400,300,NULL,NULL,hInstance,NULL);
    ShowWindow(hWindow, nCmdShow);
    UpdateWindow(hWindow);

    // Message loop
    while (GetMessage (&Message, NULL, 0, 0) )
    {
    TranslateMessage(&Message);
    DispatchMessage(&Message);
    }

    return (Message.wParam);
    }

    // Fensterfunktion WinProcedure
    LRESULT CALLBACK WndProc(HWND hWnd, UINT uiMessage,
    WPARAM wParam, LPARAM lParam)
    {
    char str[30] = "Hier erfolgte Mausklick";
    HDC dc;

    // beantworte Nachrichten mit entsprechenden Aktionen
    switch(uiMessage)
    {

    case WM_LBUTTONDOWN:
    dc = GetDC(hWnd);

    TextOut(dc, LOWORD (lParam), HIWORD (lParam) ,str,strlen(str));

    // Gerätekontext freigeben
    ReleaseDC(hWnd, dc);
    return 0;

    case WM_DESTROY:
    PostQuitMessage(0);
    return 0;
    default:
    return DefWindowProc(hWnd,uiMessage,
    wParam,lParam);
    }
    }



  • san25 schrieb:

    Er erstellt ein fenster und wenn man darauf klick erscheint text. Das möchte ich aber nicht, soll also komplett raus aus dem code.

    Dann nimm es doch einfach raus - also das WM_LBUTTONDOWN. Und das brauchst du dann auch nicht mehr:

    char str[30] = "Hier erfolgte Mausklick";
    HDC dc;
    

    san25 schrieb:

    Dafür soll nur ein einfacher Button mit text und ein einfaches leeres Textfeld in dem fenster angezeigt werden.

    Diese musst du dann WM_CREATE abfangen und dort mit CreateWindow die Controls erstellen (button und edit)


Anmelden zum Antworten