怎么这个图加载不成功呢?
- 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()得到的错误代码是什么?