当我的一个线程得到数据时,需要做2件事情:
1、添加access数据表的一条记录。
2、发送一条自定义消息到clistctrl控件,该消息应包含第1步中添加的记录所有信息。请问第2件事情如何实现,因为刚接触vc不久,很多东西不懂,希望给出实现第2步的所有代码,包括自定义消息如何定义(#define WM_USER....应该放在那个文件里面)。

解决方案 »

  1.   

    自定义消息:define WM_XXX WM_USER+任意整数 ,放在哪里无所谓,只要你的程序能包含得到
      

  2.   

    另外,clistctrl是不能处理你的自定义消息的,你必须在派生类中处理,或者在别的地方处理你的自定义消息
      

  3.   

    除了自定义消息ID外,必须有实现消息的主体:
    BEGIN_MESSAGE_MAP(CYourApp, CWinApp)
    ON_COMMAND(, CWinApp::OnMSG)
    END_MESSAGE_MAP()CWinApp::OnMSG(...)
    {
    ....
    //这里是你的消息主体执行函数
    }
      

  4.   

    //h file 中
    #define WM_TRANS (WM_USER+1000)
    ...
    afx_msg void OnTrans(WPARAM wParam,LPARAM lParam)
    // cpp file中
    BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
    ON_MESSAGE(WM_TRANS, OnTrans)
    END_MESSAGE_MAP()CMainFrame::OnTrans(WPARAM wParam,LPARAM lParam)
    {}
      

  5.   

    另一种方法
    在主窗体CPP中定义就可以了#define UM_YOURMESSAGE (WM_USER + 100)...
    //AfxBeginThread 或 CreateThread 将回调函数指向 YourThreadFunc 的部分 略
    ...UNIT YourThreadFunc(LPVOID lParam)
    {
        (CYourDlg *)pThis = (CYourDlg *)lParam;
         //
         //   得到access数据
         //
        pThis->SendMessage(UM_YOURMESSAGE);
    return 0;
    }(用SDI或MDI也一样,只是写在相应的消息处理函数(WindowProc)中即可)LRESULT CYourDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
    {
        if(message == UM_YOURMESSAGE)
        {
            //添加记录
            //m_List do anying thing
            return TRUE;
         }
         return CDialog::WindowProc(message, wParam, lParam);
    }
      

  6.   

    //简单自定义消息映射实例
    1.建立一个对话框应用程序2.添加一个按钮控件,控件ID:IDC_BUTTON13.在对话框的.h文件中
    //{{AFX_MSG(CTestDlg)
    ......
    //}}AFX_MSG
    之间添加代码:
    afx_msg void OnHello();4.在对话框的.cpp中写OnHello()函数的具体内容:
    void CTestDlg::OnHello()
    {
     MessageBox("HEllo","HElloTitle");
    }5.在对话框的.cpp中
    BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
    //{{AFX_MSG_MAP(CTestDlg)
    ....
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    之间添加代码:
    ON_COMMAND(IDC_BUTTON1,OnHello) 运行程序后,点击按钮,弹出消息框.Alon
      

  7.   

    建立简单的自定义消息函数步骤:
      (1)#define 自定义消息名 WM_USER + 5;
      (2)在.cpp文件中消息声名中添加ON_MESSAGE(自定义消息名,执行函数);
      (3)在.h文件中生明执行函数,要在前面加上afx_msg;
      (4)在.cpp中定义执行函数体;
      (5)在需要使用自定义消息时使用PostMessage()或SendMessage()即可。祝你进步!
      

  8.   

    建立简单的自定义消息函数步骤:
      (1)#define 自定义消息名 WM_USER + 5;
      (2)在.cpp文件中消息声名中添加ON_MESSAGE(自定义消息名,执行函数);
      (3)在.h文件中生明执行函数,要在前面加上afx_msg;
      (4)在.cpp中定义执行函数体;
      (5)在需要使用自定义消息时使用PostMessage()或SendMessage()即可。祝你进步!