用VB6.0设计简单程序

用VB6.0设计简单程序,第1张

VB60测试通过

'利用随机函数产生60个100~200之间的随机整数,将其中的偶数按由小到大的顺序排列并输出,将奇数按由大到小的顺序排列并输出。

'1.将随机产生的60个整数按每行10个数输出到窗体或文本框中。

'2.将排好序的偶数和奇数分别输出到两个文本框中。

Dim RndArray(6, 10) As Integer

Dim OddArray() As Integer

Dim EvenArray() As Integer

Dim i, j As Integer

Dim m, n As Integer

Private Sub Cmd_Exit_Click()

'销毁数组

Unload Me

End Sub

Private Sub Cmd_Start_Click()

'除数化

MeTxt(0)Text = ""

MeTxt(1)Text = ""

MeTxt(2)Text = ""

ReDim OddArray(60)

ReDim EvenArray(60)

For i = 0 To 5 Step 1

For j = 0 To 9 Step 1

RndArray(i, j) = RndNuN(100, 200)

Next j

Next i

For i = 0 To 5 Step 1

For j = 0 To 8 Step 1

MeTxt(0)Text = MeTxt(0)Text + Trim(Str(RndArray(i, j))) + ","

Next j

MeTxt(0)Text = MeTxt(0)Text + Trim(Str(RndArray(i, j))) + vbCrLf

Next i

m = 0

n = 0

For i = 0 To 5 Step 1

For j = 0 To 9 Step 1

If RndArray(i, j) Mod 2 Then

OddArray(m) = RndArray(i, j)

m = m + 1

Else

EvenArray(n) = RndArray(i, j)

n = n + 1

End If

Next j

Next i

ReDim Preserve OddArray(m)

ReDim Preserve EvenArray(n)

DwComp OddArray(), m

UpComp EvenArray(), n

m = m - 1

n = n - 1

For i = 0 To m Step 1

MeTxt(1) = MeTxt(1) + Trim(Str(OddArray(i))) + ","

Next i

For i = 0 To n Step 1

MeTxt(2) = MeTxt(2) + Trim(Str(EvenArray(i))) + ","

Next i

End Sub

Public Function RndNuN(ByVal Min As Integer, ByVal Max As Integer)

RndNuN = Min + (Max - Min) Rnd

End Function

Public Function UpComp(ByRef parray() As Integer, ByVal num As Integer)

Dim temp As Integer

num = num - 2

For i = 0 To num Step 1

For j = 0 To num Step 1

If parray(j) > parray(j + 1) Then

temp = parray(j)

parray(j) = parray(j + 1)

parray(j + 1) = temp

End If

Next j

Next i

End Function

Public Function DwComp(ByRef parray() As Integer, ByVal num As Integer)

Dim temp As Integer

num = num - 2

For i = 0 To num Step 1

For j = 0 To num Step 1

If parray(j) < parray(j + 1) Then

temp = parray(j)

parray(j) = parray(j + 1)

parray(j + 1) = temp

End If

Next j

Next i

End Function

'利用随机函数产生100个10~99之间的随机整数,找出其中的素数,并将这些素数求和。

'1 将随机产生的100个整数存入数组,按每行10个数输出到窗体或文本框中。

'2 用Sub子过程或Function函数过程判断随机整数是否为素数。

'3 将素数按每行10个数在窗体或文本框中输出。

'4 将素数的个数以及求和结果出到窗体或文本框中。

Dim RndArray(10, 10) As Integer

Dim PrimArray() As Integer

Dim i, j As Integer

Dim m, n As Integer

Dim num As Integer

Dim sum As Integer

Private Sub Cmd_Click(Index As Integer)

If Index Then

Unload Me

Else

'初始化

MeTxt(0)Text = ""

MeTxt(1)Text = ""

MeTxt(2)Text = ""

MeTxt(3)Text = ""

For i = 0 To 9 Step 1

For j = 0 To 9 Step 1

