AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeichnen auf NonClientArea mit W7 Theme?

Ein Thema von Memnarch · begonnen am 30. Apr 2013 · letzter Beitrag vom 2. Mai 2013
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#1

Zeichnen auf NonClientArea mit W7 Theme?

  Alt 30. Apr 2013, 09:42
Tag allerseits,
Wollt mich mal mit dem zeichnen auf dem NonClientArea bei Forms beschäftigen.

Dabei ist mir aufgefallen, dass keines der Beispiele, die ich gefunden habe funktioniert, wenn ein Theme in windows7 eingestellt wurde. Wenn ich auf Classic-Theme gehe klappt es.

Muss ich dann für diese eine Form das Themeing abschalten und alles selber machen?(Wohle eher nicht)
Wie mach DevExpress dass den dann?+

Als referenz Beispiel:
http://www.experts-exchange.com/Prog..._21563027.html
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Zeichnen auf NonClientArea mit W7 Theme?

  Alt 30. Apr 2013, 10:26
Meine ganzen Nonvcl Anwendungen zeichnen auf den NonClientArea Bereich.
Dabei spielt es überhaupt keine rolle ob eine Theme eingestellt ist oder nicht.

Zitat:
und alles selber machen
Ja muss man alles selber machen


gruss
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#3

AW: Zeichnen auf NonClientArea mit W7 Theme?

  Alt 30. Apr 2013, 11:30
@EWeiss: Ok das heißt: Theme für die Form abschalten ist damit inbegriffen?(bleiben mit dan die themes für die komponennten auf den Forms, wie Buttons?)

EDIT: yo, SetWindowTheme setzt das nur für die jeweilige control. Schöner wäre es natürlich, wen man direkt in Windows theme-bausteine(zumindest für die laufende applikation) registrieren könnte
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden

Geändert von Memnarch (30. Apr 2013 um 11:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Zeichnen auf NonClientArea mit W7 Theme?

  Alt 30. Apr 2013, 12:20
Vielleicht ist das für dich interessant.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#5

AW: Zeichnen auf NonClientArea mit W7 Theme?

  Alt 1. Mai 2013, 02:15
SO, ich bin jetzt soweit, das ich den Frame zeichnen kann. Es ist mir außerdem möglich die Buttons Min/Max/Close frei zu plazieren, da ich sämtliche NC events dafür überschrieben habe.

Mit Platzhalter grafiken sieht es so aus:
frame.png


Leider habe ich ein Problem. In dem Moment, wo die Maus das erste mal mit irgendeinem teil des NC bereiches in Kontakt kommt(aber nur beim ersten mal, nach dem der active state gewechselt hat), werden die alten systembuttons draufgezeichnet -.-
frame_wrong.png

Ich weiß noch nicht woran das liegt und wie ich das unterbinden kann. Dies wurde unter anderem vorher auch von stellen wie NCHittest NCLbuttonDown/Up ausgelößt. Diese habe ich aber bereits gekapert um meine Buttons zu behandeln, weswegen dort das problem nicht mehr auftrit. Meine Frage also: WARUM o.o?
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Zeichnen auf NonClientArea mit W7 Theme?

  Alt 1. Mai 2013, 04:45
Ich glaube, das ist nicht der richtige Weg. Probier es mal so: http://www.codeproject.com/Articles/...t-Area-in-Aero
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#7

AW: Zeichnen auf NonClientArea mit W7 Theme?

  Alt 1. Mai 2013, 13:18
Was heißt nicht der richtige Weg? Ich möchte ja alles selber zeichnen. Und in deinem Beispiel wird eigentlich in C# nur das implementiert, was wir in Delphi GlassFrame nennen?
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Zeichnen auf NonClientArea mit W7 Theme?

  Alt 1. Mai 2013, 13:38
Welchen WindowsStyle verwendest du denn?

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#9

AW: Zeichnen auf NonClientArea mit W7 Theme?

  Alt 1. Mai 2013, 13:47
Zum zeichnen stelle ich momentan den STyle der Form ab(Betrifft aber nur die form). Darauf zeichne ich dan. Wiegesagt, das letzte was mich nervt ist, das aus irgendeinem grund irgendwo diese Systembuttons erneut gezeichnet werden. Ich muss rauskriegen wo, um das zu korrigieren
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

AW: Zeichnen auf NonClientArea mit W7 Theme?

  Alt 1. Mai 2013, 13:51
Deshalb meine Frage welchen Windowstyle du verwendest.
Du mußt diesen ermitteln und gegebenfalls auf den für dich in frage kommenden ändern.
So wie es zur zeit bei dir aussieht verwendest du WS_OVERLAPPEDWINDOW.
Und was sagt dir das?

oops: So denke ich

WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED or WS_CAPTION or WS_SYSMENU or
WS_THICKFRAME or WS_MINIMIZEBOX or WS_MAXIMIZEBOX);

Entweder verwende einen der die Boxen gar nicht erst anzeigt
Oder schalte sie einfach aus

gruss

Geändert von EWeiss ( 1. Mai 2013 um 14:00 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz