how to draw an image (begginer)

Hi, I am a begginer in C++ and I want to draw an image in my form. I mean, I want to have a bitmap in the form's background. I am not using MFC, it's just a win32 application. What I've done so far is this:

In my project.rc file I just wrote this:

BALLBMP BITMAP "15.bmp"

In my project.cpp this is the code:

HBITMAP hbmBall;

hbmBall = LoadBitmap(hInstance, "BALLBMP");
if(!hbmBall){
   char uo[256];
itoa(GetLastError(),uo,10);MessageBox(NULL,"no se cargo el icono",uo,MB_OK);}


When I run the program, I get an error number 1814 (The specified resource name cannot be found in the image file).
What am I doing wrong?
Thank you
vittoriodelamanciaAsked:
Who is Participating?
 
AlexFMCommented:
Don't edit .rc file directly. Open Resource view, right-click Resources and select "Add resource". Select Bitmap, import. Select 15.bmp, it will be added to resource with default resource ID like IDB_BITMAP (you can change this ID). To load such bitmap in the program write:

HBITMAP hbmBall;

hbmBall = (HBITMAP)LoadImage(hInstance, MAKEINTRESOURCE(IDB_BITMAP), IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);
0
 
George TokasCommented:
>>BALLBMP BITMAP "15.bmp"
This is not needed.
>>hbmBall = LoadBitmap(hInstance, "BALLBMP");
change to:
hbmBall = LoadBitmap(hInstance, "15.bmp");
15.bmp or yourfilename.bmp must be in the same directory or you have to specify the path.
I think that way it will work.
gtokas.
0
 
vittoriodelamanciaAuthor Commented:
hi gtokas! No, it doesn't work. I had tried that before, but it doesn't work. I get the same 1814 error code.
I am using Microsoft Visual C++, and I it is a Win32 application. I don't know why it doesn't work!
0
 
vittoriodelamanciaAuthor Commented:
Excellent!! And now to paint the form?
0
 
AlexFMCommented:
           case WM_PAINT:
                {
                    hdc = BeginPaint(hWnd, &ps);
                   
                    HBITMAP hbmBall;
                    hbmBall = (HBITMAP)LoadImage(hInst, MAKEINTRESOURCE(IDB_BITMAP), IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);
                   
                    BITMAP bmp;
                    GetObject(hbmBall, sizeof(BITMAP), &bmp);
                   
                    HDC hmemDC = CreateCompatibleDC(hdc);
                    SelectObject(hmemDC, hbmBall);
                   
                    BitBlt(hdc, 0, 0, bmp.bmWidth, bmp.bmHeight, hmemDC, 0, 0, SRCCOPY);
                   
                    EndPaint(hWnd, &ps);

                    DeleteDC(hmemDC);
                    DeleteObject(hbmBall);
                }
                break;
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.