RndArray(i, j) = RndNuN(10, 99)

Next j

Next i

For i = 0 To 9 Step 1

For j = 0 To 8 Step 1

MeTxt(0)Text = MeTxt(0)Text + Trim(Str(RndArray(i, j))) + ","

Next j

MeTxt(0)Text = MeTxt(0)Text + Trim(Str(RndArray(i, j))) + vbCrLf

Next i

m = 0

n = 0

num = 0

sum = 0

ReDim PrimArray(10, 10)

For i = 0 To 9 Step 1

For j = 0 To 9 Step 1

If IsPrime(RndArray(i, j)) Then

PrimArray(m, n) = RndArray(i, j)

MeTxt(1)Text = MeTxt(1)Text + Trim(Str(PrimArray(m, n))) + ","

sum = sum + PrimArray(m, n)

n = n + 1

If n > 9 Then

m = m + 1

n = 0

End If

num = num + 1

End If

Next j

Next i

MeTxt(2)Text = Trim(Str(num))

MeTxt(3)Text = Trim(Str(sum))

End If

End Sub

Public Function RndNuN(ByVal Min As Integer, ByVal Max As Integer)

RndNuN = Min + (Max - Min) Rnd

End Function

Public Function IsPrime(ByVal n As Integer) As Boolean

Dim a, b As Integer

IsPrime = False

If n Mod 2 Then

b = Sqr(n)

For a = 3 To b Step 2

If n Mod a = 0 Then

Exit Function

End If

Next a

IsPrime = True

End If

End Function

Private Sub Command1_Click()

  Dim Flag As Integer

  Text1SetFocus

  If IsNumeric(Text1Text) Then

    If Text2Text = "abcd" Then

      MsgBox "登录成功!"

      End 

    Else

      Flag = MsgBox("密码错误", 48 + 5, "输入密码")

      If Flag = vbRetry Then

        Text2Text = ""

        Text2SetFocus

      Else

        MsgBox "登录失败!"

        End

      End If

    End If

  Else

    Flag = MsgBox("账号中出现非数字字符" + vbCrLf + "请重新输入!", 16, "输入账号")

    If Flag = vbOK Then

      Text1Text = ""

      Text1SetFocus

    End If

  End If

End Sub

Private Sub Form_Load()

  Text2PasswordChar = ""

End Sub

Form1ControlsAdd "VBCommandButton", "cmdObj1", Frame1

在Frame1上画一个按钮

Add 方法(Controls 集合)示例

Private Sub Form_Load()

Form1ControlsAdd "VBCommandButton", "cmdObj1", Frame1

With Form1!cmdObj1

Visible = True

Width = 2000

Caption = "Dynamic Button"

End With

End Sub

注意 上面的代码例子使用 ! 作为一个语法要素。您也可以使用标准集合语法如 Form1Controls("cmdObj1") 来引用该控件。

第二个例子使用 WithEvents 关键字声明一个 CommandButton 类型的对象变量,允许您编程该控件的事件。对象变量被设置为由 Add 方法返回的引用。要试验该例,把它的代码粘贴到声明部分并且运行该工程。

Option Explicit

Private WithEvents btnObj As CommandButton

Private Sub btnObj_Click()

MsgBox "This is a dynamically added button"

End Sub

Private Sub Form_Load()

Set btnObj = ControlsAdd("VBCommandButton", "btnObj")

With btnObj

Visible = True

Width = 2000

Caption = "Hello"

Top = 1000

Left = 1000

End With

End Sub

第三个例子添加一个非引用控件到 Controls 集合。然而要编程这样一个控件的事件,必须声明一个 VBControlExtender 类型的对象变量,并把由这个方法返回的引用设置到该对象。然后使用 ObjectEvent 事件编程该控件的事件。

Option Explicit

Dim ctlExtender As VBControlExtender

Private Sub Form_Load()

Set ctlExtender = ControlsAdd("Project1UserControl1", "MyControl")

