Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo

ich hab folgendes Problem: wenn ich einen Button drücke passiert nichts...

Ich will dass mein Programm mir beispielsweise eine Ellipse auf mein Hauptfenster zeichnet!

aber leider bekomme ich das nicht hin..

Hier mein Unterprogramm:

BOOL APIENTRY mein_maskenprogramm (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)

{

switch(msg)

{

case WM_INITDIALOG:

//Dieser Teil wird durchlaufen, wenn die Maske das 1. Mal geoeffnet wird

printf("\nDie Maske wurde aufdemacht");

break;

case WM_COMMAND:

switch(LOWORD(wParam))

{

case KNOPF_BERLIN:

printf("\nEs wurde der Knopf_BERLIN gedrückt");

Ellipse_zeichnen (hdc);

break;

case KNOPF_NY:

printf("\nEs wurde der KNOPF_NY gedrückt");

break;

}

break;

}

return(HandleDefaultMessages(hwnd, msg, wParam, lParam));

}

Die Übergabe an die Konsole funktioniert!

Nur die Ellipse zeichnet er nicht..

Wie bekomme ich das hin? Ich hoffe jemand kann mir da helfen:)

Ich hoffe jemand kann mir da weiterhelfen.

Angeli

Geschrieben

das unterprogramm, welches auf das Hauptfenster eine Ellipse zeichnen soll heißt:

ellipse_zeichenen (HDC hdc)

hdc ist ein Handle für ein Gerätekontext

Geschrieben

Ich habe sein Wissen auch nicht angezweifelt;)

also ich habs jetzt bisschen umgeändert...

#include <windows.h>

#include <windowsx.h>

#include <commctrl.h>

#include <string.h>

#include "uhrprogrammres.h"

#include "prototypen.h"

#include <stdio.h>

BOOL APIENTRY mein_maskenprogramm (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)

{

switch(msg)

{

case WM_INITDIALOG:

//Dieser Teil wird durchlaufen, wenn die Maske das 1. Mal geoeffnet wird

printf("\nDie Maske wurde aufdemacht");

break;

case WM_COMMAND:

//Dieser Teil wird durchlaufen, wenn in der Maske etwas ausgefuehrt werden soll.

switch(LOWORD(wParam))

{

case KNOPF_BERLIN:

printf("\nEs wurde der Knopf_BERLIN gedrückt");

ellipse_zeichnen(hwnd);

break;

case KNOPF_NY:

printf("\nEs wurde der KNOPF_NY gedrückt");

break;

}

break;

}

return(HandleDefaultMessages(hwnd, msg, wParam, lParam));

}

BOOL ellipse_zeichnen(HWND hwnd)

{

HDC hdc;

PAINTSTRUCT ps;

int farbmischung;

int r, g, b;

HBRUSH pinsel;

InvalidateRect (hwnd, NULL, TRUE);

hdc = BeginPaint(hwnd, &ps);

farbmischung = RGB(0, 100, 100);

pinsel = CreateSolidBrush(farbmischung);

SelectBrush(hdc, pinsel);

Ellipse(hdc, 250, 80, 300, 130);

DeleteObject(pinsel);

EndPaint(hwnd, &ps);

UpdateWindow(hwnd);

return 0;

}

die Ellipse wird jetzt leider auf die Maske gezeichnet..

Wie kann ich sie auch dem Hauptfenster zeichnen lassen??

Geschrieben
die Ellipse wird jetzt leider auf die Maske gezeichnet..

Wie kann ich sie auch dem Hauptfenster zeichnen lassen??

Die Ellipse wird auf das Fenster gezeichnet, dessen Fenster-Handle du an ellipse_zeichnen übergibst. Im Übrigen scheinst du alles, was ich dir in deinem letzten Thread über BeginPaint, UpdateWindow usw. gesagt habe, wieder vergessen zu haben.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...