windows编程问题 希望指点

yahua 2012-02-24 09:16:24
想绘制一副图片在窗体上 图片是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;

}
...全文
50 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yahua 2012-02-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ppsharp 的回复:]

恩,应该是格式不对,我刚拿一张jpg的改成bmp的就不能绘制了。
[/Quote]

问题解决咯 就是格式问题呢 谢咯
ppsharp 2012-02-24
  • 打赏
  • 举报
回复
恩,应该是格式不对,我刚拿一张jpg的改成bmp的就不能绘制了。
yahua 2012-02-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ppsharp 的回复:]

我试过了你的代码,完全可以绘制图片在窗体上。

是不是1.bmp文件不在你的程序文件夹下面?
[/Quote]
我就在放在Debug文件夹里面啊 外面的我也放了, 难道是图片的格式不对吗 我是直接从jpg直接改后缀名成bmp的
yahua 2012-02-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ppsharp 的回复:]

你的错误提示呢?
[/Quote]
没有错误提示
ppsharp 2012-02-24
  • 打赏
  • 举报
回复
你的错误提示呢?
ppsharp 2012-02-24
  • 打赏
  • 举报
回复
我试过了你的代码,完全可以绘制图片在窗体上。

是不是1.bmp文件不在你的程序文件夹下面?

64,680

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