为什么我写的代码显示不了图片?
代码如下:
#include "stdafx.h"
#include "resource.h"
#define MAXN 100
HINSTANCE hInstance;
MSG msg;
char lpszClassName[]="linkgame";
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
void OnLBUTTONDOWN(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);
void OnPaint(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);
int arrGame[MAXN][MAXN];
HBITMAP hBm;
HDC hdcBm;
BITMAP Bm;
class CFrameWnd
{
public:
HWND hWnd;
public:
int RegisterWindow();
void Create(LPCTSTR lpClassName,LPCTSTR lpWindowName);
void ShowWindow(int nCmdShow);
void UpdateWindow();
};
int CFrameWnd::RegisterWindow()
{
WNDCLASS wc;
wc.style=CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc=WndProc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hInstance=hInstance;
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName=NULL;
wc.lpszClassName=lpszClassName;
return RegisterClass(&wc);
}
void CFrameWnd::Create(LPCTSTR lpClassName, LPCTSTR lpWindowName)
{
RegisterWindow();
hWnd=CreateWindow(lpszClassName,
lpWindowName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
0,
CW_USEDEFAULT,
0,
NULL,
NULL,
hInstance,
NULL);
}
void CFrameWnd::ShowWindow(int nCmdShow)
{
::ShowWindow(hWnd,nCmdShow);
}
void CFrameWnd::UpdateWindow()
{
::UpdateWindow(hWnd);
}
class CWinApp
{
public:
CWinApp *m_pCurWinApp;
public:
CWinApp();
~CWinApp();
public:
CFrameWnd *m_pMainWnd;
public:
virtual bool InitInstance(int nCmdShow);
int Run();
};
CWinApp::CWinApp()
{
m_pCurWinApp=this;
}
bool CWinApp::InitInstance(int nCmdShow)
{
m_pMainWnd=new CFrameWnd;
m_pMainWnd->Create(NULL,"连连看");
m_pMainWnd->ShowWindow(nCmdShow);
m_pMainWnd->UpdateWindow();
return true;
}
int CWinApp::Run()
{
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
CWinApp::~CWinApp()
{
delete m_pMainWnd;
}
CWinApp MyApp;
CWinApp *AfxGetApp()
{
return MyApp.m_pCurWinApp;
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
int ResultCode=-1;
CWinApp *pApp;
pApp=AfxGetApp();
pApp->InitInstance(nCmdShow);
return ResultCode=pApp->Run();
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hdc;
switch(message)
{
case WM_CREATE:
hdc = GetDC(hWnd);
hBm = LoadBitmap(hInstance,MAKEINTRESOURCE(IDB_BITMAP1));
hdcBm = CreateCompatibleDC(hdc);
SelectObject(hdcBm,hBm);
GetObject(hBm,sizeof(BITMAP),&Bm);
ReleaseDC(hWnd,hdc);
break;
case WM_LBUTTONDOWN:
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
BitBlt(hdc,0,0,Bm.bmWidth,Bm.bmHeight,hdcBm,0,0,SRCCOPY);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd,message,wParam,lParam);
}
return 0;
}