GDI透明背景处理
用GDI已经实现如图透明效果,但是再拖动它的时候会出现难看的虚线边框,怎样让其拖动时不出现?请最好给个实例文件行么?书面理解有点难度,谢谢,qsomnk@gmail.co...
用GDI已经实现如图透明效果,但是再拖动它的时候会出现难看的虚线边框,怎样让其拖动时不出现?
请最好给个实例文件行么?书面理解有点难度,谢谢,qsomnk@gmail.com
第三位朋友你给的答案试验了一下虽然实现了一般窗口拖动无边框效果,但是前提是删掉所有窗体控制代码,那我无法实现透明效果了,我的要求是:既能使用PNG图片得到窗体透明图片效果又能使这个透明出来的图片在鼠标拖动它的时候不显示虚线框。
PNG透明图片背景效果我已经实现了,像上面的那张图里,Windows微标图就是透明的,但是在拖动它的时候会在微标四周出现虚线框这很不美观;嵌入你的代码后倒好玩了,图片一靠近鼠标指针就跟着转悠O(∩_∩)O 不是我想要的啊。。。。 展开
请最好给个实例文件行么?书面理解有点难度,谢谢,qsomnk@gmail.com
第三位朋友你给的答案试验了一下虽然实现了一般窗口拖动无边框效果,但是前提是删掉所有窗体控制代码,那我无法实现透明效果了,我的要求是:既能使用PNG图片得到窗体透明图片效果又能使这个透明出来的图片在鼠标拖动它的时候不显示虚线框。
PNG透明图片背景效果我已经实现了,像上面的那张图里,Windows微标图就是透明的,但是在拖动它的时候会在微标四周出现虚线框这很不美观;嵌入你的代码后倒好玩了,图片一靠近鼠标指针就跟着转悠O(∩_∩)O 不是我想要的啊。。。。 展开
3个回答
展开全部
这个什么也不用调,首先,将你的所有涉及移动窗体的代码全部统统删掉,然后用以下方法:先定义个全局变量:dim nx as single , ny as single 和 dim md as boolean在form_mousedown事件中输入:md=true 和nx=x : ny=y 这句用来判断用户是不是按下了鼠标,并记录按下时的坐标值,在form_mouseup事件中输入md=false 用于关闭移动动作。在form_mousemove事件中输入以下代码:if md=true then | me.left=me.left+(x-nx) | me. top=me.top+(y-ny) | end if (注:使用时,请将以上代码中的“|”符号替换成回车,因为手机回答问题不允许回车换行,所以用这个符号代替,请讲解!)以上代码可以使您的程序移动时不显示虚线框,希望对您有所帮助! 〔新〕补充:我没说让你把GDI透明处理的代码删除啊?!我是说,把你以前移动窗体的代码部分删除,因为和我这个方法会冲突,GDI处理部分依旧保持不变!明白否?
展开全部
调用InvalidateRect试试。。
API函数
Public Declare Function InvalidateRect Lib "user32 " Alias "InvalidateRect " (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long
Declare Function InvalidateRectBynum& Lib "user32 " Alias "InvalidateRect " (ByVal hwnd As Long, ByVal lpRect As Long, ByVal bErase As Long) 一样的、、
API函数
Public Declare Function InvalidateRect Lib "user32 " Alias "InvalidateRect " (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long
Declare Function InvalidateRectBynum& Lib "user32 " Alias "InvalidateRect " (ByVal hwnd As Long, ByVal lpRect As Long, ByVal bErase As Long) 一样的、、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
调用InvalidateRect试试。
API函数
Public Declare Function InvalidateRect Lib "user32 " Alias "InvalidateRect " (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long
123456
API函数
Public Declare Function InvalidateRect Lib "user32 " Alias "InvalidateRect " (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long
123456
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询