贴图片的奇怪问题。 我把贴图片的功能写了一个自己的函数来实现的。这个自己写的函数主要用的贴图函数是BitBlt。然后在WM_PAINT消息里面, 连续两次调用了这个自己写的函数,(函数包括了那些PAINTSTRUCT ps;等描述)目的是贴一个图片,然后再在这个图片上显示另一张图片。奇怪的是,第二张图片,怎么也显示不出来,而只能显示第一张。请问这是怎么回事? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 写了如下贴图片函数:void draw(pic id){PAINTSTRUCT ps;HDC hdc;hdc = BeginPaint(hWnd, &ps);...::BitBlt //绘图处理EndPaint(hWnd, &ps);}以上这个函数在WM_PAINT消息里面执行了两次,如下:case WM_PAINT: draw(pic id1);draw(pic id2);break;然后在界面上只看到了第一副图片,没有显示出第二张图片。 把hdc = BeginPaint(hWnd, &ps); EndPaint(hWnd, &ps); 放到draw函数外面吧。draw()函数改成draw(HDC hdc, pic id); 主要原因是在一个WM_PAINT消息里只能用一次BeginPaint,第二次调用取得的HDC已经没法再用于绘制了,所以代码应该改成只调用一次BeginPaint 把BeginPaint和EndPaint放到draw函数外面,WM_PAINT消息里面调用了BeginPaint和EndPaint后再调用BeginPaint,函数是返回失败的. C++如何调用WebService 为什么Struct初始化编译通不过? opengl显示问题 失业了的IT民工 高手请进.问了好久还没解决的.如何实现动态改变编辑框的背景颜色? 如何复制目录下所有的文件夹和文件到另一个目录下? GetSubMenu内断言为什么会失败? 紧急求援:帮忙看一下菜鸟的问题!!! 多媒体定时器的问题 程序调用后的一系列问题!? 想学VC++,难不难? IE连接网络的时候的SOCKET是什么类型的(阻塞?非阻塞?。。。)
{
PAINTSTRUCT ps;
HDC hdc;
hdc = BeginPaint(hWnd, &ps);...::BitBlt //绘图处理EndPaint(hWnd, &ps);
}以上这个函数在WM_PAINT消息里面执行了两次,如下:
case WM_PAINT: draw(pic id1);draw(pic id2);break;然后在界面上只看到了第一副图片,没有显示出第二张图片。
EndPaint(hWnd, &ps); 放到draw函数外面吧。draw()函数改成draw(HDC hdc, pic id);