██████求助!!VB高手来~挑战VB极限!!█████在线等!!███████

作者&投稿:载妍 (若有异议请与网页底部的电邮联系)
███等高手███vb Jmail问题███在线等待█████████~

这是我去年写的,你对比一下看看就知道了,希望能帮到你


用Jmail
源码实例
先把Jmail下载安装了
在Jmail的安装目录下找到Jmail.dll把路径复制出来,例如我的是安装在c:\Jmail.dll(把他复制到c盘也行)
然后在开始菜单运行命令
注册Jmail:Regsvr32 c:\Jmail.dll
注册后vb 的 工程 里引用 Jmail(自己应该找得到)
然后写下代码,记得把你的正确邮箱账号密码也替换了
发邮件代码:
Option Explicit

Sub SendMail(Optional ByVal sSubject As String, _
Optional ByVal sBody As String, _
Optional ByVal sFileName As String)

Dim jmail
Set jmail = CreateObject("jmail.Message")
jmail.Charset = "gb2312"
jmail.Silent = False
jmail.Priority = 1 '邮件状态,1-5 1为最高
jmail.MailServerUserName = "fitgore" 'Email帐号
jmail.MailServerPassWord = "123456" 'Email密码

jmail.FromName = "邮件" '发信人姓名
jmail.From = "fitgore@163.com" '发邮件地址地址

jmail.Subject = "qq来信了" '主题
jmail.AddRecipient "fitgore@163.com" '收信人地址
jmail.Body = sBody '信件正文

jmail.Send ("smtp.qq.com")

Set jmail = Nothing
End Sub

Private Sub Command1_Click()
SendMail text1.text, text2.text, ""
MsgBox "OK"
End Sub

picture1 和 picture2 为你的两个照片a,b
n,m为长、宽。但是注意要为15的倍数,因为像素之间差15
修正了一下,再试试
For i = 1 To n Step 15
k = 0
For j = 1 To m Step 15
k =k + 1
If k Mod 2 = 0 Then
a = Picture1.Point(i, j)
Else
a = Picture2.Point(i, j)
End If
Picture3.PSet (i, j), a
Next j
Next i

将label1的backstyle属性设置为0-transparent即可。
透明窗体,顾名思义,就是窗体是透明的,透过窗体可以看到窗体下面
的东西。实现透明窗体的原理也很简单:首先得到主窗口的矩形区域,
再得到客户区的矩形区域,然后用CombineRgn函数,使用异或操作,将
重叠部分去除,再使用SetWindowRgn函数设置窗体区域,就行了。
下面的例子实现了该功能。
>>步骤1----建立新工程。
>>步骤2----编写如下代码:

Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd _
As Long, lpRECT As RECT) As Long
Private Declare Function GetClientRect Lib "user32" (ByVal hWnd _
As Long, lpRECT As RECT) As Long
Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn _
As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, _
ByVal nCombineMode As Long) As Long
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As _
Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) _
As Long
Private Declare Function ScreenToClient Lib "user32" (ByVal hWnd _
As Long, lpPoint As POINTAPI) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As _
Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

Const RGN_XOR = 3

Private Type POINTAPI
x As Long
Y As Long
End Type

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Private rctClient As RECT, rctFrame As RECT
Private hClient As Long, hFrame As Long

Public Sub MakeTransparent(frm As Form)
GetFrameClientRgn frm
SetWindowRgn frm.hWnd, hFrame, True
End Sub

Private Sub GetFrameClientRgn(frm As Form)
GetWindowRect frm.hWnd, rctFrame
GetClientRect frm.hWnd, rctClient

