Sorgfältig gestaltet: Wenn Sie easyx als Schnittstelle verwenden, soll sich die Hintergrundfarbe ändern, wenn die Maus eine Schaltfläche berührt.

Wenn wir easyx verwenden, um kleine Anwendungen zu entwickeln (z. B. das Schreiben eines Geständnisprogramms Doge), fühlt es sich sehr fortgeschritten an, aber wir müssen noch auf einige Details achten, um unser Programm perfekter zu machen und den Kunden (oder Ihrer Freundin) das Gefühl zu geben, dass Sie Sie sind Wenn ich vorsichtig bin und auf Details achte, muss ich mich einigen Detailproblemen stellen.

Worüber ich hier sprechen möchte, ist, wie die Maus mit der Benutzeroberfläche interagiert, einschließlich der folgenden Inhalte (hauptsächlich, um den Hintergrund zu ändern. Um Ihnen Sicherheit zu geben, werde ich Ihnen auch einige frühere grundlegende Inhalte zeigen): 1. Wie So verwenden Sie easyx. Richten Sie eine Bedienoberfläche ein. 2. So erstellen Sie Schaltflächen. 3. Wenn nur eine Schaltfläche vorhanden ist, ändern Sie den Hintergrund, wenn die Maus über die Schaltfläche bewegt. 4. Nehmen Sie Änderungen vor, wenn viele Schaltflächen vorhanden sind.

#1. So erstellen Sie eine Betriebsschnittstelle einer bestimmten Größe

#include <easyx.h>
#include <graphics.h> 

initgraph(1100,800);

Der erste Schritt besteht zunächst darin, zwei Header-Dateien anzuwenden und dann auf die Initgraph-Funktion zu verweisen. Die beiden Parameter sind die Koordinaten der x- bzw. y-Achse. Die festgelegte Schnittstelle ist die positive x-Richtung nach rechts und die positive y-Richtung nach unten.

#2. Schaltfläche „Erstellen“.

IMAGE button;
loadimage(&button, L"按钮.jpg", 20, 50);
putimage(100, 20, &button, SRCINVERT);

Zuerst müssen Sie das Bild, das Ihnen gefällt, als Schaltfläche im Internet finden und dann das Foto in das Programm importieren. Die Methode ist wie folgt: Laden Sie das Foto herunter (denken Sie daran, es zu ändern, damit Sie sich den Namen merken können ) -> Übertragen Sie das Bild in den Ordner, in dem sich die Programmquelldatei befindet -> Führen Sie den Programmvorgang aus. Das Programm funktioniert wie folgt: Geben Sie zunächst das Schlüsselwort IMAGE in Anführungszeichen und definieren Sie einen Bereich mit dem Namen „button“, in dem das Bild gespeichert wird. Anschließend laden Sie das Bild mit der Funktion „loadimage“ in das Programm herunter. Es gibt 4 Parameter, die a, b, c genannt werden. d unten. a ist a Die Adresse ist der Speicherort, an dem das Bild gespeichert ist; b ist der Name des herunterzuladenden Bildes (möglicherweise gibt es in C++ eine Warnung, Sie können versuchen, L davor hinzuzufügen); cd ist die Größe des zu speichernden Bildes (dargestellt durch xy-Koordinaten). Als nächstes müssen wir die Funktion putimage zitieren, um das Bild an einer beliebigen Stelle auf der Bedienoberfläche zu platzieren. Es gibt auch 4 Parameter, nennen wir sie a1, b1, c1, d1, a1. b1 ist die Positionskoordinate der oberen linken Ecke des Bild; c1 ist die Adresse des Bildes; d1 ist ein Wenn Sie an diesem Modus interessiert sind, können Sie ihn durchsuchen.

#3. Wie eine einzelne Taste mit der Maus interagiert

MOUSEMSG m;
m = GetMouseMsg();
bool c1 = 1, now = 0;
if (m.uMsg == WM_MOUSEMOVE)
        {
            if (m.x > 800 && m.x < 1000 && m.y < 250 && m.y > 200 && !c1)
            {
                now = 1;c1 = 1;
                fillrectangle(800, 200, 1000, 250);
            }
            if ((m.x < 800 || m.x > 1000 || m.y > 250 || m.y <200) && now)
            {
                c1 = 0;now = 0;
                fillrectangle(800, 200, 1000, 250);
            }
        }

