Bonjour,
Voilà ce que j'utilise (Visual C++ 6.0) et ça fonctionne bien :
BOOL CALLBACK MainProc
(
HWND hWnd // E:handle de la fenêtre
,UINT uiMsg // E:message à traiter
,WPARAM wParam // E:paramètre WPARAM
,LPARAM lParam // E:paramètre LPARAM
) // S:code de retour
{
static HBITMAP hBitmapBg = NULL;
static HBRUSH hBrushBg = NULL;
switch(uiMsg)
{
// --- Initialiser la boîte de dialogue
case WM_INITDIALOG :
{
...
// --- Créer le bitmap pour le fond
// --- (BITMAP_??? = identificateur dans le fichier des ressources)
hBitmapBg = (HBITMAP)LoadImage(gc_hInstance,(LPCTSTR)"BITMAP_???",IMAGE_BITMAP,0,0,0);
hBrushBg = CreatePatternBrush(hBitmapBg);
...
}
return TRUE;
// --- Fond de la boîte de dialogue
case WM_CTLCOLORDLG :
return (BOOL)hBrushBg;
// --- Contrôles STATIC
// --- (pour voir l'image de fond sous les textes)
case WM_CTLCOLORSTATIC :
SetBkMode((HDC)wParam,TRANSPARENT);
return (BOOL)hBrushBg;
case ...
}
...
}
Jean-François