With ctlExtender

Visible = True

Top = 1000

Left = 1000

End With

End Sub

Private Sub extObj_ObjectEvent(Info As EventInfo)

'使用 Select Case 编程该控件事件。

Select Case InfoName

Case "UserName"

'检查用户名值。

MsgBox Info EventParameters("UserName")Value

'现在显示其他情况

Case Else '未知事件

'这里处理未知事件。

End Select

End Sub

呵呵

假设你已经显示过FORM2,并且form2的text1已经得到数据

那么在form1的代码中可以直接使用form2的text1的值方法就和理解的是一样的

比如说:

print form2text1text

假如你还是不会,那我就只能form2show写出来了

在form1中添加一个按钮,代码就是:

form2show

form1hide

这时form2中也添加一个按钮,代码是:

form1show

form2hide

然后就可以回到最前面了

程序运行后,在form1按钮,打开form2在form2的text1中输入一串字比如"这是窗口2写的"

然后点击form2的按钮回到form1

如果form1中有个按钮的代码是:

print form2text1text

就可以显示刚刚的那么字了

我了补充呵: 设标志位呀

比如FORM1的COMMAND1动作中, 先检查标志位,默认是FALSE, 然后就执行动作, 一直执行到SHOW FORM2, 然后FORM2就出来了, 写文本框内容, 再确定时,先改标志位为TRUE ,再HIDE FORM2,然后再CALL FORM1的COMMAND1

FORM1的COMMAND1的代码后半部分,就是识别当标志位为TRUE时的动作

有时候语言总是显得苍白无力呵补充代码吧:

新建工程,2个窗体

form1 , 一个按钮,一个Text1

form2, 一个按钮, 一个Text1

form1的代码如下:

Public cmdzt As Boolean

Public Sub Command1_Click()

If cmdzt = False Then

MeHide

Form2Show

Exit Sub

End If

If cmdzt = True Then

Text1 = Form2Text1

cmdzt = False '以便接受下一次动作

End If

End Sub

Private Sub Form_Load()

cmdzt = False

End Sub

form2的代码:

Private Sub Command1_Click()

Form1cmdzt = True

Call Form1Command1_Click

Form1Show

MeHide

End Sub

我不知道这算不算你说的,点击窗体1的按钮, 运行到1半时(前一半呵), 打开窗体2,录入数据后,点击按钮,返回窗体1,接着刚刚的按钮继续动作

我这个代码是在窗体1,点按钮后,因为标志为FLASE,于是打开窗体2, 在窗体2上,可以在文本框录入一些数据,然后按按钮后,将窗体1的标志位置为TRUE,然后CALL 了窗体1的按钮动作,因为标志位的变化,所以窗体1的按钮会执行剩下的代码(后一半)就是在窗体1的文本框中显示窗体2刚刚文本框录入的信息

望采纳!

你说的打开EXE文件是指什么

是调用外部EXE文件吗

还是打开EXE进程

---------------------------------------

调用外部EXE文件

有两个API

一个是:ShellExecute()

一个是:WinExec()

-------------------------

ShellExecute函数原型及参数含义如下:

function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory: PChar; ShowCmd: Integer): HINST; stdcall;

●hWnd:用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。例如,可以将其设置为应用程序主窗口句柄,即ApplicationHandle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。

●Operation:用于指定要进行的 *** 作。其中“open” *** 作表示执行由FileName参数指定的程序,或打开由FileName参数指定的文件或文件夹;“print” *** 作表示打印由FileName参数指定的文件;“explore” *** 作表示浏览由FileName参数指定的文件夹。当参数设为nil时,表示执行默认 *** 作“open”。

●FileName:用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。

●Parameters:若FileName参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为nil或PChar(0)。

●Directory:用于指定默认目录。

●ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0。

若ShellExecute函数调用成功,则返回值为被执行程序的实例句柄。若返回值小于32,则表示出现错误。