Verweisen Sie zuerst auf MOUSEMSG und erstellen Sie ein Mausobjekt m. Weisen Sie dann die Eigenschaften von m mithilfe der Funktion GetMouseMsg zu, um die Koordinaten der Maus auf der Schnittstelle zu erhalten. WM_MOUSEMOVE stellt die Mausbewegung dar, m.uMsg ist der Status der Maus, mx ist das x Koordinate der Maus, und my ist die Y-Koordinate der Maus; dieses Programm zeigt die Farbe des gefüllten Rechtecks ​​an, wenn sich die Maus zur X-Koordinate 800-1000 und zur Y-Koordinate 200-250 bewegt. Wenn die Maus die Schaltfläche verlässt, füllen Sie das Rechteck erneut, sodass es wieder seine ursprüngliche Farbe annimmt.

Die Variable jetzt c1 kann die Leistung stabiler machen und verhindern, dass sie ständig flackert.

Im Folgenden wird die Fillrectangle-Funktion vorgestellt, die die aktuelle Linienform und den aktuellen Füllstil verwendet, um ein gefülltes Rechteck mit einem äußeren Rahmen zu zeichnen.

void fillrectangle{
int left,
int top,
int right,
int bottom
};

#4. Wie mehrere Tasten das Programm verbessern können

Sie werden feststellen, dass bei mehreren Tasten die Tasten im obigen Programm zufällig blinken, das Programm jedoch wie folgt verbessert werden muss.

MOUSEMSG m;
    int now = 0, now2 = 0, now3 = 0, now4 = 0;
    int c1 = 1, c2 = 1, c3 = 1, c4 = 1, k1 = 1, k2 = 1, k3 = 1, k4 = 1;
    while (1)
    {
        m = GetMouseMsg();
        setrop2(R2_XORPEN);
        if (m.uMsg == WM_MOUSEMOVE)
        {
            if (m.x > 800 && m.x < 1000 && m.y < 250 && m.y > 200 && (c1 == 0 || k1 == 1))
            {
                now = 1; k1 = 0; c1 = 1;
                fillrectangle(800, 200, 1000, 250);
            }
            if (now != 0 && (m.x < 800 || m.x > 1000 || m.y > 250 || m.y < 200))
            {
                now = 0; c1 = 0;
                fillrectangle(800, 200, 1000, 250);
            }
            if (m.x > 800 && m.x < 950 && m.y < 367 && m.y > 317 && (c2 == 0 || k2 == 1))
            {
                now2 = 1; k2 = 0; c2 = 1;
                fillrectangle(800, 317, 950, 367);
            }
            if (now2 != 0 && (m.x < 800 || m.x > 950 || m.y > 367 || m.y < 317))
            {
                now2 = 0; c2 = 0;
                fillrectangle(800, 317, 950, 367);
            }
            if (m.x > 800 && m.x < 1000 && m.y < 484 && m.y > 434 && (c3 == 0 || k3 == 1))
            {
                now3 = 1; k3 = 0; c3 = 1;
                fillrectangle(800, 434, 1000, 484);
            }
            if (now3 != 0 && (m.x < 800 || m.x > 1000 || m.y > 484 || m.y < 434))
            {
                now3 = 0; c3 = 0;
                fillrectangle(800, 434, 1000, 484);
            }
            if (m.x > 800 && m.x < 900 && m.y < 601 && m.y > 551 && (c4 == 0 || k4 == 1))
            {
                now4 = 1; k4 = 0; c4 = 1;
                fillrectangle(800, 551, 900, 601);
            }
            if (now4 != 0 && (m.x < 800 || m.x > 900 || m.y > 601 || m.y < 551))
            {
                now4 = 0; c4 = 0;
                fillrectangle(800, 551, 900, 601);
            }
        }

Hier gibt es 4 Schaltflächen und es werden Variablen der K-Serie hinzugefügt, um die Leistung stabiler zu machen.

*Abschluss:

Dies sind die Tipps, die ich teilen möchte. Ich hoffe, dass es erfolgreich sein wird (Doge). Diese Methode ist zwar umständlicher, aber einfach und leicht zu verstehen. Ich hoffe, Sie lassen sie los. Ha ha ha ha

Supongo que te gusta

Origin blog.csdn.net/m0_73747975/article/details/128687664
Recomendado
Clasificación