vfb控件数组的实现原理(visualfreebasicide),64位VB6vb7
- 游戏开发
- 2025-07-21 18:57:03

vfb控件数组的实现原理(visual freebasic ide),64位VB6 vb7
Sub Form1_Command1_BN_Clicked(ControlIndex As Long, hWndForm As hWnd, hWndControl As hWnd) MsgBox ("Command1 ControlIndex=" & ControlIndex & ",Command1(x).Caption =" & Command1( ControlIndex).Caption & ",hWnd=" & Command1( ControlIndex).hWnd) End SubIDE下载VisualFreeBasic(软件介绍) http://wwx.yfvb /soft-48.htm
Case WM_COMMAND Dim As Long IDC =LoWord(wParam) ,CODE = HiWord(wParam) 为什么可以从wParam取出IDC和CODE=BN_CLICKED消息
在Windows消息处理过程中,wParam参数是一个32位的值,其中包含了消息的附加信息。对于WM_COMMAND消息,wParam的低16位(LoWord)存储了控件的标识符(IDC),高16位(HiWord)存储了控件发送的消息代码(CODE)。
在BN_CLICKED消息中,wParam的低16位存储了按钮控件的标识符(IDC),高16位存储了按钮控件发送的消息代码(CODE)。因此,通过使用LoWord和HiWord函数,可以从wParam中提取出IDC和CODE的值。
LoWord函数用于提取wParam的低16位,返回一个无符号整数(WORD)值。HiWord函数用于提取wParam的高16位,返回一个有符号整数(SHORT)值。 所以,通过使用LoWord(wParam)和HiWord(wParam)可以从wParam中取出IDC和CODE的值。 ============================================== 如果是多个窗口,也有不同的IDC区分吗?还是按照句柄? 在多个窗口的情况下,每个窗口都有自己的句柄(handle),用于唯一标识该窗口。句柄是一个整数值,可以通过调用CreateWindow或CreateWindowEx函数来创建窗口时获得。
在WM_COMMAND消息中,wParam参数的低16位(LoWord)存储了控件的标识符(IDC),用于区分不同的控件。这个标识符是在创建控件时通过指定ID参数来设置的,可以是一个整数值或者是一个预定义的常量。
因此,通过wParam的低16位的IDC值,可以区分不同的控件。而句柄则用于区分不同的窗口。在处理WM_COMMAND消息时,可以根据wParam的IDC值和句柄来确定是哪个窗口的哪个控件发送了该消息,从而进行相应的处理。========================================
Type Form1_Class_Form Extends Class_Form Command3(3) As Class_Button Command1(2) As Class_Button Declare Function Show(hWndParent*** end type 创建控件数组,绑定到同一个事件过程。 This.Command1(2).hWnd = pWindow->AddControl("BUTTON", hWnd, 103 绑定事件:Cast(Any Ptr, @Form1_CODEPROCEDURE) fp->Index = 2 This.Command1(1).hWnd = pWindow->AddControl("BUTTON", hWnd, 104 绑定事件:Cast(Any Ptr, @Form1_CODEPROCEDURE) fp->Index = 1Function Form1_FORMPROCEDURE(ByVal hWndForm As hWnd, ByVal wMsg As UInteger, ByVal wParam As wParam, ByVal lParam As lParam) As LResult 'Form1 窗口回调过程 Dim tLResult As LResult Select Case wMsg Case WM_COMMAND Dim As Long IDC =LoWord(wParam) ,CODE = HiWord(wParam) If CODE = BN_CLICKED Then select case IDC CASE 103 FORM1_COMMAND1_BN_CLICKED(2,hWndForm, Cast(HWND, lParam)) CASE 104 FORM1_COMMAND1_BN_CLICKED(1,hWndForm, Cast(HWND, lParam)) END SELECT end if END SELECT 'WM_COMMAND
vfb控件数组的实现原理(visualfreebasicide),64位VB6vb7由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“vfb控件数组的实现原理(visualfreebasicide),64位VB6vb7”