2个PICTUREBOX叠一起,如何让上一个PICTUREBOX透明??

问题描述

实际问题是我要做一个小人,在地图上走,下面的PICTUREBOX在动。。。我把上面的PICTUREBOX改成TRANSPARENT后没用,他貌似是对于FORM1的底色进行透明。。如何做,急阿。

解决方案

解决方案二:
那就同同一个控件,让那个小人动起来就完了。重写OnPaint事件。
解决方案三:
看看这个方法行不行.
解决方案四:
下面的控件每次改变后刷新一下上面的控件。
解决方案五:
引用1楼hikaliv的回复:

那就同同一个控件,让那个小人动起来就完了。重写OnPaint事件。

不是很明白。。。。。。没有学过额。。我对这个是超级新手额,没有系统学过,完全自己在摸索(因为老师布置的课程项目要我们自己搞个小游戏,但是他从没讲过任何关于窗体设计的东西)。。。我做了个RPG,现在人物行走的时候是下面一张比FORM更大尺寸的地图在上下左右移,上面小人一直在画面中间走。。。。。
解决方案六:
引用3楼cnzdgs的回复:

下面的控件每次改变后刷新一下上面的控件。

这个我想过。。。上面的底色根本不是下面的PICTUREBOX啊。。。是FORM的底色。。。
解决方案七:
引用4楼hry1225的回复:

引用1楼hikaliv的回复:那就同同一个控件,让那个小人动起来就完了。重写OnPaint事件。不是很明白。。。。。。没有学过额。。我对这个是超级新手额,没有系统学过,完全自己在摸索(因为老师布置的课程项目要我们自己搞个小游戏,但是他从没讲过任何关于窗体设计的东西)。。。我做了个RPG,现在人物行走的时候是下面一张比FORM更大尺寸的地图在上下左右移,上面小人一直在画面中间走。。。。。

我觉得你现在这种想法太好了。按理说……你上面的给透明后,怎么可能是FORM是底色呢……不是也不管了,反正你现在的想法挺好。最好的方法就是ONPAINT了。你查一下MSDN就完了,就是OVERRIDE一下那个PROTECTED方法。每个控件都有的。你在这个方法中画上这个小人和底图就可以了。
解决方案八:
重载OnPaint方法:protectedoverridevoidOnPaint(PaintEventArgse)pictureBox1.Invalidate();
解决方案九:
引用3楼cnzdgs的回复:

下面的控件每次改变后刷新一下上面的控件。

我尝试过了。。。我把PICTUREBOX1的背景改成地图。。。然后把PICTUREBOX2放在1里面。。。就成了。。。。但是。。。。运行起很卡很卡。。不停在重绘吧。。。那张地图的PNG文件3M。。。
解决方案十:
引用8楼hry1225的回复:

引用3楼cnzdgs的回复:下面的控件每次改变后刷新一下上面的控件。我尝试过了。。。我把PICTUREBOX1的背景改成地图。。。然后把PICTUREBOX2放在1里面。。。就成了。。。。但是。。。。运行起很卡很卡。。不停在重绘吧。。。那张地图的PNG文件3M。。。

不要不停的重绘,降低一下频率,发生改变时,才刷新改变的部分,同时使用双缓冲画背景
解决方案十一:
每次改变后刷新一下,不要在Paint事件中刷新。
解决方案十二:
我不懂C++但你可以这样考虑PictureBox1里添加PictureBox2这样PictureBox2就可以透明了WINDOWS里透明是对于父窗体的。而不是同级窗体
解决方案十三:
因为一些关联代码的缘故(地图障碍,我全是用这2个PICTUREBOX完成的)。。。我现在不想动这2个图片框,有没有办法实现透明??我前面看书,发现一个办法,尝试了下,就是不停截取与第2个图片框重叠部分的第一个图片框里的象素把他整合起作为第1个图片框的BACKCOLOR,但是发现运气来超卡。。。。。
解决方案十四:
引用12楼hry1225的回复:

因为一些关联代码的缘故(地图障碍,我全是用这2个PICTUREBOX完成的)。。。我现在不想动这2个图片框,有没有办法实现透明??我前面看书,发现一个办法,尝试了下,就是不停截取与第2个图片框重叠部分的第一个图片框里的象素把他整合起作为第1个图片框的BACKCOLOR,但是发现运气来超卡。。。。。