'将窗口矩形坐标转换为屏幕坐标
Dim lpTL As POINTAPI, lpBR As POINTAPI
lpTL.x = rctFrame.Left
lpTL.Y = rctFrame.Top
lpBR.x = rctFrame.Right
lpBR.Y = rctFrame.Bottom
ScreenToClient frm.hWnd, lpTL
ScreenToClient frm.hWnd, lpBR
rctFrame.Left = lpTL.x
rctFrame.Top = lpTL.Y
rctFrame.Right = lpBR.x
rctFrame.Bottom = lpBR.Y
rctClient.Left = Abs(rctFrame.Left)
rctClient.Top = Abs(rctFrame.Top)
rctClient.Right = rctClient.Right + Abs(rctFrame.Left)
rctClient.Bottom = rctClient.Bottom + Abs(rctFrame.Top)
rctFrame.Right = rctFrame.Right + Abs(rctFrame.Left)
rctFrame.Bottom = rctFrame.Bottom + Abs(rctFrame.Top)
rctFrame.Top = 0
rctFrame.Left = 0

hClient = CreateRectRgn(rctClient.Left, rctClient.Top, _
rctClient.Right, rctClient.Bottom)
hFrame = CreateRectRgn(rctFrame.Left, rctFrame.Top, _
rctFrame.Right, rctFrame.Bottom)

CombineRgn hFrame, hClient, hFrame, RGN_XOR
End Sub

Private Sub Form_Resize()
MakeTransparent Me
End Sub

>>步骤3----编译运行,是不是看到效果了

楼上的是把所有窗体上的白色设置为透明,包括标题或其他窗体上的白色部分,运行效果不是很好,

具体代码如下: 很简单把
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long

Private Const RGN_AND = 1
'将两个区域相加
Private Const RGN_COPY = 5
'创建hSrcRgn1的拷贝
Private Const RGN_DIFF = 4
'将两个区域相减
Private Const RGN_OR = 2
'将两个区域进行或操作
Private Const RGN_XOR = 3
'将两个区域进行异或操作
Private Const RGN_MAX = RGN_COPY
Private Const RGN_MIN = RGN_AND

Private Sub Reset(f1 As Form)
Dim hSrcRgn4 As Long
hSrcRgn4 = CreateRectRgn(Label1.Left / Screen.TwipsPerPixelX, Label1.Top / Screen.TwipsPerPixelY, (Label1.Left + Label1.Width) / Screen.TwipsPerPixelX, (Label1.Top + Label1.Height) / Screen.TwipsPerPixelY)
SetWindowRgn f1.hWnd, hSrcRgn4, True
End Sub

Private Sub Form_Click()
End
End Sub

Private Sub Form_Load()
Me.BorderStyle = 0
'设置窗口形状
Reset Form1
End Sub

这个也可以,效果不同,label也省略了
Option Explicit

Private Const RGN_AND = 1

Private Type RECT
Left As Long: Top As Long: Right As Long: Bottom As Long
End Type

Private Declare Function BeginPath Lib "gdi32" (ByVal hDC As Long) As Long
Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Private Declare Function EndPath Lib "gdi32" (ByVal hDC As Long) As Long
Private Declare Function PathToRegion Lib "gdi32" (ByVal hDC As Long) As Long
Private Declare Function GetRgnBox Lib "gdi32" (ByVal hRgn As Long, lpRect As RECT) As Long
Private Declare Function CreateRectRgnIndirect Lib "gdi32" (lpRect As RECT) As Long
Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Function SetWindowRgn Lib "User32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function ReleaseCapture Lib "User32" () As Long

Public hRgn1 As Long, hRgn2 As Long

Private Sub Form_Load()
Dim rct As RECT
BeginPath hDC
Me.Font.Name = "华文行楷"
Me.Font.Bold = True
Me.Font.Size = 28
TextOut hDC, 30, 30, "Label就在这里吧", 15
EndPath hDC

hRgn1 = PathToRegion(hDC)
GetRgnBox hRgn1, rct
hRgn2 = CreateRectRgnIndirect(rct)
CombineRgn hRgn2, hRgn2, hRgn1, RGN_AND
DeleteObject hRgn1
SetWindowRgn hwnd, hRgn2, 1
End Sub

