API 窗口类名
DeclareFunctionFindWindowLib"user32"Alias"FindWindowA"(ByVallpClassNameAsString,ByVal...
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
lpClassName 类名不是不就是name属性的名称?
lpWindowName 窗体名就是VB中的caption名称? 展开
lpClassName 类名不是不就是name属性的名称?
lpWindowName 窗体名就是VB中的caption名称? 展开
1个回答
展开全部
第一个回答是错的,第二个回答是正确的。
你说的name其实就是变量名而已。象dim a。
你在name里输入个a,就表示你创建了一个变量名为a的窗口或控件。
以后可以使用a.caption="这个是窗口标题,也是lpWindowName".
在很多API里都会要你传递lpClassName和lpWindowName的。但一般我们只使用lpWindowName。因为这个窗口标题栏一般是唯一的,因此象FindWindow这样的API通常我们只传递lpClassName为""。当然如果有两个窗口名称都是一样的标题,那FindWindow就不能保证会按照你的意图找到你那个窗口。它会按照一定的搜索顺序来找它找到的第一个为lpWindowName的窗口,但那个搜索路径你没必要了解,一般不会发生这种情况的.
再说下lpClassName,可能学VB的人不太会有人知道lpClassName是什么,但学VC的人大部分都知道.它是一种窗口的类的名称.譬如在VB工具栏里有很多的控件(注意控件也是窗口的一种,只是看上去小多了,外观也和一般窗口变了很多。),如按钮,编辑框。这些标准的按钮只有一个类名,是微软实现定义好的,我们无法修改。所有窗口都需要象windows操作系统进行注册,注册的内部实现细节我不太清楚。但它的重要性是很容易猜测的:就像所有的学生在入学前都需要注册,显然注册的目的是为了便于管理。但窗口注册还是会有些不同,就是窗口像windows注册是用窗口的类名注册的,而不是窗口的标题来向windows注册。
象VC里,我们经常自己设计个窗口,然后给这种窗口定义个类名(VB和VC里的MFC,通常不会让我们自己挑一个类名,都是由开发环境自动给我们取个类名,因此窗口注册其实是对VB和VC里的MFC的程序员来讲是不可见的),最后用RegisterClass这个API向windows注册。注册完后,才能开始创建个窗口的对象(实例)。如我们注册了个比VB标准按钮小一半的按钮,然后就可以在代码里造出这种风格的好多个按钮,并且可以给它们取不同的name(就是变量名),也可以取不同的按钮名(按钮的窗口名就是按钮上你看得到的名字)。然后当我们要用到FindWindow这样的API时,我们一般就不太会去把类名传给这个函数的。
你说的name其实就是变量名而已。象dim a。
你在name里输入个a,就表示你创建了一个变量名为a的窗口或控件。
以后可以使用a.caption="这个是窗口标题,也是lpWindowName".
在很多API里都会要你传递lpClassName和lpWindowName的。但一般我们只使用lpWindowName。因为这个窗口标题栏一般是唯一的,因此象FindWindow这样的API通常我们只传递lpClassName为""。当然如果有两个窗口名称都是一样的标题,那FindWindow就不能保证会按照你的意图找到你那个窗口。它会按照一定的搜索顺序来找它找到的第一个为lpWindowName的窗口,但那个搜索路径你没必要了解,一般不会发生这种情况的.
再说下lpClassName,可能学VB的人不太会有人知道lpClassName是什么,但学VC的人大部分都知道.它是一种窗口的类的名称.譬如在VB工具栏里有很多的控件(注意控件也是窗口的一种,只是看上去小多了,外观也和一般窗口变了很多。),如按钮,编辑框。这些标准的按钮只有一个类名,是微软实现定义好的,我们无法修改。所有窗口都需要象windows操作系统进行注册,注册的内部实现细节我不太清楚。但它的重要性是很容易猜测的:就像所有的学生在入学前都需要注册,显然注册的目的是为了便于管理。但窗口注册还是会有些不同,就是窗口像windows注册是用窗口的类名注册的,而不是窗口的标题来向windows注册。
象VC里,我们经常自己设计个窗口,然后给这种窗口定义个类名(VB和VC里的MFC,通常不会让我们自己挑一个类名,都是由开发环境自动给我们取个类名,因此窗口注册其实是对VB和VC里的MFC的程序员来讲是不可见的),最后用RegisterClass这个API向windows注册。注册完后,才能开始创建个窗口的对象(实例)。如我们注册了个比VB标准按钮小一半的按钮,然后就可以在代码里造出这种风格的好多个按钮,并且可以给它们取不同的name(就是变量名),也可以取不同的按钮名(按钮的窗口名就是按钮上你看得到的名字)。然后当我们要用到FindWindow这样的API时,我们一般就不太会去把类名传给这个函数的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询