首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

windows编程有关问题 希望指点

2012-03-08 
windows编程问题希望指点想绘制一副图片在窗体上图片是1.map可是绘制不出来不知道哪出问题了望懂得人指点。

windows编程问题 希望指点
想绘制一副图片在窗体上 图片是1.map 可是绘制不出来 不知道哪出问题了 望懂得人指点。。。
#include<windows.h>

HBITMAP hbmp;
HDC mdc;

void MyPaint (HDC hdc); //绘图函数
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[]=TEXT ("HelloWin"); //窗体类的名称
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;

RegisterClass (&wndclass); //注册窗体类

HWND hwnd;

HDC hdc;

hwnd= CreateWindow(szAppName, //创建窗体
"The Hello Program",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
0,
CW_USEDEFAULT,
0,
NULL,
NULL,
hInstance,
NULL);
   
ShowWindow (hwnd, iCmdShow);
UpdateWindow (hwnd);
   
  hdc = GetDC(hwnd);
  mdc = CreateCompatibleDC (hdc);

hbmp = (HBITMAP) LoadImage (NULL, "1.bmp", IMAGE_BITMAP, 600, 450, LR_LOADFROMFILE);
SelectObject (mdc,hbmp);
   
MyPaint (hdc);
ReleaseDC (hwnd, hdc);

MSG msg;
while(GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);  
}

return 0;
}

void MyPaint (HDC hdc)
{
BitBlt (hdc, 0, 0, 600, 450, mdc, 0, 0, SRCCOPY);
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
switch (message)
{
case WM_CREATE:
break;
case WM_PAINT:
hdc=BeginPaint(hwnd, &ps);
  MyPaint (hdc);
EndPaint(hwnd, &ps);
break;
case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"是否真的结束程序?","HelloWin",MB_YESNO))
{
  DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
DeleteDC (mdc);
DeleteObject(hbmp);
PostQuitMessage(0);
break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);

}
return 0;

}

[解决办法]
你的错误提示呢?

热点排行