读书人

如何这个图加载不成功呢

发布时间: 2012-06-28 15:20:03 作者: rapoo

怎么这个图加载不成功呢?

C/C++ code
#include <windows.h>//#include <windows.h>LRESULT CALLBACK WndProc    (HWND, UINT, WPARAM, LPARAM) ;//LRESULT CALLBACK ScrollProc (HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,                    PSTR szCmdLine, int iCmdShow){     static TCHAR szAppName[] = TEXT ("Colors1") ;     HWND         hwnd ;     MSG          msg ;     WNDCLASS     wndclass ;          wndclass.style         = CS_HREDRAW | CS_VREDRAW ;     wndclass.lpfnWndProc   = WndProc ;     wndclass.cbClsExtra    = 0 ;     wndclass.cbWndExtra    = 0 ;     wndclass.hInstance     = hInstance ;     wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;     wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH) ;     wndclass.lpszMenuName  = NULL ;     wndclass.lpszClassName = szAppName ;          if (!RegisterClass (&wndclass))     {          MessageBox (NULL, TEXT ("This program requires Windows NT!"),                      szAppName, MB_ICONERROR) ;          return 0 ;     }          hwnd = CreateWindow (szAppName, TEXT ("Color Scroll"),                          WS_OVERLAPPEDWINDOW,                          CW_USEDEFAULT, CW_USEDEFAULT,                          CW_USEDEFAULT, CW_USEDEFAULT,                          NULL, NULL, hInstance, NULL) ;          ShowWindow (hwnd, iCmdShow) ;     UpdateWindow (hwnd) ;          while (GetMessage (&msg, NULL, 0, 0))     {          TranslateMessage (&msg) ;          DispatchMessage  (&msg) ;     }     return msg.wParam ;}LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){    HDC hdc;    HDC mhdc;    static cxClient, cyClient;    static HINSTANCE hInstance;    static HBITMAP hBitMap;    PAINTSTRUCT ps;     switch(message)     {     case WM_CREATE:         hInstance = ((LPCREATESTRUCT)lParam)->hInstance;         return 0;     case WM_SIZE:         cxClient = LOWORD(lParam);         cyClient = HIWORD(lParam);         return 0;      case WM_PAINT:          hdc = BeginPaint(hwnd, &ps);          hBitMap = (HBITMAP)LoadImage(hInstance,TEXT("D:\\我的文档\\桌面\\100008120993473.bmp"), IMAGE_BITMAP, cxClient, cyClient, LR_LOADFROMFILE);          mhdc = CreateCompatibleDC(hdc);          SelectObject(hdc, hBitMap);          BitBlt(hdc, 0, 0, cxClient, cyClient, mhdc, 0, 0, SRCCOPY);          DeleteDC(mhdc);          EndPaint(hwnd, &ps);          return 0;      case WM_DESTROY:          PostQuitMessage(0);          return 0;     }     return DefWindowProc(hwnd, message, wParam, lParam);    }

VC板块太冷清了,所以在这求教!谢了

[解决办法]
你为什么在每次PAINT的时候都要从本地文件里加载一次呢?
为什么不在WM_CREATE的时候加载一次呢
[解决办法]
你的bmp图片是怎么来的 ,我以前用windows新建的bmp图片加载不了,用格式化工厂转化来的bmp图片却可以加载 我遇到的是格式问题。

看看一下 用GetLastError()得到的错误代码是什么?

读书人网 >C++

热点推荐