Esempi di documentazione e API per il disegno su Windows Aero Glass (DWM, GDI, GDI +) per tutti i programmatori Win32

Sono alla ricerca di buone risorse per imparare a utilizzare le API Win32 / GDI o qualsiasi altra cosa la sostituisca per disegnare e dipingere direttamente utilizzando l’API Win32 su un modulo di vetro.

Mentre sto usando Delphi, l’ho taggato come Delphi o Visual C ++. Tutti i campioni di codice e gli articoli che trovi possono essere apprezzati. Gli articoli MSDN non sembrano essere scritti su questo.

Come objective, immaginiamo di voler: (a) riprodurre ciò che fa Google Chrome (tabs come parte della cornice di vetro) (b) Riprodurre ciò che fa MS Office 2010 (salva il pulsante sulla cornice di vetro, a cui si fa riferimento in MFC per VS 2010, come “Quick Access Toolbar” (vedi immagine sotto).

Non sto usando MFC, ma se esaminare le sorgenti MFC sarebbe una buona fonte di informazioni, sono curioso di sapere dove sono presenti nei sorgenti MFC o nelle fonti originali BCG (ho entrambi) il codice di rendering / pittura di Quick Access Toolbar.

alt text

Aggiornamento: un link neato correlato da una delle risposte seguenti mostra il messaggio NC (non secondario) Paint e come gestirlo quando si dipinge su una cornice di vetro e un articolo MSDN su di esso qui .

Questo è un sottoinsieme della mia cartella di segnalibri “Glass”, il risultato di molte ricerche / ricerche su questo argomento. Ho trovato tutto questo utile per imparare a conoscere il vetro e risolvere i vari problemi attingendo ad esso. La maggior parte di questi include il codice Delphi, ma ho notato dove si trova per un’altra lingua.

Collegamenti di vetro semplici

  • Utilizzo di windows traslucide con Delphi : buona introduzione (dalle basi) per l’utilizzo di forms Glass in Delphi
  • Disegno personalizzato su vetro : illustra come disegnare una bitmap o altra immagine su un’area di vetro della finestra. Copre anche i canali alfa ecc., Buona panoramica
  • Usare il vetro in un progetto VC ++ : copertine di vetro, disegno di testo, gestione di notifiche ecc. – una buona introduzione generale a come funziona. Molti dei dettagli sottostanti sono gestiti dalla VCL (ad esempio la proprietà GlassFrame e gli interni di TForm si occupano molto di questo) ma è molto utile capire le basi di come è implementato a livello di API in ogni caso
  • Come disegnare nell’area non client : questo mostra come disegnare qualcosa come la barra degli strumenti di Office nella barra del titolo. . Codice netto, ma traducibile
  • Impostazione di una barra del titolo personalizzata : articolo molto dettagliato sul disegno dell’area non client (in Delphi, quindi codice Delphi). Seguito dalla parte 2 , che dimostra di occupare completamente l’intera finestra e di imitare la barra del titolo standard. Questi due articoli ti consentono di imitare Office e Chrome come richiesto nella domanda
  • Come impostare vari controlli VCL per lavorare al meglio su un’area di vetro : il VCL non supporta il vetro molto bene. Otterrai spesso artefatti o controlli semplicemente non disegnando correttamente, non importa cosa fai per cercare di risolverlo. In questo articolo sono elencati i componenti visivi VCL di base (etichette, pulsanti, barre di avanzamento, ecc.) E cosa impostare per ciascuno in modo che si disegnino perfettamente, o per lo meno ‘nel miglior modo ansible’ quando vengono posizionati su un’area di vetro

Avanzato o correlato in modo tangenziale:

  • Come funziona la composizione desktop, con superfici GDI e DirectX
  • Elenco delle API di desktop manager (solo alcune delle quali sono correlate all’Aero)

Questi post sul disegno di una barra del titolo personalizzata sotto Vista / Windows 7 potrebbero interessarti.

Immagine di esempio:

Campione

Sono sicuro che hai trovato la pagina MSDN sul DWM . Ha saltato molti argomenti e alcuni esempi. Alcuni degli articoli di “panoramica” contengono esempi (come la panoramica di DWM Blur Behind ).

Sfortunatamente, oltre alla documentazione, ci sono pochi preziosi articoli. Puoi iniziare con Uso di glass su codeproject , e dare un’occhiata a un vetro di rilevamento in delphi – dopo di che usare le funzioni direttamente dai documenti non è poi così male. Fortunatamente nella pratica sono tutti piuttosto semplici.

Buon sito web per componenti in vetro, incluso un pulsante di vetro:

http://rmklever.com/

Inoltre, questi vecchi articoli possono aiutarti:

  • Creazione di applicazioni pronte per Windows Vista con Delphi
  • Creazione di applicazioni pronte per Windows Vista con l’aggiornamento Delphi – Gennaio 2007