Uso di Delphi Vorrei aggiungere un altro pulsante ai pulsanti delle icone del bordo; chiudi, massimizza, minimizza. Qualche idea su come fare questo?Aggiungi un'icona del bordo al modulo
risposta
Questo è stato facile da fare prima di Windows Aero. Dovevi semplicemente ascoltare i messaggi WM_NCPAINT
e WM_NCACTIVATE
da disegnare sopra la barra dei sottotitoli, e allo stesso modo potresti usare gli altri WM_NC*
messaggi per rispondere ai clic del mouse ecc., In particolare WM_NCHITTEST
, WM_NCLBUTTONDOWN
e WM_NCLBUTTONUP
.
Per esempio, per disegnare una stringa sulla barra del titolo, bastava fare
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
protected
procedure WMNCPaint(var Msg: TWMNCPaint); message WM_NCPAINT;
procedure WMNCActivate(var Msg: TWMNCActivate); message WM_NCACTIVATE;
private
procedure DrawOnCaption;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.WMNCActivate(var Msg: TWMNCActivate);
begin
inherited;
DrawOnCaption;
end;
procedure TForm1.WMNCPaint(var Msg: TWMNCPaint);
begin
inherited;
DrawOnCaption;
end;
procedure TForm1.DrawOnCaption;
var
dc: HDC;
begin
dc := GetWindowDC(Handle);
try
TextOut(dc, 20, 2, 'test', 4);
finally
ReleaseDC(Handle, dc);
end;
end;
end.
Ora, questo non funziona con Aero abilitato. Eppure, c'è un modo per disegnare sulla barra dei sottotitoli; L'ho fatto, ma è molto più complicato. Vedere this article per un esempio funzionante.
Sì, imposta la proprietà dello stile del bordo del modulo su bsNone e implementa la tua barra del titolo con tutti i pulsanti e il comportamento personalizzato che ti piace.
Chris Rolliston ha scritto un blog dettagliato su creating a custom title bar on Vista and Windows 7.
Ha anche scritto un follow up article e ha pubblicato un codice di esempio su CodeCentral.
- 1. Proprio stile del bordo modulo
- 2. Bootstrap: Rimuovi il bordo del campo modulo
- 3. Aggiungi bordo curvo angolo interno al menu attivo
- 4. Aggiungi errore all'elemento del modulo Symfony 2
- 5. Aggiungi bordo a fa-circle
- 6. bordo modulo senza bordi
- 7. bordo intorno al testo inserito in un modulo HTML
- 8. Modifica del colore del bordo su un modulo Windows
- 9. Come modificare il colore del bordo del modulo C#?
- 10. Aggiungi dipendenza al modulo Angolare dopo che è stato creato
- 11. Aggiungi il bordo alla raccolta personalizzataViewView
- 12. Symfony2 aggiungi il campo reCaptcha al modulo di registrazione
- 13. Al passaggio del mouse come posso rendere il bordo figlio sovrapposto al bordo padre?
- 14. aggiungi richiesta al metodo del modello django?
- 15. Aggiungi contenuto al passaggio del mouse
- 16. Aggiungi CSS al tipo di modulo è Symfony2
- 17. WPF Aggiungi un bordo a TextBlock
- 18. Aggiungi bordo di colore solido con CIImage
- 19. Aggiungi bordo e ombreggiatura ai pulsanti
- 20. CSS - Aggiungi bordo per tutti i div
- 21. Aggiungi un'etichetta sul bordo con Cytoscape.js
- 22. Aggiungi a innerHTML senza distruggere il contenuto del modulo
- 23. Aggiungi il diagramma del database al controllo del codice sorgente?
- 24. Aggiungi modulo a un UserControl - è possibile?
- 25. magento aggiungi il calendario di selezione calendario al modulo personalizzato in admin (modulo personalizzato)
- 26. aggiungi cookie al WebClient
- 27. Aggiungi SoapHeader al org.springframework.ws.WebServiceMessage
- 28. Odoo aggiungi widget al frontend del sito web
- 29. Come nascondere lo sfondo al di sotto del bordo
- 30. Anteprima modulo Django - Aggiunta all'utente al modulo prima del salvataggio