Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071

    [C++] Colori di sistema

    Devo colorare una finestra che ho creato, con i colori di sistema... tutti quelli che ho trovato (su MSDN) sono questi:

    COLOR_ACTIVEBORDER
    COLOR_ACTIVECAPTION
    COLOR_APPWORKSPACE
    COLOR_BACKGROUND
    COLOR_BTNFACE
    COLOR_BTNSHADOW
    COLOR_BTNTEXT
    COLOR_CAPTIONTEXT
    COLOR_GRAYTEXT
    COLOR_HIGHLIGHT
    COLOR_HIGHLIGHTTEXT
    COLOR_INACTIVEBORDER
    COLOR_INACTIVECAPTION
    COLOR_MENU
    COLOR_MENUTEXT
    COLOR_SCROLLBAR
    COLOR_WINDOW
    COLOR_WINDOWFRAME
    COLOR_WINDOWTEXT

    e li ho provati tutti... ma nessuno che mi colori il form con gli stessi colori delle altre fineste...

    Quale devo utilizzare?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: [C++] Colori di sistema

    Originariamente inviato da Il Pazzo
    Devo colorare una finestra che ho creato, con i colori di sistema... tutti quelli che ho trovato (su MSDN) sono questi:

    COLOR_ACTIVEBORDER
    COLOR_ACTIVECAPTION
    ....
    COLOR_WINDOWFRAME
    COLOR_WINDOWTEXT

    e li ho provati tutti... ma nessuno che mi colori il form con gli stessi colori delle altre fineste...

    Quale devo utilizzare?
    Dipende da come/dove hai usato queste costanti (e se lo spieghi è meglio). Questi valori li puoi usare:

    - Nel campo hbrBackground delle strutture WNDCLASS e WNDCLASSEX
    - Come parametro delle funzioni GetSysColor, SetSysColors, GetSysColorBrush
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071

    Re: Re: [C++] Colori di sistema

    Originariamente inviato da andbin
    - Nel campo hbrBackground delle strutture WNDCLASS e WNDCLASSEX
    Qui... li ho provati tutti.... ma gli unici colori che mi sono usciti fuori sono stato, bianco, grigio, nero e trasparente adddirittura... è strana come cosa (almeno credo)... ma nessuno che mi colori la mia finestra dello stesso colore delle finestre delle altre applicazioni,,,

    Ho anche creato (A PARTE) un progetto windows form per vedere di che colore mi faceva il form.. .e tra i colori di sistema c'era il nome "control" ma non sono riuscito a trovare poi un corrispondente per poter colorare la mia finestra assegnando il valore giusto

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: Re: Re: [C++] Colori di sistema

    Originariamente inviato da Il Pazzo
    Qui... li ho provati tutti.... ma gli unici colori che mi sono usciti fuori sono stato, bianco, grigio, nero e trasparente adddirittura... è strana come cosa (almeno credo)... ma nessuno che mi colori la mia finestra dello stesso colore delle finestre delle altre applicazioni,,,

    Ho anche creato (A PARTE) un progetto windows form per vedere di che colore mi faceva il form.. .e tra i colori di sistema c'era il nome "control" ma non sono riuscito a trovare poi un corrispondente per poter colorare la mia finestra assegnando il valore giusto
    In genere basta mettere ad esempio:

    wcx.hbrBackground = (HBRUSH) (COLOR_WINDOW+1);

    Comunque ognuno dei colori COLOR_xxx ha un compito ben preciso e viene usato solo: o in certi tipi di finestre o ad esempio in certe parti di un controllo/finestra.

    Per gli sfondi delle finestre, si può usare (e ha senso):

    - COLOR_WINDOW, è il colore usato come sfondo dai vari controlli es. edit-box, list-box, combo-box, ecc... Tipicamente è il colore bianco e nelle proprietà dello Schermo è selezionabile per la parte "Finestra".

    - COLOR_3DFACE, è il colore usato ad esempio dagli oggetti tridimensionali: pulsanti, dialog-box, ecc... Tipicamente è un colore sul grigio e nelle proprietà dello Schermo è selezionabile per la parte "Oggetti tridimensionali"

    - COLOR_APPWORKSPACE, è il colore usato ad esempio dalle finestre principali di applicazioni MDI. Tipicamente è un colore sul grigio scuro (ma dipende dal tema) e nelle proprietà dello Schermo è selezionabile per la parte "Sfondo dell'applicazione".

    Insomma ... non vedo problemi. Basta impostare il campo hbrBackground come ho detto sopra.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071
    Il problema è che non funziona... come dici tu mi fa lo sfondo bianco... no come il colore delle altre finestre (forse non sono stato chiaro... aprendo una qualunque finestra... non so... vedi la cartella documenti... ecco... il colore di sfondo della barra dei pulsanti standard... quel colore voglio...)... Quel colore può cambiare da computer a computer... da sistema a sistema... ci dovrebbe essere una macro, una variabile.. qualcosa per definire quel colore...

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da Il Pazzo
    Il problema è che non funziona... come dici tu mi fa lo sfondo bianco... no come il colore delle altre finestre (forse non sono stato chiaro... aprendo una qualunque finestra... non so... vedi la cartella documenti... ecco... il colore di sfondo della barra dei pulsanti standard... quel colore voglio...)... Quel colore può cambiare da computer a computer... da sistema a sistema... ci dovrebbe essere una macro, una variabile.. qualcosa per definire quel colore...
    Le dialog-box, i pulsanti, le tool-bar (es. quella di Explorer), le scroll-bar, usano il colore indicato con la costante COLOR_3DFACE.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  7. #7
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071
    Niente... sempre lo sfondo bianco.... forse manca qualche linea di codice prima?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da Il Pazzo
    Niente... sempre lo sfondo bianco.... forse manca qualche linea di codice prima?
    Non so che dirti .... il seguente codice (che poi è quello che posto sempre in questi casi ) funziona perfettamente e mostra la finestra con lo stesso colore di sfondo delle dialog-box.

    codice:
    #define STRICT
    #include <windows.h>
    
    #define MAIN_WNDCLASS   "MiaClasseFinestra"
    
    LRESULT CALLBACK Main_WndProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
        switch (uMsg)
        {
            case WM_CREATE:
                return 0;
    
            case WM_DESTROY:
                PostQuitMessage (0);
                return 0;
    
            case WM_CLOSE:
                DestroyWindow (hWnd);
                return 0;
        }
    
        return DefWindowProc (hWnd, uMsg, wParam, lParam);
    }
    
    INT APIENTRY WinMain (HINSTANCE hInstance, HINSTANCE hPrevious, LPSTR lpszCmdLine, INT iCmdShow)
    {
        WNDCLASSEX  wcx;
        HWND        hWnd;
        MSG         msg;
    
        wcx.cbSize        = sizeof (wcx);
        wcx.style         = CS_HREDRAW | CS_VREDRAW;
        wcx.lpfnWndProc   = (WNDPROC) Main_WndProc;
        wcx.cbClsExtra    = 0;
        wcx.cbWndExtra    = 0;
        wcx.hInstance     = hInstance;
        wcx.hIcon         = NULL;
        wcx.hIconSm       = NULL;
        wcx.hCursor       = LoadCursor (NULL, IDC_ARROW);
        wcx.hbrBackground = (HBRUSH) (COLOR_3DFACE+1);
        wcx.lpszMenuName  = NULL;
        wcx.lpszClassName = MAIN_WNDCLASS;
    
        if (!RegisterClassEx (&wcx))
        {
            MessageBox (NULL, "Errore nella registrazione della classe",
                        "ERRORE", MB_OK | MB_ICONEXCLAMATION);
            return 1;
        }
    
        hWnd = CreateWindow (MAIN_WNDCLASS, "Titolo finestra", WS_OVERLAPPEDWINDOW,
                             CW_USEDEFAULT, 0, 300, 300,
                             NULL, NULL, hInstance, NULL);
    
        if (hWnd == NULL)
        {
            MessageBox (NULL, "Errore nella creazione della finestra",
                        "ERRORE", MB_OK | MB_ICONEXCLAMATION);
            return 1;
        }
    
        ShowWindow (hWnd, SW_SHOWNORMAL);
        UpdateWindow (hWnd);
    
        while (GetMessage (&msg, NULL, 0, 0))
        {
            TranslateMessage (&msg);
            DispatchMessage (&msg);
        }
    
        return 0;
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  9. #9
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071
    Il tuo mi da due errori....

    Riferimento al simbolo esterno _main non risolto nella funzione
    1 esterni non risolti

    Al solito compilato in MultiByte.. in Unicode mi dava 4 errori (quelli del cast) che quando venivano risolti mi venivano generati questi 2 errori che ho scritto sopra...

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da Il Pazzo
    Il tuo mi da due errori....

    Riferimento al simbolo esterno _main non risolto nella funzione
    1 esterni non risolti

    Al solito compilato in MultiByte.. in Unicode mi dava 4 errori (quelli del cast) che quando venivano risolti mi venivano generati questi 2 errori che ho scritto sopra...
    Il codice che ho postato io è per una applicazione Win32 "GUI" (non "console" per intenderci .... non uso main() ma WinMain!!!!) e con set di caratteri "ANSI" (non Unicode).

    Compilalo in modo opportuno! (come impostare la cosa, dipende da quale ambiente di sviluppo/compilatore usi)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.