制造出透明的窗体(Form)

2016-02-19 18:27 4 1 收藏

今天图老师小编给大家精心推荐个制造出透明的窗体(Form)教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

【 tulaoshi.com - 编程语言 】

注释:form上有Command1,command2两个Button并事先设定form之BorderStyle=0
  
  OptionExplicit
  PrivateDeclareFunctionGetWindowLongLib"user32"Alias"GetWindowLongA"(ByValhwndAsLong,ByValnIndexAsLong)AsLong
  PrivateDeclareFunctionSetWindowLongLib"user32"Alias"SetWindowLongA"(ByValhwndAsLong,ByValnIndexAsLong,ByValdwNewLongAsLong)AsLong
  ConstGWL_EXSTYLE=(-20)
  ConstWS_EX_TRANSPARENT=&H20&
  PrivatePreValueAsLong
  
  PrivateSubCommand2_Click()注释:还原变成不透明
  CallSetWindowLong(Me.hwnd,GWL_EXSTYLE,PreValue)
  Me.Hide
  Me.Show
  EndSub
  
  PrivateSubForm_Load()
  DimiAsLong
  
  i=GetWindowLong(Me.hwnd,GWL_EXSTYLE)
  注释:变成透明的Form
  PreValue=SetWindowLong(Me.hwnd,GWL_EXSTYLE,iOrWS_EX_TRANSPARENT)
  Me.Show
  DoEvents
  Command1.Refresh注释:令Command1可见
  Command2.Refresh注释:令Command2可见
  EndSub->

来源:https://www.tulaoshi.com/n/20160219/1617730.html

延伸阅读
一、背景 FlashGet的透明效果大家羡慕吧。传统的Windows应用程序想实现半透明效果,一般来说需要处理自己的窗口的WM_Paint消息窗口,很麻烦.现在好了,SetLayeredWindowAttributes是windows的新api,win2000以上才支持,它能使使窗体拥有透明效果.我在Google搜了下,介绍SetLayeredWindowAttributes的文章大多是delphi的和vb的。好不容易找...
这是一个很奇特的功能,首先要让Form变透明,接着,放一张背景透明的.gif图进来,如此,这变成一个透明的form,上面有许多Button,且图不会是一个方形,而会让图的背景透通。但有一点要注意,这种透明的Form不可以移动,否则一移就会发现它似乎不是透明的,这个很不好解释,建议您一开始设定Form的BorderStyle=2大小可变可移动,而去移动与更动...
如何移动没有Title的窗体。 private void label1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { mouse_offset = new Point(-e.X, -e.Y); } private void label1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { if (e.Button == MouseButtons.Left) { Point mousePos = Control.MousePos...
Private mouse_offset As Point Private Sub form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown mouse_offset = New Point(e.X, e.Y) End Sub Private Sub form1_MouseMove(ByVal Sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyB...
使用过DELPHI的朋友都会注意到DELPHI本身最上面的窗口, 当它极大时只占屏幕的一小部分,它是如何实现的呢,请看下面的说明: 1)在FORM私有声明部分加上如下一行: procedureMessage :TWMGetMinMaxInfo ); message WM_GETMINMAXINFO; WMGetMinMaxInfo( var 2)在声明部分加上如下几行: procedure TForm1.WMG...

经验教程

590

收藏

27
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部