Implémentation de Render, exemple
Le code suivant est utilisé pour implémenter la fonction Render :
STDMETHODIMP CGlow::Render(TimedLevel *pLevels, HDC hdc, RECT *prc)
{
COLORREF mycolor;
int mylevel = pLevels->waveform[0][0];
switch (m_nPreset)
{
case PRESET_RED:
{
mycolor = RGB( mylevel, 0, 0);
}
break;
case PRESET_GREEN:
{
mycolor = RGB( 0, mylevel, 0);
}
break;
case PRESET_BLUE:
{
mycolor = RGB( 0, 0, mylevel);
}
break;
}
HBRUSH hNewBrush = ::CreateSolidBrush( mycolor );
::FillRect( hdc, prc, hNewBrush );
if (hNewBrush)
{
::DeleteObject( hNewBrush );
}
return S_OK;
}
Voici une explication du code :
Une variable nommée MyColor est utilisée pour la couleur de l’éclat et est déclarée avec COLORREF. Toutes les couleurs doivent utiliser le type de données COLORREF .
Une variable nommée myLevel est utilisée pour l’instantané de niveau audio Wave. Cette valeur dépend du niveau de puissance réel au moment de l’instantané.
l’instruction switch est définie par la présélection que l’utilisateur a choisie sur Lecteur Windows Media. Le choix permet de définir MyColor sur la couleur souhaitée (rouge, vert ou bleu). Toutefois, la couleur exacte sera déterminée par le niveau de puissance audio. Par exemple, si la présélection rouge est choisie, la couleur est un rouge fixe, mais il sera plus clair ou plus sombre en fonction de la forme d’onde audio au moment de l’instantané. Veillez à utiliser la macro RBG pour créer votre couleur.
un pinceau est créé appelé hNewBrush et il est utilisé pour remplir le rectangle prc fourni par Lecteur Windows Media. la surface de dessin est le contexte de périphérique hdc fourni par Lecteur Windows Media.
Le pinceau est supprimé par SupprimerObjet. Veillez à toujours supprimer les stylets ou les pinceaux que vous créez.
une fois le code de rendu terminé, Lecteur Windows Media affiche les graphiques hdc dans une fenêtre déterminée par l’apparence utilisée.