Partilhar via


Visão geral do ControlEvent

ControlEvents são análogos às mensagens do Microsoft Windows em aplicativos baseados em Win32. No entanto, em vez de criar uma função de retorno de chamada para receber mensagens do Windows e enviar mensagens do Windows com a função SendMessage, o instalador e os controles da interface do usuário publicam ControlEvents. Outros controlos e o instalador podem ser especificados para subscrever a eventos específicos, ControlEvents, que, em seguida, alterarão os atributos do controlo subscrito. Para adicionar controles funcionais a caixas de diálogo, o autor da interface do utilizador especifica a publicação de ControlEvents na tabela ControlEvent e subscreve controles para ControlEvents na tabela EventMapping.

O instalador publicará os seguintes eventos aos controlos assinantes listados na tabela EventMapping. Um controle ProgressBar ou controle Billboard normalmente se inscreve em SetProgress, o restante é inscrito por controles Text.

ActionData ControlEvent

ActionText ControlEvent

SetProgress ControlEvent

TimeRemaining ControlEvent

ScriptInProgress ControlEvent

Os eventos a seguir são publicados pelo controle quando a seleção de item é movida em um de controle SelectionTree ou DirectoryList Control. Os controles de assinatura devem estar localizados na mesma caixa de diálogo e listados na tabela EventMapping.

IgnoreChange ControlEvent

SelectionDescription ControlEvent

SelectionSize ControlEvent

SelectionPath ControlEvent

SelectionAction ControlEvent

SelectionNoItems ControlEvent

Os seguintes ControlEvents podem ser publicados ao critério de um utilizador ao interagir com um controlo PushButton ou um controlo CheckBox numa caixa de diálogo. O controle Checkbox só pode publicar os eventos AddLocal, AddSource, Remove, DoAction e SetProperty. Com versões do Windows Installer fornecidas com o Windows Server 2003 e posteriores, o de controle SelectionTree do pode publicar o DoAction, ControlEvent e SetProperty ControlEvents. O autor da interface do usuário deve listar o ControlEvent na tabela ControlEvent. O manipulador de interface do usuário do instalador é o assinante desses eventos.

AddLocal ControlEvent

AdicionarFonte EventoDeControlo

VerificarCaminhoAlvoExistente EventoDeControle

CheckTargetPath ControlEvent

DoAction ControlEvent

EnableRollback ControlEvent

TerminarDiálogo EventoDeControle

NewDialog ControlEvent

Reinstalar o ControlEvent

ReinstallMode ControlEvent

Remover ControlEvent

Reposição do Evento de Controlo

DefinirNívelDeInstalação EventoDeControle

SetProperty ControlEvent

SetTargetPath ControlEvent

SpawnDialog ControlEvent

SpawnWaitDialog ControlEvent

ValidateProductID ControlEvent

Um controlo PushButton pode publicar os seguintes eventos num controlo SelectionTree ou num controlo DirectoryList localizado na mesma caixa de diálogo. O controle PushButton deve ser listado na tabela ControlEvent e os controles de assinatura devem ser listados na tabela EventMapping.

SelectionBrowse ControlEvent

DirectoryListUp ControlEvent

DirectoryListNew ControlEvent

DirectoryListOpen ControlEvent

Os eventos de controle geralmente exigem que a interface do usuário seja executada no nível deda interface do usuáriocompleto. A maioria dos ControlEvents não funcionará com uma interface de utilizador reduzida ou uma interface de utilizador básica porque estes níveis exibem apenas caixas de diálogo não modais. Os eventos ActionText, AddSource, SetProgress, TimeRemaining e ScriptInProgress são exceções e funcionarão em uma interface do usuário reduzida ou básica. Para obter mais informações sobre os níveis da interface do usuário, consulte Níveis de interface do usuário.

Você pode executar ações personalizadas publicando um ControlEvent de um controlo PushButton ou um controlo Checkbox . Adicione um registo à tabela ControlEvent com os nomes da caixa de diálogo e do controlo que publica o ControlEvent. Esse controle deve publicar um DoAction ControlEvent notificando o instalador para executar a ação personalizada. No Windows XP ou sistemas anteriores, você não pode executar uma ação personalizada publicando um ControlEvent de um controle SelectionTree .

Para obter mais informações sobre ControlEvents específicos, consulte a lista de ControlEvents de padrão em de referência da interface do usuário.