Newsgroup: it.comp.programmare.win32
Titolo: Inviare messaggi all'applicazione

Salve a tutti.
premetto di essere un "vero" principiante con Visual C++ e spero che le mie
domande non vi sembrino troppo banali.
Vi spiego brevemente il problema: sto realizzando un'applicazione che
supporti i plug-in. Il mio problema è far comunicare questi fantomatici
plug-in (contenuti in delle DLL) con l'applicazione.
Documentandomi ho quasi risolto il problema con la tecnica utilizzata anche
da WinAmp, che consiste nell'inviare dei messaggi tramite la funzione
SendMessage. Per l'invio ho bisogno del puntatore alla finestra principale,
che rilevo tramite FindWindow("nomeclasse", NULL).
Il mio problema è che "nomeclasse", ricavato con la funzione GetClassName, è
"Afx:400000:8:9e6:0:5e5f". Perché? Cosa significa?
Il "nomeclasse" di WinAmp è "Winamp v1.x". Come faccio a cambiare quello
della mia applicazione?
Spero di essere stato sufficientemente chiaro.
Saluti
Pepin

 della mia applicazione?
ATOM RegisterClass(
  CONST WNDCLASS *lpWndClass  // class data
);
typedef struct _WNDCLASS
    UINT       style;
    WNDPROC    lpfnWndProc;
    int        cbClsExtra;
    int        cbWndExtra;
    HINSTANCE  hInstance;
    HICON      hIcon;
    HCURSOR    hCursor;
    HBRUSH     hbrBackground;
    LPCTSTR    lpszMenuName;
    LPCTSTR    lpszClassName;
} WNDCLASS, *PWNDCLASS;
Byes
FusionFai


Non sò se le classi MFC derivate da CWnd possano specificare un nome di 
classe o debbano utilizzare quello generato dai wizard.
-- 
Valter Minute
min...@inwind.it
 (the reply address of this message is invalid)

 classe o debbano utilizzare quello generato dai wizard.
certo che si può.
bisogna fare la registrazione a mano della classe nella ::PreCreateWindow()
ovvero dichiarare e riempire la struttura WNDCLASS(EX), registrarla, e memorizzare il nuovo nome della classe (che a questo punto lo
scegliamo noi) in cs.lpszClassName (se non ricordo male) (cs è la variabile di tipo CREATESTRUCT passata a PreCreateWidnow)
ciao
xaero

 della mia applicazione?
Non e` cosi` facile cambiare quel nome di classe, specialmente se stai
usando MFC con l'architettura doc-view. Io privilegerei un altro approccio,
quello di crearmi una finestra nascosta che gestisca "a parte" i messaggi.
Basta che tu derivi una nuova classe da CWnd, chiami AfxRegisterWndClass()
per registrare il nome di classe che preferisci e passi tale nome alla
funzione membro Create() quando crei la finestra. Fra l'altro gestire i
messaggi in una finestra a parte renderebbe anche tutto piu` "pulito",
anziche` buttare tutto nella finestra mainframe.
---
Bye! Lorenzo Lutti
http://antani.virtualave.net/


Perché so che esiste, ma non so esattamente cos'č. Oggi mi sono procurato un
libro ("Inside Distributed COM" - Guy e Herny Eddon - Microsoft Press - lo
conoscete?) e approfondirň l'argomento.
Grazie per il suggerimento
Pepin


Non è la stessa cosa? (ribadisco che sono "molto" principiante...)

"Lorenzo Lutti" <lorenz...@DOHtiscalinet.it> ha scritto nel messaggio
news:BzZD6.60935$s93.6...@news.infostrada.it...

Infatti sto usando proprio una struttura Doc/View e sto facendo una
confusione incredibile...
Credo che farò come suggerisci... quindi avrò ancora bisogno di voi :-)
Ciao e grazie a tutti
Pepin