Direct Draw 画到主表盘的图,居然在移动窗口的时候不跟着走
Direct Draw 画到主表面的图,居然在移动窗口的时候不跟着走
十分奇葩, win32 窗口的绘图代码我都是在PAINT 下绘制的,不对吗?
要不然怎么在窗体最小最大化的情况下重绘现场
rc1.top = 0;
rc1.left = 0;
rc1.right = 1024;
rc1.bottom = 768;
rc2.top = 0;
rc2.left = 200;
rc2.right = 620;
rc2.bottom = 768;
lpDDSPrimary->Blt(&rc1,lpDDSBJ,NULL,DDBLT_WAIT,NULL); //背景
lpDDSPrimary->Blt(&rc2,lpDDSRW,NULL,DDBLT_WAIT,NULL); //人物
------解决方案--------------------
//下面动作执行的时候都要更新窗口,没有看到你的翻转页面的代码
case WM_MOVE: break;
case WM_SIZE: break;
------解决方案--------------------
在paint下绘制是没有问题的。Present()执行了吗?,还要弄清楚窗口区域跟屏幕区域
GetClientRect( s_hWnd, &s_rcClient );
ClientToScreen( s_hWnd, (POINT*)&s_rcClient );
------解决方案--------------------
大肚子原因还是窗口区域跟页面尺寸不匹配,你自己慢慢倒腾吧,不是一天两天能搞明白的。
------解决方案--------------------
桌面分辨率
我的是1280*1024,主页面也要是这个尺寸。
十分奇葩, win32 窗口的绘图代码我都是在PAINT 下绘制的,不对吗?
要不然怎么在窗体最小最大化的情况下重绘现场
rc1.top = 0;
rc1.left = 0;
rc1.right = 1024;
rc1.bottom = 768;
rc2.top = 0;
rc2.left = 200;
rc2.right = 620;
rc2.bottom = 768;
lpDDSPrimary->Blt(&rc1,lpDDSBJ,NULL,DDBLT_WAIT,NULL); //背景
lpDDSPrimary->Blt(&rc2,lpDDSRW,NULL,DDBLT_WAIT,NULL); //人物
------解决方案--------------------
//下面动作执行的时候都要更新窗口,没有看到你的翻转页面的代码
case WM_MOVE: break;
case WM_SIZE: break;
------解决方案--------------------
在paint下绘制是没有问题的。Present()执行了吗?,还要弄清楚窗口区域跟屏幕区域
GetClientRect( s_hWnd, &s_rcClient );
ClientToScreen( s_hWnd, (POINT*)&s_rcClient );
------解决方案--------------------
大肚子原因还是窗口区域跟页面尺寸不匹配,你自己慢慢倒腾吧,不是一天两天能搞明白的。
------解决方案--------------------
桌面分辨率
我的是1280*1024,主页面也要是这个尺寸。