AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zeichnen auf NonClientArea mit W7 Theme?

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

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

AW: Zeichnen auf NonClientArea mit W7 Theme?

  Alt 30. Apr 2013, 11: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
 
#2

AW: Zeichnen auf NonClientArea mit W7 Theme?

  Alt 1. Mai 2013, 01: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
 
#3

AW: Zeichnen auf NonClientArea mit W7 Theme?

  Alt 1. Mai 2013, 03: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
 
#4

AW: Zeichnen auf NonClientArea mit W7 Theme?

  Alt 1. Mai 2013, 12: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
 
#5

AW: Zeichnen auf NonClientArea mit W7 Theme?

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

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

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

AW: Zeichnen auf NonClientArea mit W7 Theme?

  Alt 1. Mai 2013, 12: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
 
#7

AW: Zeichnen auf NonClientArea mit W7 Theme?

  Alt 1. Mai 2013, 12: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 13:00 Uhr)
  Mit Zitat antworten Zitat
Namenloser

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

AW: Zeichnen auf NonClientArea mit W7 Theme?

  Alt 1. Mai 2013, 13:58
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?
Was jetzt, willst du einen komplett eigenes Form-Theme oder willst du nur in die Non-Client-Area zeichnen so wie z.B. Chrome es mit den Tabs macht? Aus deiner Frage schloss ich letzteres.

Im anderen Fall würde ich ein Layered Window nehmen.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz