Seleção atual

A seleção atual é um item de lista selecionado pelo usuário; o texto selecionado é exibido no campo de seleção da caixa de combinação. No entanto, no caso de uma caixa de combinação simples ou um drop-down caixa de combinação, a seleção atual é apenas um formulário de entrada de usuário possíveis em uma caixa de combinação. O usuário também pode digitar texto no campo de seleção.

A seleção atual é identificada pelo índice baseado em zero do item de lista selecionado. Um aplicativo pode definir e recuperá-lo a qualquer momento. O procedimento de caixa de diálogo ou janela pai recebe notificações quando o usuário altera a seleção atual para uma caixa de combinação. A caixa de diálogo ou janela de pai não é notificada quando o aplicativo altera a seleção.

Quando uma caixa de combinação é criada, não há nenhuma seleção atual. Isso também é verdadeiro para uma caixa de combinação simples ou soltar-para baixo, se o usuário tiver editado o conteúdo do campo a seleção. Para definir a seleção atual, um aplicativo envia a mensagem CB_SETCURSEL para a caixa de combinação. Um aplicativo também pode usar a mensagem CB_SELECTSTRING para definir a seleção atual como um item da lista cuja seqüência de caracteres começa com uma Cadeia de caracteres especificada. Para determinar a seleção atual, um aplicativo envia CB_GETCURSEL mensagem para a caixa de combinação. Se não houver nenhuma seleção atual, essa mensagem retornará CB_ERR.

Quando o usuário altera a seleção atual na caixa de combinação, o procedimento de caixa de diálogo ou janela pai recebe uma mensagem WM_COMMAND com a mensagem de notificação de CBN_SELCHANGE no alto palavra de ordem wParam parâmetro. Essa mensagem de notificação não é enviada quando a seleção atual é definida usando a mensagem CB_SETCURSEL.

Uma caixa de combinação Soltar-para baixo ou caixa drop-down list envia a notificação de CBN_CLOSEUP para o procedimento caixa de diálogo ou janela de pai quando fecha a lista Soltar-para baixo. Se o usuário alterou a seleção atual, caixa de combinação também envia a notificação de CBN_SELCHANGE quando fecha a lista Soltar-para baixo. Para executar um processo específico sempre que o usuário seleciona um item da lista, você pode manipular a mensagem de notificação de CBN_SELCHANGE ou CBN_CLOSEUP. Normalmente, você esperaria para a notificação de CBN_CLOSEUP antes de processar uma alteração na seleção atual. Isso pode ser especialmente importante se uma quantidade significativa de processamento é necessária.

Um aplicativo também pode processar as mensagens de notificação CBN_SELENDOK e CBN_SELENDCANCEL. O sistema envia CBN_SELENDOK quando o usuário seleciona um item da lista, ou seleciona um item e, em seguida, fecha a lista. Isso indica que o usuário tenha terminado, e a seleção deve ser processada. CBN_SELENDCANCEL é enviado quando o usuário seleciona um item, mas, em seguida, seleciona um outro controle, pressiona a tecla escape enquanto a lista Soltar-para baixo estiver aberta ou fecha a caixa de diálogo. Isso indica que a seleção do usuário deve ser ignorada. Na caixa de combinação simples, CBN_SELENDOK é enviada antes de cada mensagem CBN_SELCHANGE. Se o estilo de WS_EX_NOPARENTNOTIFY janela for especificado para a caixa de combinação, o sistema não envia mensagens CBN_SELENDOK e CBN_SELENDCANCEL.

Na caixa de combinação simples, o sistema envia a mensagem de notificação CBN_DBLCLK quando o usuário clica Duplo em um item da lista. Em uma caixa de combinação suspensa ou lista suspensa, um único clique oculta a lista, portanto, não é possível clicar duas vezes um item.