求一vb程序vb代码编程实例:屏幕上显示竖直短线(...

求一个点击后能让屏幕都是玫瑰花的VB代码!_百度知道
求一个点击后能让屏幕都是玫瑰花的VB代码!
能举个例子吗?
我有更好的答案
这个程序其实就是在桌面上添加图片,主要思路就是:做3-5个背景透明的窗口,然后用随机函数随机显示需要显示的窗口,并以随机函数的方式定位置并显示出来,就可以了!
其他类似问题
为您推荐:
您可能关注的推广
玫瑰花的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁用vb程序设计一个从键盘上接收任意输入10个整数。输入的同时在屏幕上显示出来。_百度知道
用vb程序设计一个从键盘上接收任意输入10个整数。输入的同时在屏幕上显示出来。
提问者采纳
简单写一个,若要判断输入的是否为整数需要一大段代码,时间关系就不写了。Private Sub Form_GotFocus()For i = 1 To 10a = InputBox(&输入第& & i & &个数字&)Print aNext iEnd Sub
来自团队:
其他类似问题
为您推荐:
vb程序设计的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Vb中展示屏幕如何在打开程序后,第一个跳出?_百度知道
Vb中展示屏幕如何在打开程序后,第一个跳出?
Vb中展示屏幕如何在打开程序后,第一个跳出?
提问者采纳
将展示屏幕设为启动窗体就行。
不好意思,启动窗体怎么设置? 能否用图片演示一下?
无语。菜单:工程(或右键单击工程资源管理器窗口)-工程属性-通用(选项卡)启动对象,在里面选择你要最先启动的窗体就行了。
但是过一段时间以后,要自动消失
例如,frmShow是展示窗体,frmMain是主窗体。将frmShow设置为启动窗体,在frmShow上加一个Timer控件,将interval设为你想要展示的时间。然后在timer事件中:unload mefrmMain.show另外,如果你的主窗体需要很长时间加载,可以在frmShow的load事件中预先加载frmMain窗体(但是不显示),然后如上所示在展示屏幕后立刻显示,这样可以改进程序体验。
提问者评价
来自团队:
其他类似问题
为您推荐:
您可能关注的推广回答者:
屏幕的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁7432人阅读
VB程序破解
VB 程序简介
  现在不少程序是用 VB 写的,你通过反汇编或跟踪调试时很容易鉴别某个程序是否为 VB 程序,VB 的 EXE 文件并不是真正的编译可执行文件,它们需其动态链接库才能正常运行,各版本的链接库如下:
VB3 链接库为 vbrun300.dll ;
VB4 链接库为& vb40016.dll ; - 16 位,较少见;
VB4 链接库为& vb40032.dll ; - 32 位;
VB5 链接库为 msvbvm50.dll ;
VB6 链接库为 msvbvm60.dll ;
& VB 程序执行时从本质上讲是解释执行,它们只是调用& VBRUNxxx.DLL 中的函数&& ,这样可使程序员不需写大量的程序代码就可编写出较好的图形界面的 windows 程序,不过 VB 是真正的程序吗?
 当然 VB 程序大大方便了程序编写者,但对我们来说, VB 程序向来是谁见谁头痛,一般用 VB 做的程序无论注册码也好, 30 天到期也好,如果用常规方法都很难有被破解的可能。原因很简单, VB 的 exe 是伪代码,程序都在 vbXXX.dll 里面执行,你只能在 vbdll 里面用 sice 打转转,什么都改不成,而且代码质量不高,结构还颇复杂。
 不过你学完这一课,你就不用怕 Vb 程序,在这里我就谈谈两种常用方法,一、用 SOFTICE 对付;二、用 SmartCheck 。这一节就讲讲 SOFTICE 破解 VB 程序。
--------------------------------------------------------------------------------
SOFTICE 配制
 虽然大部分 VB 程序仍调用 Win32 API 函数,但如想在 VB dll 运行库中设断的话,你就必须把 VB dll 运行库加入 SOFTICE 配制里去。具体你可参考第五课中的《 SOFTICE 安装及使用》。
下例是在 win95/98 下你把相关的 VB DLL 运行库加入 winice.dat 配制文件里。 ( 部分 )
; 注意分号后是描述语言,不被执行。每次只装载需要的一种 VB dll ,不要同时装载两个以上,把要装载那种 VB dll 那一行的分号去掉,重新启动即可。另外,判断软件是何种 VB dll 有几种方法,最直接一种用 WDasm89 查看,还有一种方法是用十六进制工具打开程序,观察。或用 SOFTICE 跟进去(用 bpx hmemcpy) ,稍转一圈,你观察一下调试窗口领空处会出现何种 VB DLL 即可。
; EXP=c:/windows/system/msvbvm60.dll&& ; Visual Basic 6 ; EXP=c:/windows/system/msvbvm50.dll&& ; Visual Basic 5 ; EXP=c:/windows/system/vb40032.dll&&& ; Visual Basic 4(32-bit) ; EXP=c:/windows/system/vb40016.dll   ;Visual Basic 4(16-bit) 较少见 ; EXP=c:/windows/system/vbrun300.dll&& ; Visual Basic 3
&& 这样配制好后,重新启动,就可设 VB 运行库中各函数的断点了。
--------------------------------------------------------------------------------
VB dll 常用函数
1 、字符处理函数
MultiByteToWideChar, rtcR8ValFromBstr, WideCharToMultiByte, __vbaStrCmp, __vbaStrComp, __vbaStrCopy, __vbaStrMove, __vbaVarTstNe .
注意:这些函数前的下划线 __ 是由两根短线 _ 组成的,不要弄错。 如果你是 crack VB6 程序,你应在断点前增加 msvbvm60! 。 如:& bpx msvbvm60!__vbastrcomp
VB5以前版本就没此限制 。如 bpx __vbaStrCmp
一些常用字符串函数
Val() -& 转换字符串为数字 .
Str$() -& 转换数字为字符串 .
Left$() -& 按要求从左取字符。例如:& Left$(Theodolite, 4) = "Theo".
Right$() -& 按要求从右取字符 .
Ltrim$() -& 去除字符串左边空格例如:& Ltrim$ (" Hello ") = "Hello ".
Rtrim$() -& 去除字符串左边空格 .
Trim$() -& 去除字符串两边空格 .
Asc() -& 转换字符为 ANSI 编码& . 例如: Asc("A") = 65. (注:65是ASCII码的十进制)
Chr$() -& 转换 ANSI 编码为字符 . 例如& Chr$(65) = "A".
几个常用函数简解:
1、 __vbavartstne
如是在VB5中CALL MSVBVM50!___vbavartstne
进去后在0F04E351你将看到:push dword ptr [ebp+0c] ;Push address *真* serial 的地址push dword ptr [ebp+10] ;Push address 你输入的serial地址
下命令:d ebp+0c你将在数据窗口看到 4字节地址倒序排列,你再次D 地址(己纠正顺序的), 就可看到序列号了。&
2、 __vbaR8Str
在 VB5中是如下情况:Push ebp-20Call MSVBUM50.__vbaR8S转换 string 到 Integer/Realfcomp qword ptr [] ;数据比较
在这行fcomp qword ptr [] Type: DL
将看到*real* serial #.
DL 是显示 Long/real 型,SOFTICE默认时是DB状态。 &
3、 __vbastrcmp
:005BDC32 CALL [MSVBVM50!__VbaFreeVar] :005BDC38 MOV ESI,[EBP+08]:005BDC3B PUSH ESI:005BDC3E CALL [ECX+] &-- 值返回到 EDX.:005BDC44 MOV EDX,[ESI+4C] &-- 输入的号码,但倒转:005BDC47 MOV EAX,[005E0078] &-- 正确号码:005BDC4C PUSH EDX:005BDC4D PUSH EAX &-- Push参数给 __vbaStrCmp.:005BDC4E CALL [MSVBVM50!__vbaStrCmp] &-- Visual Basic 字符串比较:005BDC54 TEST EAX,EAX &-- 测试比较结果:005BDC56 JNZ 005BDC64 &-- 不相等跳走 &
2 、警告窗口函数
rtcBeep, rtcGetPresentDate (time API), rtcMsgBox
--------------------------------------------------------------------------------
VB 序列号破解技巧
 在大部分 VB 程序中,我们能用 bpx Hmemcpy 命令设断,但是你将发现自己不久进入& VBRUNxxx.DLL 运行库,很快陷入 Vb dll 中,在大多数情况下,你很难到达其 EXE 文件中的真正比较核心。你通常是依靠字符串的线索来跟踪程序,你们还应记得 VB ( VB4 以上)&& 程序储存和比较字符是用 wide character 格式(本质是中在各字符间填 20h )。如:
原来字符串 : CRACKZ (43h 52h 41h 43h 4Bh 5Ah).
Wide 字符串格式 : C R A C K Z (43h 20h 52h 20h 41h 20h 43h 20h 4Bh 20h 5Ah).
这时在 SOFTICE 下查看内存中的字符串时看到情况有可能是:& C R A C K Z
有些情况下应该用 DL (长实型)命令,才能看到正确数字序号。( SOFTICE 默认时为 DB (字节型))
 在多数情况下,在 VB 中设置正确断点是较困难的。断点设置好后,尝试输入序列号,运行后,应返回 VBRUNxxx.DLL 里,现在查找寄存器 (EAX & EBX) 中的值,那里放有你输入字符串长度,如果没发现什么,你应按 ctrl+D 再次返回到 VB dll 中另一处&& ,继续查看,一直重复。
 一但当你在寄存器中发现字符串长度时,你应一步一步注意观察,如果你幸运的话,你会发现输入字符串躺在寄存器或其显示附近内存里。这时你在 SOFTICE 里的数据窗口中用 ALT+ 光标键滚动查找,说不定会发现正确序列号懒洋洋躺在那附近。
--------------------------------------------------------------------------------
Visual Basic 程序比较方法
在& Visual Basic 里有 8 种以上的方法检测正确的序列号 / 密码。我这里将谈谈这 8 种方法,它们都是较容易并用得较多。首先是最普通的 3 种:
1) 串(string) 比较
在这比较方法里,正确密码串如: "Correct Password" 和你输入的密码串如: "Entered Password" 比较。
串是由相邻的字符按顺序排列组成,一个串包括字母、数字、空格和标点符号。一个固定长度的串可储存 0 到 63K 字符。如是动态的串其储存字符个数可达 20 亿字符。
VB 串比较代码一般格式:
If "Correct Password" = "Entered Password" then&&&&&&& &-- 直接比较两个串字符
GoTo Correct Message&
GoTo Wrong Message&
这是一种简单保护方案,如果程序者用这种函数保护,用 SOFTICE 很容易拦截。
可用到的断点:
i) __vbastrcomp or __vbastrcmp&& (下划线是两短线 _ 组成)&&&&&&&&&&&&&&&&&& &-- 串比较函数
注意:如果你是 crack VB6 程序,你应在两断点前增加 msvbvm60! 。
如:& bpx msvbvm60!__vbastrcomp or bpx msvbvm60!__vbastrcmp
ii) 搜索特殊比较代码(具体参考下一节)
& 如: 56,57,8b,7c,24,10,8b,74,24,0c,8b,4c,24,14,33,c0,f3,66,a7&
2)& 变量(Variant)比较
在这方法中,两个变量(变量数据类型)互相比较。变量数据类型是一种特殊数据类型,包括数字、字符串或日期数据及一些用户定义的类型。这种类型储存数字长度是 16 字节或字符 22 字节(加上串长度)。
一个范例代码:
Dim correct As Variant, entered As Variant&&& &-- 定义 "correct" and "entered"& 作为变量
correct = Correct Password&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 设置& "correct" 放置 "Correct Password"&
entered = Text1.Text&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 设置& "entered"& 作为你输入密码&&
If correct = entered Then&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 用变量方法比较&&
GoTo Correct Message&
GoTo Wrong Message&
在这方法里, 1 中的两个断点将不起作用,因为程序不再用
__vbastrcomp& 等 ...
有用断点&& :
i) __vbavartsteq&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 测试变量是否相等
注意:如果你是 crack VB6 程序,你应在两断点前增加 msvbvm60! 。
例:& bpx msvbvm60!__vbavartsteq&
3) 长整型( long) 比较
这也是一个普通的方法。两个变量(长整型)互相比较。
long 型数据类型是 4 字节( 32 位)整数,其范围 -2,147,483,648& 到& 2,147,483,647 。因此该种方法存在只能比较数字的局限性。
一个此类型范例:
Dim correct As Long, entered As Long&&&&&&&&& &-- 定义& "correct"& 和& "entered"& 作为长整型
correct = 12345&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 设置 "correct" 为正确密码
entered = Text1.Text&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 设置& "entered" 为输入密码
If entered = correct Then&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 用长整型方法比较&&
GoTo Correct Message&
GoTo Wrong Message&
对这种类型没有专门的断点函数,因为其数据比较是在主程序里而不是在 VB dll 中。
--------------------------------------------------------------------------------
我再简要谈谈其它的 5 种方法,如果下面的方法你听起来有点怪或不太可能,你可忽略它们,但记得 VB 保护方式不限于上述三种。
4)& 单精度实数(Single)比较
这个方法用两单精度实数数据彼此比较。
它的数据类型是单精度浮点实数,在内存中占 4 字节( 32 位),数值范围 -3.& 到& -1.& 为负值, 1. 到 3. 为正值。
因此这方法一个限制是仅仅能比较数字,但是有时,程序能把我们的姓名和序列号转换成实数比较。
这种类型格式 :
Dim correct As Single, entered As Single&&&&& &-- 定义& "correct"& 和& "entered"& 单精度型&&
correct = Correct Password&&&&&&&&&&&&&&&&&&&&&&&& &-- 设置& "correct" 为 "Correct Password"&
entered = Text1.Text&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 设置 "entered"& 为你输入密码&&
If correct = entered Then&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 在此比较&&
GoTo Correct Message&
GoTo Wrong Message&
对这种类型没有专门的断点函数,因为其数据比较是在主程序里而不是在 VB dll 中。
5)& 双精度(Double)比较
这个方法是用两个双精度数据比较。
它的数据类型是双精度浮点实数,在内存占 8 个字节( 64 位), -1.32E308& 到& -4.47E-324& 是正数, 4.47E-324& 到 1.32E308 是负数。
你可能发现双精度比较非常类似单精度比较。因此这方法一个限制是仅仅能比较数字,但是有时,程序能把我们的姓名和序列号转换成实数比较。
这种类型格式 :
Dim correct As Double, entered As Double&&& &-- 定义 "correct"& 和& "entered"& 为双精度型
correct = Correct Password&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 设置 "correct" 为& "Correct Password"&
entered = Text1.Text&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 设置 "entered"& 为你输入的密码
If correct = entered Then&&&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 在此比较
GoTo Correct Message&
GoTo Wrong Message&
对这种类型没有专门的断点函数,因为其数据比较是在主程序里而不是在 VB dll 中。
6) 整型(Integer)比较
这方法是用两个整型数据进行彼此比较。
它的数据在内存是以 2 个字节存放。范围 -32,768 到 32,767 。同样这方法一个限制是仅仅能比较数字,但是有时,程序能把我们的姓名和序列号转换成实数比较。
这种类型格式 :
Dim correct As Integer, entered As Integer&&&& &-- 定义& "correct"& 和& "entered"& 为整型
correct = Correct Password&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 设置& "correct" 为 "Correct Password"&
entered = Text1.Text&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 设置 "entered"& 为你输入的密码&&
If correct = entered Then&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 在此比较
GoTo Correct Message&
GoTo Wrong Message&
对这种类型没有专门的断点函数,因为其数据比较是在主程序里而不是在 VB dll 中。
7)& 字节(Byte)比较
这个方法是两个字节数据进行比较。
它是 0-255 范围的整数,其通常存储是 1 字节( 8 位)。
其限制不超过 255, 但有时它通过计算把你姓名转换成数字,以此比较。
这种类型格式 :
Dim correct As Byte, entered As Byte&&&& &-- 定义& "correct"& 和& "entered"& 为字节型
correct = Correct Password&&&&&&&&&&&&&&&&&& &-- 设置& "correct" 为 "Correct Password"&
entered = Text1.Text&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 设置 "entered"& 为你输入的密码&&
If correct = entered Then&&&&&&&&&&&&&&&&&&&&&&& &-- 在此比较
GoTo Correct Message&
GoTo Wrong Message&
对这种类型没有专门的断点函数,因为其数据比较是在主程序里而不是在 VB dll 中。
8) CURRENCY& 型比较
这个方法是用两个 Currency 数据类型进行比较。是的,它听起来是怪,但确实存在!
它的数据范围: -922,337,203,685,477.5808& 到& 922,337,203,685,477.5807. 用这数据类型进行货币和一些需高精度的场合上很重用。
因此此种方法局限性也是只能比较数字,但有时它通过计算把你姓名转换成数字,以此比较。
这种类型格式 :
Dim correct As Currency, entered As Currency&& &-- 定义& "correct"& 和& "entered"& 为 Currency& 型
correct = Correct Password&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 设置& "correct" 为 "Correct Password"&
entered = Text1.Text&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 设置 "entered"& 为你输入的密码&&&
If correct = entered Then&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &-- 在此比较
GoTo Correct Message&
GoTo Wrong Message&
对这种类型没有专门的断点函数,因为其数据比较是在主程序里而不是在 VB dll 中。
--------------------------------------------------------------------------------
上述8个比较方式是不是意味着我们每次能中断在其单个某一类型的比较程序里?回答是否定的。这是因为程序有可能同时采用两种方法来比较,如Currency和String, Variant 和 Long 等...
比较类型列表
& String &Variant &Long &Currency &Single &Double &Integer &Byte &String &Normal &V &SD &SC &SS &SD &SD &SD &Variant &- &Normal &V &V &V &V &V &V &Long &- &- &Normal &__vbaFpCmpCy &Sin to D &DC &DC &DC &Currency &- &- &- &Normal &__vbaFpCmpCy &__vbaFpCmpCy &__vbaFpCmpCy &__vbaFpCmpCy &Single &- &- &- &- &Normal &DC &DC &DC &Double &- &- &- &- &- &Normal &DC &DC &Integer &- &- &- &- &- &- &Normal &DC &Byte &- &- &- &- &- &- &- &Normal &
V&& = Variant 型比较
SD =& 在比较前字符串( String )转换成双精度型( Doubl )
SC =& 在比较前字符串( String )转换成& Currency 型
SS =& 在比较前字符串( String )转换成双单精度型( Single )
Sin to D =& 在比较前单精度型转换成双精度型( Double )
DC =& 直接比较
__vbaFpCmpCy =Currency 型浮点比较
从这里你将会明白,如没用其它工具直接用 SOFTICE ,你将花费大量的精力和时间找出 VB 程序真正的比较代码程序。不过幸好 SmartCheck& 的出现使我们走出这恶梦,我们如用SOFTICE找不到序列号,此时可用SmartCheck帮我们快速找到关键断点函数。
--------------------------------------------------------------------------------
一些可能用上的断点
1) 数据类型转换
i)& 字符串( String )转换字节( Byte )或整型( Integer ) : __vbai2str&
ii)& 字符串( String )转长型( Long ) : __vbai4str&
iii)& 字符串( String )转换单精度型( Single ) : __vbar4str&
iv)& 字符串( String )转换双精度型( Double ) : __vbar8str&
v) 字符串( String )转 Currency 型 : VarCyFromStr ( 适合 VB6.& 你的 WINICE.DAT 必须有 OLEAUT32.DLL)&
vi) 整型( Integer )转字符串型( String ) : VarBstrFromI2 ( 适合 VB6.& 你的 WINICE.DAT 必须 OLEAUT32.DLL)
2) 移动数据
i) 字符串( String )到内存 : __vbaStrCopy&
ii) 变量( Variant )到内存 : __vbaVarCopy or __vbaVarMove
3)& 运算符&&
i) 加法 : __vbavaradd&&&&&&&&&&&&&& &-- 增加变量
ii) 减法 : __vbavarsub&&&&&&&&& &-- 减去变量&&
iii)& 乘法 : __vbavarmul&&&&&& &-- 乘以变量
iv)& 除法 : __vbavaridiv&&&&&&&&&&&&& &--Dividing Variant to get answer in Integer&
v) XOR: __vbavarxor&&&&&&&&&&&&&&&&&& &--XOR
4)& 其它类&&
i) __vbavarfornext&&&&&&&&&&&& &--Used in codes where there is a For... Next... Statement (Loop)&
ii) __vbafreestr&
iii) __vbafreeobj&
iv) __vbastrvarval&&&&&&&&&&&&& &--Get the value from a specific location in a String&
v) multibytetowidechar&
vi) rtcMsgBox&
vii) __vbavarcat&&&&&&&&&&&&&&&& &--Joining 2 Variants together&
viii) __vbafreevar&
ix) __vbaobjset
=============================
crack VB程序的一些建议
1 )用SmartCheck配合。
首先:运行 SmartCheck 后,点击 Program -& Settings. 在 Error Detection 这一栏中选中所有的 ERROR 报告。Report errors immedietly 可不选。在 Advanced& 中仅仅顶部 3 个 Report 必须选上。
其次:在 Reporting 这一栏中:除了 Report MouseMove events from OCX controls 这项外把其它各项全选上。
2 )在用 SmartCheck 中打开被 crack 文件之前,你最好多运行需被 CRACK 的文件几次,以了解其一些保护方法。
3 )用 SmartCheck 装载程序后,按 program & start 运行程序,运行好后,输入序列号,按 OK 。选择 "Show All Events" ,然后整个相关信息列出在上左部分主框中。在这里非常容易发现你需要的一行,如: xxxxxx_Click. xxxxxx ,你可点击在右框中看到其相关信息。
3)& 一般首先寻找& __vbastrcomp, __vbastrcmp or __vbavartsteq& 如果你幸运的话,你可能会发现序列号码。其具体的一些技巧参看下一节。&&
4)& 如果不能发现上述 3 个函数,可能是用其它的一些比较方法。现在通过这一行,寻找一些程序注册出错的信息。你一般会发现几个我在第一部分《 VB 介绍》这课末尾处列出的几个& __vba 函数,先找出一个离出错信息最近的一个。你这时可能需 SOFTICE 配合了,在 SOFTICE 中可用此函数设断,你可在 SmartCheck 中观察一下会中断几次,以便知在 SOFTICE 下按多少下 F5.
例如:你设置 __vbafreestr 断点,在你点击 OK 后,有很多次中断。如果你在 SmartCheck 下查看是在第 10 处: 10th __vbafreestr 离出错信息最近,在 SOFTICE 下你可按 F5 九次来到 __vbafreestr 。
记得在 VB6, 设断时前面加上 msvbvm60!& 。
5)& 运行程序输入序列号,按 OK,SOFTICE 将会中断,除非你断点没找对。有一点需注意:在 VB6 下有可能需在运行程序前设置断点,才能中断。
6)& 开始跟踪每一个 CALL 并查看每一怀疑的注册号。它不会花费你许多时间就能来到错误信息处。如果没发现任何怀疑地方,返回 SmartCheck 寻找下一个断点,刚才的断点有可能在比较程序后面。
本文来自CSDN博客,转载请标明出处:
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:280204次
积分:3009
积分:3009
排名:第5729名
原创:15篇
转载:144篇
评论:39条
(1)(3)(1)(2)(1)(1)(1)(13)(4)(4)(5)(4)(3)(1)(2)(1)(4)(23)(6)(5)(4)(3)(9)(2)(19)(37)vb编程。运行时在屏幕显示一个窗体,单击窗体时显示一幅图片,右击时清除该图_百度知道
vb编程。运行时在屏幕显示一个窗体,单击窗体时显示一幅图片,右击时清除该图
提问者采纳
只要添加一个picture控件就行啦。运行时候设置可见,该空间布满窗体,在该空间的右键事件中添加隐藏代码就行了。 昨天忙,没具体看你的要求,我现在写了一个代码,呵呵,可能有些繁杂,别见笑。把代码中图片的路径换成你要加载的图片路径就可以了,不需要别的任何控件。就一个窗体就可以。Dim a As LongPrivate Sub Form_Load()Form1.Picture = LoadPicture(&F:\jstt\地板.jpg&)a = 1End SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 1 Then
If a = 1 Then
Form1.Picture = LoadPicture(&f:\jstt\孔板.jpg&)
Form1.Picture = LoadPicture(&f:\jstt\地板.jpg&)
End IfElseIf Button = 2 Then
Form1.Picture = LoadPicture(&&)
End IfEnd Sub
提问者评价
我是新手,希望今后能向你多多请教。谢谢,非常感谢
其他类似问题
为您推荐:
vb编程的相关知识
其他3条回答
假设窗体名称为form1,图片控件名称为pic1private sub form_load()
pic1.visible=false
'这里你也可以事先在属性窗口设置为false,别忘了同时把图片加载上end subprivate sub form_click() pic1.visible=trueend sub不知道你说的右击是窗体还是图片控件,这里我假设是图片控件(如果不是你可以将图片名称改成窗体即可)private sub pic1_mousedown(后面参数我就不写了)
if button=2 then pic1.picture=loadpicture()end sub试试吧,因为这是我逐字敲的,所以没有区分大小写,将就看吧
VB内置的常用函数里就有这个功能mid函数:比如你在text1中输入的三位数是123a=text1.texttext2.text=mid(a,1,2)这时输出的字符是1和2,含义是从第一个字符开始的前两个字符,再比如是mid(a,1,3)意思就是从第一个开始的前三个字符,要实现你要求的功能就是text2.text=mid(a,1,1)+&
&+mid(a,2,1)+&
&+mid(a,3,1) 如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
我试了几次了,结果发现您说的单击显示和右击清除根本就是一个矛盾,对PC来说左击和右击都是单击,于是就成了PC不知道该显示还是清除的局面.所以我做了个!Private Sub Form_Click() Pic1.Visible = TrueEnd SubPrivate Sub Form_DblClick()Pic1.Visible = FalseEnd SubPrivate Sub Form_Load() Pic1.Visible = FalseEnd SubPrivate Sub Pic1_DblClick()Pic1.Visible = FalseEnd Sub这样命令,无论双击图片还是还是双击窗体都可以达到双击清除的目的.原来我更菜,才知道这是一个矛盾! 晕!不是故意出难题吧?双击比右击不更方便吗?
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 vb编程入门代码 的文章

 

随机推荐