卡是因为需要不断的重绘……MFC我不知道,但像WINFORM和WPF,透明的做法是再在上面绘制一个临时图层,用透明的底色把该透明的部分给画上去。但是像在WIN7下,WPF的这一过程用到了硬件加速,因此性能上已经不再是问题。尽管在WIN7以前,都会是软件加速,但是效果上也没有什么不爽的感觉。你这种“覆盖”的想法是对的。但是你可能需要用双缓冲来绘图,并在缓冲里面进行优化(比如说在绘往UI之前,数据又发生了较大的变化,那么就处理变化,将变化后的再输出到UI上),以减少UI层的更新操作。我不知道你是否用到了双缓冲,八成是没有,没有的话,每画一点都要阻塞一下UI线程,卡那是必然的。双缓冲的话,BAIDU一下,明明白白。
解决方案十五:
this->pictureBox1->BackColor=System::Drawing::Color::Transparent;this->pictureBox2->BackColor=System::Drawing::Color::Transparent;this->pictureBox1->Parent=this->pictureBox2

时间: 2024-09-20 00:50:09

2个PICTUREBOX叠一起,如何让上一个PICTUREBOX透明??的相关文章

cocoa touch-UINavigationController忽略上一个viewcontroller

问题描述 UINavigationController忽略上一个viewcontroller 通过AppDelegate创建的UINavigationController 推进新的view controller时,需要navigationItem不断接受新的view controller信息,忘记上一个view controller,并且显示当前view controller的title. 怎么样实现这个?我在viewDidLoad中设置了当前view controller的leftBarBut

SYBAES ASE 12.0 上一个横表转纵表的简单例子

SYBAES ASE 12.0 上一个横表转纵表的简单例子   千千如梦 2002年10月   /* create table ... */create table #dest_table(                         Flag char(1),                         A int null,                         B int null,                         C int null,         

如何使用PHP计算上一个月的今天

  一日,遇到一个问题,求上一个月的今天. 最开始我们使用 strtotime("-1 month") 函数求值,发现有一个问题,月长度不一样的月份的计算结果有误. 比如:2011-03-31,得到的结果是2011-03-03.我们先不追究什么问题,先看如何解决问题. 此时,想起PHP中有一个mktime函数,于是自己写了如下代码: 代码如下: echo date("Y-m-d H:i:s", mktime(date("G", $time), d

js实现div的切换特效上一个下一个

 实现div切换的方法有很多,下面为大家介绍下使用js是如何实现的 JS部分:   代码如下: //下一个div  function next() {  var arr = document.getElementById('tdBjzbsx').getElementsByTagName('div');  for (i = 0; i < arr.length-1; i++) {  if ((arr[i].style.display == "block"||arr[i].style.

隐藏导航栏之后支持手势退回上一个控制器

隐藏导航栏之后支持手势退回上一个控制器     说明 1. 我们在隐藏导航栏之后,手势退回就会消失,但可以通过一些手段来继续支持手势 2. 在对导航栏控制器的根控制器使用的时候要特别注意,会导致bug出现,但可以通过禁用手势解决 3. 对于定制达人来讲,必须使用自己写的导航栏view才可以,因为系统的导航栏上面有一个灰色的线条无法去除.   设置 导航栏控制器隐藏导航栏   在导航栏控制器的rootController中设置手势代理   在根控制器上,从根控制器进入另外一个控制器的时候,让手势激

状态栏-Android4.2源码基础上实现PhoneStatusBar透明

问题描述 Android4.2源码基础上实现PhoneStatusBar透明 最近需要在Android4.2系统源码的基础上对SystemUI进行定制, 不过在实现PhoneStatusBar的透明化处理这个问题上过不去,希望做过类似功能的前辈能够指个方向. 简单点描述就是要求PhoneStatusBar: 1.进入KeyGuard时半透明: 2.Launcher时透明: 3.打开Activity时不透明. 还请哪位前辈能够指点一下,先谢了

jsp中调用上一个网页中调用的js里面的input text的值

问题描述 jsp中调用上一个网页中调用的js里面的input text的值 套了一个时间选择的模板,想要获取开始时间和结束时间,但是这两个出现在调用的js里面,怎么获取 解决方案 将控件绑定id,js中有通过id设置控件内容的方法 解决方案二: 当前网页和上一个网页是什么关系?iframe还是window.open? iframe可以用parent或者document.getElementById('ifrID').contentWindow得到相互引用, window.open用opener或

问一个java gui问题,在一个窗体中,两个conboBox,改变上一个,怎么让下面一个显示为空。

问题描述 问一个java gui问题,在一个窗体中,两个conboBox,改变上一个,怎么让下面一个显示为空. 问一个java gui问题,在一个窗体中,两个conboBox,改变上一个,怎么让下面一个显示为空.是看起来为空 解决方案 你需要把它们放在同一个panel里把 然后就可以得到你想要的结果

如果这个月的第一周在这个月&amp;amp;lt;=3天那么这第一周要归为上一个月的. 用 oracle sql?

问题描述 如果这个月的第一周在这个月<=3天那么这第一周要归为上一个月的. 用 oracle sql? 同样,如果这个月的最后一周在这个月 <=3 天,那么这个最后一周要归为下个月的. 解决方案 如果这个月的最后一周在这个月 <=3 天,那么这个最后一周要归为下个月的