Procedura: includere un controllo ActiveX in una risorsa finestra di dialogo

Aggiornamento: novembre 2007

Quando si utilizza Visual Studio per progettare controlli ActiveX per dispositivi, è necessario eseguire alcuni passaggi aggiuntivi. L'Editor risorse richiede che il controllo sia registrato nel computer desktop per poterlo modificare in fase di progettazione. Non è inoltre possibile registrare controlli dei dispositivi nel computer desktop. I passaggi seguenti offrono un'esperienza in fase di progettazione alternativa. Le procedure descritte di seguito presuppongono che il progetto controllo ActiveX e il progetto host siano già disponibili e che il controllo ActiveX sia ospitato in una finestra di dialogo.

Nota:

Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.

Per aggiungere controlli ActiveX utilizzando l'editor finestre

  1. Nell'editor finestre aprire la finestra di dialogo del progetto host.

  2. Dalla Casella degli strumenti trascinare un controllo personalizzato nella finestra di dialogo.

  3. Posizionare e ridimensionare il controllo personalizzato nella finestra di dialogo in modo da ottenere l'aspetto desiderato per il controllo ActiveX.

  4. Fare clic con il pulsante destro del mouse sul controllo personalizzato, quindi scegliere Proprietà.

  5. Nella proprietà Classe incollare il GUID del controllo ActiveX. Ricordarsi di includerlo sempre tra parentesi graffe "{...}".

  6. In Esplora soluzioni fare clic con il pulsante destro del mouse sul file Nome progetto.RC2, quindi scegliere Visualizza codice.

  7. Nella sezione Aggiungere manualmente le risorse modificate aggiungere il codice seguente. Il controllo personalizzato richiede una sezione di inizializzazione della finestra di dialogo per essere visualizzato correttamente. Il contenuto della sezione di inizializzazione effettiva della finestra di dialogo non viene utilizzato. Ricordarsi di sostituire <project name> con il nome del progetto.

    IDD_<project name>_DIALOG DLGINIT BEGIN IDC_CUSTOM1, 0x376, 22, 0 0x0000, 0x0000, 0x0800, 0x0000, 0x094d, 0x0000, 0x043d, 0x0000, 0x0013, 0xcdcd, 0xcdcd, 0
    
  8. Compilare ed eseguire il progetto host. Distribuire e registrare il controllo ActiveX nel dispositivo di destinazione.

Per utilizzare un metodo alternativo per l'hosting di controlli ActiveX

  1. Registrare la classe finestra AtlAxWin80 chiamando la funzione AtlAxWinInit in un punto dell'applicazione.

    Le applicazioni ATL eseguono questa operazione nel codice di inizializzazione del modulo. Le applicazioni Win32 devono chiamare questa funzione nella funzione WinMain. Per le applicazioni MFC, eseguire i passaggi seguenti:

    1. Fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni, scegliere Aggiungi,quindi Classe.

    2. Fare clic su Aggiungi supporto ATL a MFC (sotto l'intestazione dello Smart Device).

    3. Aggiungere la chiamata alla funzione AtlAxWinInit prima del metodo InitInstance della classe dell'applicazione host.

  2. In una risorsa finestra di dialogo (ad esempio una finestra di dialogo ATL, un controllo composito o una finestra di dialogo MFC):

    1. Trascinare un controllo personalizzato dalla Casella degli strumenti.

    2. Impostare la proprietà della classe della finestra su AtlAxWin80.

    3. Impostare il titolo sul GUID racchiuso tra parentesi graffe o sul ProgID.

  3. Per MFC, aggiungere atl.lib come input di collegamento aggiuntivo.

  4. Per MFC, aggiungere queste righe all'opzione Distribuzione | File aggiuntivi. Sebbene le righe siano già presenti per le librerie a collegamento dinamico, devono essere aggiunte per le librerie MFC a collegamento statico.

    msvcr80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\$(ProjectName)|0
    atl80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\$(ProjectName)|0
    msvcr80d.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\$(ProjectName)|0
    

Vedere anche

Altre risorse

Programmazione per dispositivi tramite Visual C++