Показать сообщение отдельно
Старый 23.09.2011, 00:31   #1
Daarken
Новичок
 
Аватар для Daarken
 
Регистрация: 09.07.2010
Сообщений: 7
Вы сказали Спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вопрос Dev cpp не хотят добавляться ресурсы

написал программу в VS 2010 но она не работает на компьтерах где нет вижуал студии 10 ,а точнее библиотеки msvcr100.dll.
решил использовать другой компилятор ,выбрал dev-cpp.
исправил программу немного - откомпилировал,она запустилась но изображение в приложении отсутствует и именно из-за того что не подключены изображения.
напрямую LoadImage'ом из какой либо директории открывает нормально
LoadBitmap'ом из ресурсов ни в какую


main.cpp
Код:
#include "Resource.h"


LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);


int nCmdShow=1;
char szWindowClass[ ] = "WindowsApp";
int s=0,j=0,p;
static TCHAR szTitle[] = "!!!";

static HINSTANCE hInst;
int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)

{

    HWND hwnd;               
    MSG messages;            
    WNDCLASSEX wincl;        

   
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szWindowClass;
    wincl.lpfnWndProc = WindowProcedure;      
    wincl.style = CS_DBLCLKS;                 
    wincl.cbSize = sizeof (WNDCLASSEX);

    
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;                 
    wincl.cbClsExtra = 0;                      
    wincl.cbWndExtra = 0;                      
    wincl.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);

    
    if (!RegisterClassEx (&wincl))
        return 0;

     
for(j;j<=5;j++)
    {
        hwnd = CreateWindow(szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,rand()%1000,rand()%700,500, 500,NULL,NULL,hThisInstance,NULL);
    
        s=3;
        ShowWindow(hwnd,nCmdShow);
        UpdateWindow(hwnd);
    }
    while (GetMessage (&messages, NULL, 0, 0))
    {
        TranslateMessage(&messages);
        DispatchMessage(&messages);
    }

   
    return messages.wParam;
}



LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                 
        {
       case WM_PAINT:
        HBITMAP hBm,old;
        HDC ourDC;
        if(s%2){
            hBm = LoadBitmap(hInst,"IDB_BITMAP1");
            ourDC = CreateCompatibleDC(GetDC(hwnd));
            old = (HBITMAP)SelectObject(ourDC, hBm);
            BitBlt(GetDC(hwnd), 100, 100,271,249, ourDC, 0, 0, SRCCOPY);
        }else{
            hBm= LoadBitmap(hInst,"IDB_BITMAP2");
            ourDC = CreateCompatibleDC(GetDC(hwnd));
            old = (HBITMAP)SelectObject(ourDC, hBm);
            BitBlt(GetDC(hwnd), 100, 100,291,211, ourDC, 0, 0, SRCCOPY);
            }
        break;
    case WM_DESTROY:{s++;
         p=j; 
         for(j;j<=p*2;j++)
         {
            hwnd = CreateWindow(szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,rand()%1200,rand()%700,500, 500,NULL,NULL,hInst,NULL);
            ShowWindow(hwnd,nCmdShow);    
            UpdateWindow(hwnd);
         }
    }
        default:                      
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}

resource.h
Код:
#include "windows.h"
#define IDB_BITMAP1                     100

bitmap.rc
Код:
#include "Resource.h"

IDB_BITMAP1 BITMAP "1.bmp"
IDB_BITMAP2 BITMAP "2.bmp"
подскажите пожалуйста в чем моя кривизна рук
Daarken вне форума