上述仅仅是ShellExecute函数的标准用法,下面将介绍它的特殊用法。

-------------------------------------------------------------------

WinExec()

-------------

SW_SHOW表示以当前大小激活运行后的程序窗口并显示它。

第二个参数是控制程序主窗口的显示方式

第二个参数可能的取值为 :

SW_HIDE //程序启动后隐藏主窗口

SW_MAXIMIZE //最大化运行

SW_MINIMIZE //最小化运行

SW_RESTORE //将最大化或最小化的窗口恢复正常

SW_SHOW //以当前位置和大小显示主窗口

SW_SHOWMAXIMIZED //激活窗口并以最大化运行

SW_SHOWMINIMIZED //激活窗口并以最小化运行

SW_SHOWMINNOACTIVE //最小化运行,但不激活

SW_SHOWNOACTIVATE //以上一次的窗口大小运行,但不激活

SW_SHOWNORMAL //普通方式,一般运行时采用这个

一般情况下,第二个参数取SW_SHOWNORMAL即可,这样就是无参数运行oneexe

WinExec("oneexe", SW_SHOWNORMAL);第二个参数只是WinExec函数的参数,不是oneexe的参数

--------------------------------------------------------------------

WinExec()这个没有什么好说的,只有两个参数,下面就说下ShellExecute()

这个我做过一个程序就专用到这个实例

实现打开DOS,并运行MLexe文件来编译testasm

m_mlfile="mlexe /c /coff ";

m_linkfile="linkexe /subsystem:windows ";

m_pathFormat("d:\\masm32\\bin");

m_asmfile="d:\testasm"

CString param1;

param1Format("/k %s%s",m_mlfile,m_asmfile);

UpdateData();

ShellExecute(this->m_hWnd,"open","cmdexe",param1,m_path,SW_SHOW );

--------------------------------------------------------------------

如果是打开进程就用:下面是打开指定EXE进程,并读内存值的例子,一看就明了

已知

[[008f77d4] +28]=ESIESI + 596, 当前血, (10进制的)

-----------------------------------------------------------

DWORD pid;

HWND hWnd=::FindWindow(NULL,TEXT("Element Client"));

if(!hWnd)

{

AfxMessageBox("can't finded the program");

return;

}

::GetWindowThreadProcessId(hWnd,&pid);

HANDLE hProcess=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);

LPVOID lpBaseAddress=(LPVOID)0x8F77D4;

DWORD dwValue;

DWORD dwValue3;

DWORD dwValue5;

if(!::ReadProcessMemory(hProcess,lpBaseAddress,&dwValue,sizeof(DWORD),0)) return;

LPVOID dwValue2=(LPVOID)(dwValue+40);

if(!::ReadProcessMemory(hProcess,dwValue2,&dwValue3,sizeof(DWORD),0)) return;

LPVOID dwValue4=(LPVOID)(dwValue3+596);

if(!::ReadProcessMemory(hProcess,dwValue4,&dwValue5,sizeof(DWORD),0)) return;

m_str001Format("%d",dwValue5);

UpdateData(FALSE);

Dim mbMouseDown As Boolean

Dim mnStartX As Long, mnStartY As Long

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

mnStartX = X

mnStartY = Y

mbMouseDown = True

End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim r As Long

If mbMouseDown = False Then Exit Sub

If Button And vbLeftButton Then

Picture1Cls '擦去上次画的圆

r = Abs(X - mnStartX) / 2 '圆大小取决于横向移动距离

If X > mnStartX Then

Picture1Circle (mnStartX + r, mnStartY + r), r, &HFF

Else

Picture1Circle (mnStartX - r, mnStartY + r), r, &HFF

End If

End If

End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

mbMouseDown = False

End Sub

以上就是关于用VB6.0设计简单程序全部的内容,包括:用VB6.0设计简单程序、求代码vb 6.0版、VB6.0如何用代码添加控件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9308731.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存