vb多窗口是不是并行执行的算多进程吗每个窗口会不会独立占用CPU资源求解

vb多窗口是不是并行执行的算多进程吗每个窗口会不会独立占用CPU资源求解,第1张

VB中的窗口是按照Windows *** 作系统的标准来生成的,换句话说,不管是VB、VC、C++还是Java所生成的窗体,对于 *** 作系统而言都是没有区别的,它们对内存、CPU等系统资源的占用也是由 *** 作系统统一安排和调配的,VB对此是无权干涉、也用不着干涉的,作为程序员也更加不用 *** 心这些,只要把窗体里面的内容做好就行了。

至于你说的窗口会不会独立占用CPU资源的问题,这在目前的多任务 *** 作系统中是绝不可能的,因为这意味着当这个窗体运行时,其他一切(包括 *** 作系统本身)都将暂停运行,这是不可想象的!

我做了几行。

对无标题栏的窗体,或者不从标题栏移动的情况下可用。

有标题栏并且点住标题栏移动则不理想。

代码如下,仅供参考。

1、建立模块。

option

explicit

public

oldproc

as

long

public

declare

function

setwindowlong

lib

"user32"

alias

"setwindowlonga"

(byval

hwnd

as

long,

byval

nindex

as

long,

byval

dwnewlong

as

long)

as

long

public

declare

function

sendmessage

lib

"user32"

alias

"sendmessagea"

(byval

hwnd

as

long,

byval

wmsg

as

long,

byval

wparam

as

long,

byref

lparam

as

any)

as

long

public

declare

function

callwindowproc

lib

"user32"

alias

"callwindowproca"

(byval

lpprevwndfunc

as

long,

byval

hwnd

as

long,

byval

msg

as

any,

byval

wparam

as

any,

byval

lparam

as

any)

as

long

public

const

wm_move

=

&h3

public

const

wm_lbuttondown

=

&h201

public

const

wm_lbuttonup

=

&h202

public

const

gwl_wndproc

=

(-4)

public

bnhwnd

as

long

public

function

newproc(byval

hwnd

as

long,

byval

msg

as

long,

byval

wp

as

long,

byval

lp

as

long)

as

long

if

msg

=

wm_move

then

'捕获窗体移动事件

sendmessage

bnhwnd,

wm_lbuttondown,

1,

0

sendmessage

bnhwnd,

wm_lbuttonup,

1,

0

'将消息发送到按纽,使其发生click事件

end

if

newproc

=

callwindowproc(oldproc,

hwnd,

msg,

wp,

lp)

end

function

2、在窗体上有一个按钮(名称为eventbn)

dim

原垂直

as

single,

原水平

as

single

private

sub

eventbn_click()

msgbox

"移动了"

end

sub

private

sub

form_load()

form2show

form3show

bnhwnd

=

eventbnhwnd

'获得按纽句丙

oldproc

=

setwindowlong(mehwnd,

gwl_wndproc,

addressof

newproc)

eventbnvisible

=

false

end

sub

private

sub

form_mousedown(button

as

integer,

shift

as

integer,

x

as

single,

y

as

single)

if

button

=

1

then

原垂直

=

metop

+

y

原水平

=

meleft

+

x

end

if

end

sub

private

sub

form_mouseup(button

as

integer,

shift

as

integer,

x

as

single,

y

as

single)

metop

=

metop

-

原垂直

+

y

meleft

=

meleft

-

原水平

+

x

form2top

=

form2top

-

原垂直

+

y

form2left

=

form2left

-

原水平

+

x

form3top

=

form3top

-

原垂直

+

y

form3left

=

form3left

-

原水平

+

x

end

sub

3、其他窗体基本都这样。

这个这实在是太简单了!

首先添加三个窗体;

在第一个窗体上添加二个text控件,二个command控件,把以下代码复制到第一个窗体的代码窗口中:

Private Sub Command1_Click()

If Text1Text = "abc" And Text2Text = "123" Then

Form2Show

Unload Me

Else

MsgBox "密码错误!"

End If

End Sub

Private Sub Command2_Click()

End

End Sub

在第二个窗体中,添加一个label控件,一个command控件,代码如下:

Private Sub Command1_Click()

MsgBox "欢迎进入本窗体!"

Form3Show

Unload Me

End Sub

Private Sub Form_Load()

Label1Caption = "我的天地,我做主!"

End Sub

这样就可以了。

不懂的或者是要再加什么功能的话,可以问我。

添加MDI窗口!

“古木林”团队的团长——巫师的完善答案:

如果你是新手的话,那请看下面:

这样就可以添加第二个窗体了,如果第一个窗体的名称为“Form1”那第二个窗体默认名就为Form2。

你还可以再添加第三个窗体、第四个窗体

你说的这个

,其实就是这就是

允许用户

改变窗体的尺寸。你可以修改

Form

对象的

BorderStyle

属性(

BorderStyle

是窗体的边框样式)来实现这个。

下面是

Form

对象的

BorderStyle

属性设置值:

常数

设置值

描述

vbBSNone

0

无(没有边框或与边框相关的元素)。

vbFixedSingle

1

固定单边框。可以包含控制菜单框,标题栏,“最大化”按钮,和“最小化”按钮。只有使用最大化和最小化按钮才能改变大小。

vbSizable

2

(缺省值)可调整的边框。可以使用设置值1列出的任何可选边框元素重新改变尺寸。

vbFixedDouble

3

固定对话框。可以包含控制菜单框和标题栏,不能包含最大化和最小化按钮,不能改变尺寸。

vbFixedToolWindow

4

固定工具窗口。不能改变尺寸。显示关闭按钮并用缩小的字体显示标题栏。窗体在

Windows

95

的任务条中不显示。

vbSizableToolWindow

5

可变尺寸工具窗口。可变大小。显示关闭按钮并用缩小的字体显示标题栏。窗体在

Windows

95

的任务条中不显示。

如果你不是新手的话,“实现在一个主窗口中显示多个其他窗口”就是以一个窗口为容器,把其它窗口装在里面,就像程序的窗口包容控件对象那样。

这个需要用API来实现的,我对这方面的API不太熟,所以不能帮你了,sorry!

以上就是关于vb多窗口是不是并行执行的算多进程吗每个窗口会不会独立占用CPU资源求解全部的内容,包括:vb多窗口是不是并行执行的算多进程吗每个窗口会不会独立占用CPU资源求解、VB中如何使多个窗口同步显示、急!要用VB做出三个窗口来等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存