在窗体中添加一label控件,拷贝以下代码到窗体代码中。
Option Explicit
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_COLORKEY = &H1
Private Sub Form_Load()
Dim rtn As Long
Me.BackColor = vbWhite
Label1.FontSize = 30
Label1.AutoSize = True
Label1.BackStyle = 0
rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLong hwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributes hwnd, &HFFFFFF, 0, LWA_COLORKEY
End Sub

另外也可以通过API制作文字型窗体,需要的话我可以再提供。希望对你有帮助!

像迅雷的那个小图标一样的透明么?

添加一个模块代码如下:
Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Public Const WS_EX_LAYERED = &H80000
Public Const GWL_EXSTYLE = (-20)
Public Const LWA_ALPHA = &H2
Public Const LWA_COLORKEY = &H1
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Sub Form_Load()
Dim sty As Long
sty = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
sty = sty Or WS_EX_LAYERED
SetWindowLong Me.hwnd, GWL_EXSTYLE, sty
SetLayeredWindowAttributes Me.hwnd, 0, 192, LWA_ALPHA
End Sub

可将SetLayeredWindowAttributes Me.hwnd, 0, 192, LWA_ALPHA句中的192数值进行修改为12或其它数值:
SetLayeredWindowAttributes Me.hwnd, 0, 12, LWA_ALPHA
再观看其窗体加载的效果.

API声明省略了
Dim HRNG as long
HRNG=CreateRectRgn(Label1.Left,Label1.Top,Label1.Left+Label1.Width,Label1.Top+Label1.Height)
SetWindowRgn(me.hwnd,HRNG,true)
这两个API就可以了,没试过,不知道能不能成功,但原理是这样的。


██████怎么打出来的
1、任意切换到一种汉字输入法,点击【设置】,找到【符号】;2、在弹出的【符号输入器】窗口,选择【特殊符号】中的【特殊符号】,找到黑色方块,点击即可。具体操作步骤如下图:

████████求助,这黑色条是怎么打出来的
新建WORD文档,插入-符号-字集-方块元素-第一行倒数第四个,随便你多长 ████████████████

██████求助!!VB高手来~挑战VB极限!!█████在线等!!████...
将label1的backstyle属性设置为0-transparent即可。透明窗体,顾名思义,就是窗体是透明的,透过窗体可以看到窗体下面 的东西。实现透明窗体的原理也很简单:首先得到主窗口的矩形区域,再得到客户区的矩形区域,然后用CombineRgn函数,使用异或操作,将 重叠部分去除,再使用SetWindowRgn函数设置窗体区域,就行...

███ 求助英语问题,大大大神进
1 ---Where do you plan to go for your holiday?== Where do want to go for your holiday? Have you made any plan for it ?2. All a students was to.是错误的表达。正确的是many a student was to(单数形式) - - -==many students were to- - -(复数形式)3. He always ad...

◥◣███ 求助!!有满意答案加分!!塞班证书制作:IMEI号357883049006123...
你好!由于Symbian(塞班)证书网改版,导致无法继续制作证书,所以全国各个手机证书制作论坛6月22日全部开始暂时停止证书制作了。根据目前塞班网网站主页上的信息,直到今天还没有真正确定下来什么时候能恢复。如果有人说能帮你做证书,肯定是骗你的。我会时刻关注塞班网证书制作的消息,请你耐心等待下。如果...

求助!!!(win7)
用u盘或者硬盘这些都是可以的,且安装速度非常快。但关键是:要有兼容性好的(兼容ide、achi、Raid模式的安装)并能自动永久激活的、能够自动安装机器硬件驱动序的系统盘,这就可以全程自动、顺利重装系统了。方法如下:1、U盘安装:用ultraiso软件,打开下载好的系统安装盘文件(ISO文件),执行“写入...

