Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    97

    [VC++6.0] Dialog Box di varie forme

    Ciao a tutti,
    Ho visto programmi che utilizzano interfacce utenti di varie forme, non sempre rettangolari come quelle io utilizzo nei miei programmi.

    Mi chiedevo come e' possibile "disegnare" una dialogBox in modo tale che, per esempio, all'avvio il programma presenti un'interfaccia rotonda, magari colorata anziche' il solito grigio ?

    Che ne so, un interfaccia che rappresenti un pallone da calcio, o di qualsiasi altra forma...
    E' possibile in Visual C++ fare cio?
    Grazie a tutti e buona giornata

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

    Re: [VC++6.0] Dialog Box di varie forme

    Originariamente inviato da Trader
    Mi chiedevo come e' possibile "disegnare" una dialogBox in modo tale che, per esempio, all'avvio il programma presenti un'interfaccia rotonda, magari colorata anziche' il solito grigio ?

    Che ne so, un interfaccia che rappresenti un pallone da calcio, o di qualsiasi altra forma...
    E' possibile in Visual C++ fare cio?
    Leggi bene questa discussione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    97
    Grazie Andbin
    ho provato a compilare il codice da te proposto...
    Veramente un bell' effetto !!

    La mia limitata conoscienza di programmazione non tocca la Win32 ( se non in rarissimi casi), i programmi che preparo si basano quasi esclusivamente su MFC..
    Credi sia possibile fare la stessa cosa anche se il progetto di base e' sviluppato in MFC ? (MFC AppWizard)

    Ciao e grazie per le informazioni

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da Trader
    ho provato a compilare il codice da te proposto...
    Veramente un bell' effetto !!
    Già, solo che il problema in genere non è tanto impostare la 'region' della finestra (quello è facile ... basta chiamare SetWindowRgn) ma ridisegnare completamente la parte non-client (barra, bordi, pulsantini ecc....).

    Originariamente inviato da Trader
    Credi sia possibile fare la stessa cosa anche se il progetto di base e' sviluppato in MFC ? (MFC AppWizard)
    Come credo tu sappia, MFC è un framework che semplicemente sta un "pelo" al di sopra delle API Win32. La maggior parte delle classi relative alla interfaccia grafica ha ad esempio svariati metodi che sono nient'altro che dei "wrapper" per le relative funzioni Win32.

    Se vai a vedere, la classe CWnd ha una funzione membro SetWindowRgn. Quindi la risposta è: sì, puoi farlo anche in MFC.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    97
    Ciao,
    ho provato ad creare il mio DialogBox rotondo.
    Purtroppo, solo chiamando la funzione SetWindowRgn() ho incontrato problemi..
    Ti riporto le poche righe che ho aggiunto.
    codice:
      HRGN        hRgn;
      CWnd * pWnd;
      //CButton * pWnd;
         pWnd = GetDlgItem(IDD_CERCHIO_DIALOG); // ID relativo alla finestra principale
         //pWnd = (CButton *) GetDlgItem(IDC_BUTTON1); I//D di un pulsante
    
         hRgn = CreateEllipticRgn (0, 0, 30, 30);
         if (hRgn != NULL  )
             pWnd->SetWindowRgn (hRgn, TRUE);
    
        pWnd->ShowWindow (SW_SHOWNORMAL);
        pWnd->UpdateWindow();
    Se tento di cambiare la forma ad un tasto, tutto bene, il tasto diventa rotondo, anche se poi ho problemi con il refresh...
    Invece con il mio DialogBox il programma va in crash.

    Mi sa che sto facendo un errore da principiante....

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.