Diskussion zum Artikel "Panels verbessern: Transparenz hinzufügen, Hintergrundfarbe ändern und von CAppDialog/CWndClient übernehmen" - Seite 2
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Vladimir, danke für die Artikel, sehr nützliches Material. Ich habe vielleicht eine lahmere Frage...
Es gibt ein Objekt vom Typ CBmpButton - eine Schaltfläche mit einem Bild. Das Bild der Schaltfläche selbst fungiert hier also als Ressource. Wie kann man auf seine Eigenschaften zugreifen? Oder ist das unmöglich?
Ein Beispiel aus der Dokumentation.
Dort habe ich mit der Methode CControlsDialog::CreateBmpButton1() gespielt:
Das Objekt des Bildes selbst auf dem Panel wird mit ObjectFind() nicht gefunden, was ganz natürlich ist. Wie kann man es finden, wenn es überhaupt möglich ist?
Danke!
Vladimir, danke für die Artikel, sehr nützliches Material. Ich kann eine lahmere Frage haben.....
Es gibt ein Objekt vom Typ CBmpButton - eine Schaltfläche mit einem Bild. Das Bild der Schaltfläche selbst fungiert hier also als Ressource. Wie kann ich auf seine Eigenschaften zugreifen? Oder kann ich das nicht?
Beispiel aus der Dokumentation.
Dort habe ich mit der Methode CControlsDialog::CreateBmpButton1() gespielt:
Das Objekt des Bildes selbst auf dem Panel wird mit ObjectFind() nicht gefunden, was ganz natürlich ist. Wie kann man es finden, wenn es überhaupt möglich ist?
Danke!
Ein Bild (eine Zeichnung) ist kein Objekt. Objekte sind Linien, Rechtecke ... grafische Elemente.
Hallo, Vladimir. Du hast dem Fenster eine zusätzliche ClientArea hinzugefügt. Und dann verwendest du die Methode CMyWndClient::ShiftButton, um Schaltflächen zu verschieben. Das ist nicht sehr praktisch, weil es viele Schaltflächen im Fenster geben kann. Außerdem kann es neben den Schaltflächen noch eine Menge anderer UI-Elemente geben. Sie sehen also, dass es eine Herausforderung ist, Methoden für jedes Element zu schreiben und nicht zu vergessen, sie in Scrolling-Handlern aufzurufen. Ist es nicht einfacher, die ClientArea zu scrollen ? Dann werden alle darin enthaltenen UI-Elemente automatisch gescrollt. Es reicht aus, in den Handlern nur das Scrollen der ClientArea anzugeben .
Hallo, Vladimir. Du hast dem Fenster eine zusätzliche ClientArea hinzugefügt. Und dann verwendest du die Methode CMyWndClient::ShiftButton, um Schaltflächen zu verschieben. Das ist nicht sehr praktisch, weil es viele Schaltflächen im Fenster geben kann. Außerdem kann es neben den Schaltflächen noch eine Menge anderer UI-Elemente geben. Sie sehen also, dass es eine Herausforderung ist, Methoden für jedes Element zu schreiben und nicht zu vergessen, sie in Scrolling-Handlern aufzurufen. Ist es nicht einfacher, die ClientArea zu scrollen ? Dann werden alle darin enthaltenen UI-Elemente automatisch gescrollt. Es reicht aus, in den Handlern nur das Scrollen der ClientArea anzugeben .
Bitte schreiben Sie ein solches Beispiel. Ich denke, jeder wird an einer solchen Implementierung interessiert sein.
Bitte schreiben Sie ein solches Beispiel. Ich denke, jeder wird an einer solchen Implementierung interessiert sein.
Nach einigem Nachdenken habe ich es herausgefunden. Ein solches Scrolling kann nicht implementiert werden, weil es nicht möglich ist, beliebige Diagrammobjekte (in diesem Fall ClientArea und Schaltflächen) teilweise auszublenden. In anderen UIs ist es anders implementiert. Dort wird ein rechteckiger Bereich angezeigt, der in den Bildlaufbereich fällt , und alles andere wird ausgeblendet. Daher die Verwirrung.