Implementando CEchoPropPage::OnInitDialog
[O recurso associado a esta página, Reprodutor Multimídia do Windows SDK, é um recurso herdado. Foi substituído pelo MediaPlayer. O MediaPlayer foi otimizado para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o MediaPlayer em vez de Reprodutor Multimídia do Windows SDK, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
O método CEchoPropPage::OnInitDialog é implementado em EchoPropPage.cpp. Ele é executado quando a caixa de diálogo da página de propriedades é invocada. O código nesse método precisa recuperar os valores de propriedade atuais e exibi-los na caixa de edição correta. O código de exemplo do assistente de plug-in fornece uma implementação para uma única propriedade. Você pode modificar esse código para uma das propriedades de exemplo do Echo e, em seguida, adicionar código para recuperar o segundo valor da propriedade.
Declarando as variáveis do método OnInitDialog
Primeiro, você deve remover a declaração de fScaleFactor e substituí-la pelas seguintes declarações de variável:
DWORD dwDelayTime = 1000; // Default delay time.
DWORD dwWetmix = 50; // Default wet mix DWORD.
double fWetmix = 0.50; // Default wet mix double.
Recuperando os valores atuais do plug-in
O código deve tentar recuperar os valores de propriedade atuais do plug-in Echo. O exemplo a seguir tenta recuperar cada propriedade:
if (m_spEcho)
{
m_spEcho->get_delay(&dwDelayTime);
m_spEcho->get_wetmix(&fWetmix);
// Convert wet mix from double to DWORD.
dwWetmix = (DWORD)(fWetmix * 100);
}
A caixa de diálogo exibe o valor do nível de efeitos para o usuário como um inteiro, mas o plug-in armazena o valor como um número de ponto flutuante. Portanto, o código converte o valor de ponto flutuante em um valor DWORD .
Recuperando os valores atuais do Registro
Se a página de propriedades não puder recuperar os valores atuais do plug-in, ela deverá tentar lê-los do registro. O código a seguir lê cada valor de propriedade:
else // Otherwise, read values from registry
{
CRegKey key;
LONG lResult;
lResult = key.Open(HKEY_CURRENT_USER, kszPrefsRegKey, KEY_READ);
if (ERROR_SUCCESS == lResult)
{
DWORD dwValue = 0;
// Read the delay time.
lResult = key.QueryValue(dwValue, kszPrefsDelayTime );
if (ERROR_SUCCESS == lResult)
{
dwDelayTime = dwValue;
}
// Read the wet mix value.
lResult = key.QueryValue(dwValue, kszPrefsWetmix );
if (ERROR_SUCCESS == lResult)
{
dwWetmix = dwValue;
}
}
}
Observe o uso das constantes do Registro que você criou anteriormente.
Exibindo os valores para o usuário
Por fim, a página de propriedades deve exibir os valores nos controles corretos da caixa de edição. O código de exemplo a seguir demonstra isso:
TCHAR szStr[MAXSTRING];
// Display the delay time.
_stprintf_s(szStr, MAXSTRING, _T("%u"), dwDelayTime);
SetDlgItemText(IDC_DELAYTIME, szStr);
// Display the effect level.
_stprintf_s(szStr, MAXSTRING, _T("%u"), dwWetmix);
SetDlgItemText(IDC_WETMIX, szStr);
Tópicos relacionados
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de