小弟做了个小练习,想用SendMessage()传递一个CArray<CString> 类型的参数,该如何做啊,对MFC的WPARAM和LPARAM一点都不熟悉,我发现我做MFC的东西一半时间都在纠结 类型转换的事情...
而且感觉MFC的消息相应机制没有QT的信号和槽灵活啊,用起来不是特别适应。

解决方案 »

  1.   

    SendMessage 后两个参数可以发送指针
      

  2.   

    发的是指针啊,但是各种报cannot convert啊。这俩参数到底咋用啊。
      

  3.   

    msdn查窗口消息
      

  4.   

    试试;
    ::SendMessage(hwnd,WM_SETTEXT,0,(LPARAM)(LPCSTR)symbols.GetAt(i));//symbols是CArray类型,i是循环变量ps:俺 是新手,最好别追问哈。
      

  5.   

    把CArray指针强制转换成WPARAM
    接收的时候又强制转换成CArray指针
      

  6.   

    SendMessage() 可以通过lparam或wparam传数据或指针,你的数据可以定义为一个结构体,然后将结构体的指针通过wparam或者lapram传出,
      

  7.   

    ::SendMessage(hwnd,WM_CHAR,1,0);
    利用WM_CHAR系统消息,
    变量内容通过静态变量传递,不就可以了吗?
      

  8.   

    一般传递的都是地址而已,比如一个int变量
    int n = 10;
    SendMessage(xxx,(WPARAM)&n ,0);接收方就是 
    int *p = (int*)wl;PostMessage就不可以传递局部变量的地址了