我将640×480大小的客户区划分为20×15个格子(每个格子大小为32×32像素),
并给每个格子设立了一个标志位1或0。我想要实现的效果是:通过循环遍历每一个格子,倘若遍历到的格子标志位为1,则在该格子位置上贴一张图,大小为32×32像素(即正好覆盖该格子)。
一开始我设置了两个局部变量row和col,在遍历判断某格子的标志位为1时,使用bitblt函数:invoke BitBlt, hDC, row, col, 32, 32, hMDC, 0, 0, SRCCOPY。
但是后来得知BITBLT函数中第2、3两个控制客户区位置的参数必须是常量,试验后也发现,我这样的调用方式尽管编译能通过,但是运行后并不能贴图。
我看了罗云彬老师的《WINDOWS汇编语言程序设计》,其中的例子中也用到了数据块传送函数(Patblt、Bitblt等)进行贴图,但是例子中所有的贴图位置都是直接指定的常量(如:invoke BitBlt,hDC,0,0,640,480,hMDC,0,0,SRCCOPY),没有我这种需要控制贴图位置的情况,在网上找了一些资料也得不到解答。
请问大神们,怎么才能实现在客户区指定地点贴图呢?(贴图地点不是常量)
WIN32汇编在客户区某位置贴图(贴图位置由变量指定)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- threenewbee 2016-06-05 05:25关注
查了下,BitBlt的定义是 BOOL BitBlt(int x,int y,int nWidth,int nHeight,CDC*pSrcDC,int xSrc,int ySrc,DWORDdwRop); 你的参数不对。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 perl MISA分析p3_in脚本出错
- ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
- ¥15 ubuntu虚拟机打包apk错误
- ¥199 rust编程架构设计的方案 有偿
- ¥15 回答4f系统的像差计算
- ¥15 java如何提取出pdf里的文字?
- ¥100 求三轴之间相互配合画圆以及直线的算法
- ¥100 c语言,请帮蒟蒻写一个题的范例作参考
- ¥15 名为“Product”的列已属于此 DataTable
- ¥15 安卓adb backup备份应用数据失败