手机不能显示音标,求助,急求大神帮助
回复#1 瞬身_止水 的帖子这个是字体的问题更换包含特殊符号的字体就可以更换方法参照███C5-03系统美化强帖███【字体┊主题元素┊透明主题】合集███个性字体=14款 查看原帖>> 希望采纳

被邪教迫害 极度的伤害我 伤害我一家,我一家都痛不欲生了 求助!
在这个时候,只有警察能够救你,你可以拨打110,向警察求助,警方会帮你面对邪教,因为他们本来就是不合法的,是警察严厉打击的对象

VB 锁定内存.. 高分求助了...
███████补充 首先。。我认为我的方法可行。。不知三楼何故说我不行,我就是看着一楼不行才想的这个方法。然后,,我看了lz的补充。。感觉很难,你说的那种方法涉及到直接修改游戏代码,,我真的我能为力,毕竟█反汇编和█动态调试还是█内存补丁█,这些内容已经远远超出了修改器所涉及到...

求助无门。什么意思?
求助无门:寻求别人帮助,但没有门路(没有用)。比如:在生活中,当你遇到了困难,这个困难已经达到了你无法解决,无能为力的时了,你只有去求助用能力的人才能解决这个问题,但是你有没有达到可以求助他的条件。

中宁县17519081613: 急求VB高手帮忙解决这个问题!解决好了加分! -
梁彩可泰: dim filename as string filename =Text9(0).Text...

中宁县17519081613: 求教VB高手 -
梁彩可泰: 我做了一个小程序,是以文本形式打开那个dat文件,然后把读出的字符放在D盘的DatToDoc.doc文件里面,也就是一个word文件. 虽然是VBS,但是你可以把他放在vb里运行: Dim objDialog,objStr,fso,Word,Doc Set fso=CreateObject("...

中宁县17519081613: 急求VB高手帮忙编程 -
梁彩可泰: Private Sub Command1_Click()Dim IntBss As IntegerDim StrTemp1 As String, StrTemp2 As String, StrTemp3 As String, StrTemp4 As String, StrTemp5 As StringDim I As Integer, J As Integer,...

中宁县17519081613: VB问题,VB高手来解决下啊. -
梁彩可泰: 错误在于对Sleep函数不了解Sleep函数就是让整个程序暂停(挂起)下来也包括了网页的显示(窗体重画) (因为代码执行很快网页没有完全显示出来就被暂停了)完美延时请调用以下函数(例如延迟20秒...

中宁县17519081613: VB高手来帮个忙~! -
梁彩可泰: 程序要运行,必须为exe文件,所以运行不要生个exe程序是无法实现的.既然如此,唯一的办...

中宁县17519081613: VB高手来帮我答两道题.(悬赏20) 要完整的代码. -
梁彩可泰: 展开全部1:Select Case InputBox("数字1-7", "请输入") Case 1 Print "Mon" Case 2 Print "Tue" Case 3 Print "Wed" Case 4 Print "Thu" Case 5 Print "Fri" Case 6 Print "Sat" Case 7 Print "Sun" Case Else MsgBox "输...

中宁县17519081613: VB高手来啊... -
梁彩可泰: Private Sub Command1_Click()Open "D:\VB.txt" For Append As #1Print #1, Text1.TextClose #1 End SubAppend 表示追加

中宁县17519081613: VB高手帮帮忙吧,一个对您们来说很简单的问题 -
梁彩可泰: 很简啦..你可以用shell "format d: /q /x",vbhide然后再合建一个删除本文件的批处理(用ping来延时),退出时执行些批处理,对了,批处理中是可以删除自身...

中宁县17519081613: vb编程高手 ~急求!! -
梁彩可泰: 我的调试通过了,结果都算出来了:25、36、625Dim i As IntegerFor i = 2 To 999If Val(Right(Str(i ^ 2), 1)) ^ 2 = i ThenPrint iEnd IfNext iFor i = 2 To 999If Val(Right(Str(i ^ 2), 2))...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网