当前位置: 首页 > news >正文

vfb控件数组的实现原理(visual freebasic ide),64位VB6 vb7

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 Sub

IDE下载VisualFreeBasic(软件介绍) http://wwx.yfvb.com/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 = 1


 

Function 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

相关文章:

  • electron + sqlite3 解决打包后无法写入数据库
  • 用RASP五步轻松保护云端无服务器架构
  • Redis的集群模式:主从 哨兵 分片集群
  • 解决Pycharm pip安装模块太慢问题,pycharm2022没有manage repositories配置镜像源
  • 【论文阅读】Self-Paced Curriculum Learning
  • HarmonyOS —— UIAbility 页面跳转总结
  • C++初阶------------------入门C++
  • Kubernetes 学习总结(41)—— 云原生容器网络详解
  • 一体化、一站式!智能视频客服加码全媒体云呼叫中心能力
  • 记录一次云服务器使用docker搭建kafka的过程
  • 【Java面试题】HTTP与 HTTPS 的区别
  • 如何使用Plex在Windows系统搭建个人媒体站点公网可访问
  • Mediapipe绘制实时3d铰接骨架图——Mediapipe实时姿态估计
  • 【解决复杂链式任务打造全能助手】大模型思维链 CoT 应用:LangChain 大模型 结合 做 AutoGPT
  • Gin 集成 prometheus 客户端实现注册和暴露指标
  • Mac下ThingsBoard本地源代码安装和运行
  • C/C++面向对象(OOP)编程-回调函数详解(回调函数、C/C++异步回调、函数指针)
  • ChatGPT的基本原理?
  • 免费分享一套PyQt6学生信息管理系统 Python管理系统 Python源码,挺漂亮的
  • Python实现张万森下雪了的效果
  • 浙江广厦:诚挚道歉,涉事责任人交公安机关
  • 一图看懂|印巴交火后,双方基地受损多少?
  • 明查| 新一代AI诊疗系统可3秒筛查13种癌症?没有证据
  • 7月纽约举办“上海日”,上海大剧院舞剧《白蛇》连演三场
  • 乌总统:若与普京会谈,全面停火和交换战俘是主要议题
  • AI含量非常高,2025上海教育博览会将于本周五开幕