Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [C++ win32 API] avvio fnzione a form caricato

    lo so che il titolo è un po' strano ma non sapevo come metterlo, corregetelo voi moderatori per cortesia.
    In ogni caso ecco la mia situazione: ho una finestra in cui c'è un menu in alto e un'edit al centro.
    Io devo, a form visibile e caricato, iniziare una procedura. Ho provato a metterla dopo la ShowWindow() ma niente. Ho provato a associarlo al comando WM_CREATE ma niente. In tutti i cai esegue la procedura Prima di mostrare il form, o meglio, mostra il form solo a procedura finita. Mi servirebbe tipo un comando WM_CREATED... ...
    Fatemi sapere!

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

    Re: [C++ win32 API] avvio fnzione a form caricato

    Originariamente inviato da MRj92
    lo so che il titolo è un po' strano ma non sapevo come metterlo, corregetelo voi moderatori per cortesia.
    In ogni caso ecco la mia situazione: ho una finestra in cui c'è un menu in alto e un'edit al centro.
    Io devo, a form visibile e caricato, iniziare una procedura. Ho provato a metterla dopo la ShowWindow() ma niente. Ho provato a associarlo al comando WM_CREATE ma niente. In tutti i cai esegue la procedura Prima di mostrare il form, o meglio, mostra il form solo a procedura finita. Mi servirebbe tipo un comando WM_CREATED... ...
    Fatemi sapere!
    Quindi vuoi fare "qualcosa" solo appena dopo che la finestra è stata resa visibile.

    WM_CREATE non va bene, la documentazione dice: "... receives this message after the window is created, but before the window becomes visible.". Quindi prima che la finestra diventi visibile.

    Potrebbe esserti utile WM_WINDOWPOSCHANGED, però leggi bene la documentazione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    scusa l'ignIoranza ... ...ma quel messaggio non viene inviato quando la finestra cambia posizione? a me servirebbe tipo un mex di "avvenuta creazione". Oppure potrei anche fare un ciclo che verifica se è stata creata e manda un messaggio. Però mi sembra strano che non ci sia niente di pronto.
    grazie andbin per la risposta... scherzo!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da MRj92
    ma quel messaggio non viene inviato quando la finestra cambia posizione? a me servirebbe tipo un mex di "avvenuta creazione". Oppure potrei anche fare un ciclo che verifica se è stata creata e manda un messaggio. Però mi sembra strano che non ci sia niente di pronto.
    La "avvenuta creazione" è appunto WM_CREATE, l'ho anche riportato "..after the window is created..".

    WM_WINDOWPOSCHANGED invece viene inviato ogni volta che la finestra cambia di stato: posizione, dimensiione, z-order, visibile/invisibile, ecc.... Ma appunto dal nome "changed", avviene dopo che lo stato è stato modificato.
    Basterebbe tenere un flag per fare quello che vuoi solo 1 volta a seguito di questo messaggio.

    Domanda: che cosa deve fare di preciso la tua procedura?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    capito! proverò perchè ora non posso e ti farò sapere.
    Comunque questa applicazione è una specie di loader per l'avvio di win che avvia i programmi p2p solo se sono presenti download in corso. L'editbox è solo per una funzione di LOG. capito?

  6. #6
    funziona ma esegue la funzione ogni valta k la finestra viene minimizzata e cose varie... devo togliere la possibilità di spostamento e di minimizzare la finestra.

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da MRj92
    funziona ma esegue la funzione ogni valta k la finestra viene minimizzata e cose varie... devo togliere la possibilità di spostamento e di minimizzare la finestra.
    Devi usare un flag per evitare che lo faccia ogni volta.

    Comunque quello che volevo capire io è quali operazioni devi fare praticamente come codice. Voglio cioè capire se ti serve davvero che la finestra sia già visibile oppure no.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  8. #8
    ma scusa, non dovrei "estrarre" dalla struttura LParam il menbro flags per vedere qual'è l'azione eseguita dalla finestra? cioè se è spostamento, ridimensionamento?
    Piccola domanda un po' OT: si può associare un .rc a una finestra come lo si fa con i dialoghi?
    Comunque si, mi serve la finestra già visibile.

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da MRj92
    ma scusa, non dovrei "estrarre" dalla struttura LParam il menbro flags per vedere qual'è l'azione eseguita dalla finestra? cioè se è spostamento, ridimensionamento?
    Sì, certo. Diciamo che dovrebbe essere: "la prima volta che ricevi WM_WINDOWPOSCHANGED con WINDOWPOS.flags che contiene SWP_SHOWWINDOW".

    Originariamente inviato da MRj92
    Piccola domanda un po' OT: si può associare un .rc a una finestra come lo si fa con i dialoghi?
    No. Perché le finestre "crude" le crei da codice con CreateWindow.
    Le dialog sono un qualcosa di più, c'è tutta una gestione "sotto" il cofano delle dialog.

    Originariamente inviato da MRj92
    Comunque si, mi serve la finestra già visibile.
    Continuo a non capire il perché .... sono curioso eh!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  10. #10
    Citazione:
    Originariamente inviato da MRj92
    ma scusa, non dovrei "estrarre" dalla struttura LParam il menbro flags per vedere qual'è l'azione eseguita dalla finestra? cioè se è spostamento, ridimensionamento?
    Sì, certo. Diciamo che dovrebbe essere: "la prima volta che ricevi WM_WINDOWPOSCHANGED con WINDOWPOS.flags che contiene SWP_SHOWWINDOW".
    Io ho provato così:
    codice:
    ...
    case WM_WINDOWPOSCHANGED:
               if(lParam.flags == SWP_SHOWWINDOW)           
               faiqualcosa();
    break;
    ...
    ma:
    In function `LRESULT WndProc(HWND__*, UINT, WPARAM, LPARAM)':
    `flags' has not been declared
    request for member of non-aggregate type before '==' token

    Come si fa??

    Originariamente inviato da MRj92
    Comunque si, mi serve la finestra già visibile.
    Continuo a non capire il perché .... sono curioso eh!
    è una questione grafica, per vedere l'esecuzione dei comandi!

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.