向窗体发送消息,使用PostMessage(Form1.hwnd, WM_USER+1001, wParam?, lParam?),现在的关键是这个消息发送的是一个自定义结构,我应该怎么将这个结构保存在wParam中,接到消息后又怎么从
wParam中读出来学生是否迟到的消息
Type Student
    num As Long     //学号
    name As String  //名字
    age As Long     //年龄
    sex As Long     //性别
    late As Boolean //是否迟到
End Type

解决方案 »

  1.   

    用API函数CopyMemory即可,
    Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)把结构的地址做为wParam传递,然后接到消息时,再用CopyMemeory将地址中的内容复制到结构中就可以了。
      

  2.   

    怎么老报错啊,我定义的结构包含7个long
    Case WM_USER+1001
        CopyMemory g_Student wParam 4*7
    我再试试吧,最郁闷的是调用整个函数之后死机了
      

  3.   

    函数没有问题,只是取不出结构里面的值啊
    CopyMemory g_Student wParam 7*100
               结构      整型   字节数
    调用 g_Student.num = 70215200
    调用 g_Student.age 时会死机 5555555
      

  4.   

    问题解决了一半.......................
    CopyMemory g_Student, ByVal wParam, 4 * 7
    之后就可以调用结构的成员了