Gentilisimi,
sono una new entry del Forum e mi diletto, per passatempo con C++ e con WIN32 API. (con WIN32 API sono all'inizio: sto consultando guide e tutorial)
Precedentemente ho risolto una problematica di calcolo strutturale che volevo tradurre in un software: l'ho già fatto in C++.
Adesso volendo dare, al software in C++, un aspetto più professionale ed elegante, tipo window, mi diletto con WIN32 API.
Ho creato una finestra con tre BUTTON di scelta, tre LABEL descrittive e un'immagine.bmp di sfondo.
Ho fatto in modo che, cliccando indifferentemente su uno dei BUTTON di scelta, spariscano i BUTTON, le LABEL e si ingrandisca
la finestra a tutto schermo e questo OK, ma non riesco a far sparire l'immagine.bmp per avere l'area Client
libera in bianco.
Ho cercato in tutto il WEB ma trovo solo spezzoni di programma ,WIN32 API, che fanno comparire immagini ma nulla di esaustivo per farle sparire.
Chiedo gentilmente se qualcuno potesse darmi qualche indicazione.
Invio per maggior chiarezza lo spezzone di
codice qui di seguito (WM_CREATE e WM_PAINT) che crea e visualizza l'immagine.
Naturalmente ho creato anche un file.rc dove ci sono i dati per l'immagine: IDB_PONTE
Grazie anticipatamente
Spezzone di codice:
case WM_CREATE:{
g_hbmPonte = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_PONTE));
if(g_hbmPonte==NULL){
MessageBox(hwnd, "Non posso caricare l'immagine!", "Errore", MB_OK | MB_ICONEXCLAMATION);
}
............
............
}
break;
case WM_PAINT:{
BITMAP bm;
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
HDC hdcMem = CreateCompatibleDC(hdc);
HBITMAP hbmOld = (HBITMAP)SelectObject(hdcMem, g_hbmPonte);
GetObject(g_hbmPonte, sizeof(bm), &bm);
BitBlt(hdc, 0, 0, bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, SRCCOPY); //Fa comparire l'immagine
SelectObject(hdcMem, hbmOld);
DeleteDC(hdcMem);
EndPaint(hwnd, &ps);
}
break;