C言語, win32でツールを開発している者です。
ウィンドウの表示は上手くいくのですが、画像が表示されません。
画像は実行ファイルと同じフォルダに置いてあります。
環境はsurface pro2, borland c++ compiler(Version 5.5)です。
このコードは正しいのでしょうか。
どなたか解決策をお願いします。
lang
1#include <windows.h> 2#include <winuser.h> 3 4#define APP_NAME TEXT("CreateFlickBookImage") 5#define BMP_FILE TEXT("BackgroundGrid.bmp") 6 7LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) 8{ 9 HDC hdc; 10 PAINTSTRUCT ps; 11 static HDC hMemDC; 12 static HBITMAP hBitmap; 13 static BITMAP bitmap; 14 15 switch(uMsg) { 16 case WM_DESTROY : 17 DeleteDC(hMemDC); 18 DeleteObject(hBitmap); 19 PostQuitMessage(0); 20 return 0; 21 case WM_CREATE : 22 hMemDC = CreateCompatibleDC(NULL); 23 hBitmap = LoadImage(NULL, BMP_FILE, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); 24 SelectObject(hMemDC, hBitmap); 25 GetObject(hBitmap, sizeof(BITMAP), &bitmap); 26 return 0; 27 case WM_PAINT : 28 hdc = BeginPaint(hWnd, &ps); 29 BitBlt(hdc, 0, 0, bitmap.bmWidth, bitmap.bmHeight, hMemDC, 0, 0, SRCCOPY); 30 EndPaint(hWnd, &ps); 31 return 0; 32 } 33 34 return DefWindowProc(hWnd, uMsg, wParam, lParam); 35} 36 37int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) 38{ 39 WNDCLASS wc; 40 HWND hWnd; 41 MSG msg; 42 43 //WNDCLASSの初期化 44 wc.style = CS_HREDRAW | CS_VREDRAW; 45 wc.lpfnWndProc = WindowProc; 46 wc.cbClsExtra = 0; 47 wc.cbWndExtra = 0; 48 wc.hInstance = hInstance; 49 wc.hIcon = NULL; 50 wc.hCursor = NULL; 51 wc.hbrBackground = GetStockObject(WHITE_BRUSH); 52 wc.lpszMenuName = NULL; 53 wc.lpszClassName = APP_NAME; 54 55 //ウィンドウクラスの登録 56 if(!RegisterClass(&wc)) { 57 MessageBox(NULL, TEXT("ウィンドウクラスの登録に失敗しました"), NULL, MB_OK); 58 return 1; 59 } 60 61 //ウィンドウの生成 62 hWnd = CreateWindow(APP_NAME, TEXT("パラパラ漫画画像作成ツール"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 63 NULL, NULL, hInstance, NULL); 64 65 if(hWnd == NULL) { 66 MessageBox(NULL, TEXT("ウィンドウの生成に失敗しました"), NULL, MB_OK); 67 return 1; 68 } 69 70 //ウィンドウの表示 71 ShowWindow(hWnd, SW_SHOW); 72 73 while(GetMessage(&msg, NULL, 0, 0) > 0) { //メッセージキューからメッセージを取得 74 DispatchMessage(&msg); 75 } 76 77 return msg.wParam; 78} 79 80コード
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。