PDA

View Full Version : [MFC-ActiveX] Problema con COleControl::CreateControl


GordonFreeman
26-05-2007, 18:06
Ho creato una mia activex in cui voglio inserire , a sua volta, un controllo activex di Windows Media Player.
Ho scritto il codice di prova seguente:

void CMyCtrl::OnLButtonDown(UINT u,CPoint point){

/* quando l'utente schiaccia il pulsante sinistro del mouse,
viene chiamato questo metodo che tenta di
inserire il controllo WMP dentro la finestra della mia activex*/

CWnd *pChild = new CWnd(); // sottofinestra in cui inserire WMP

/* rc contiene le dimensioni della sottofinestra*/
RECT rc;
GetClientRect(&rc);

pChild->CreateControl("WMPlayer.OCX.7","",WS_VISIBLE,rc,this,1234);

/* la chiamata precedente non ha alcun effetto,
il controllo non viene visualizzato*/


/*
// se invece provo a creare una normale sottofinestra senza un controllo, funziona
if(!pChild->Create(AfxRegisterWndClass(0,0,
(HBRUSH)GetStockObject(BLACK_BRUSH)),
"",WS_CHILD | WS_VISIBLE,CRect(0,0,200,200),this,1234)){

return;

}
*/

// ...



Il controllo WMPlayer.OCX.7 è installato nella mia macchina.
Ho provato a caricarlo in IE direttamente in una pagina web (con il tag <object>...) e funziona.. invece se lo carico io nel mio active x, il controllo non viene visualizzato... come mai??
e ho provato anche a caricare altri controlli, ma niente

se qualcuno mi spiega come fare a inserire uno o più controlli activex in un controllo activex, gliene sarei grato.
ciao

GordonFreeman
27-05-2007, 13:51
ho dimenticato una cosa: la chiamata a CWnd::CreateControl restituisce un valore diverso da zero, indicando successo, ma il controllo poi non viene visualizzato.

comunque non c'è nessuno che abbia mai provato ad inserire una activex in una activex?
se qualcuno magari mi posta il codice di una activex di esempio che lo fa, lo ringrazio in anticipo