Chinaunix首页 | 论坛 | 博客
  • 博客访问: 342575
  • 博文数量: 72
  • 博客积分: 2130
  • 博客等级: 大尉
  • 技术积分: 857
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-05 16:10
文章分类

全部博文(72)

文章存档

2010年(5)

2009年(14)

2008年(53)

分类: WINDOWS

2010-02-01 19:21:14

    从一个窗口Dialog1发送字符串到另一个窗口Dialog2

    (1)Dialog1中调用:

    char *name = “shenxiaocheng”;

    HWND hWnd = ::FindWindow(NULL, “Flash Download”);

    ::SendMessage(hWnd, WM_ADDFPA, (WPARAM)name, (LPARAM)0);

    :FindWindow的第一个参数是窗口类名,第二个参数是窗口的标题

    SendMessage的第一个参数是窗口句柄,第二个参数是消息,第三四个参数是传递给消息处理函数的参数

    (2)Dialog2的头文件中:

    定义:

    #define WM_ADDFPA WM_USER+1

    如果有多个自定义消息,则相应的为WM_USER+2, WM_USER+3...

    //{{AFX_MSG(CFdownload)

    //}}AFX_MSG

    之间加:

    afx_msg LRESULT addfpa(WPARAM iParam1, LPARAM iParam2);

    (3)Dialog2cpp文件中:

    BEGIN_MESSAGE_MAP(CFdownload, Cdialog)

    //{{AFX_MSG_MAP(CFdownload)

    //}}AFX_MSG_MAP

    END_MESSAGE_MAP

    之间加:

    ON_MESSAGE(WM_ADDFPA, addpa)

    将消息与处理函数关联起来

    (4)Dialog2cpp文件中添加函数:

    afx_msg LRESULT Cfdownload::addfpa(WPARAM iParam1, LPARAM iParam2)

    {

    //处理传过来的字符串(char *)iParam1

    return 0;

    }

    总结:

    在窗口Dialog1中获得Dialog2的句柄,然后根据该句柄用SendMessage发送一个消息给Dialog2,顺带着点信息,在窗口Dialog2中收到的消息后,根据消息的映射查看到该消息的处理函数,用该函数去处理收到的消息和顺带的信息。

阅读(1421) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~