自己定义了一个消息:
BEGIN_MESSAGE_MAP(CmyView, Cview)
ON_MESSAGE(WM_IDTOGET, GetMessageID)
END_MESSAGE_MAP()
……
LRESULT CmyView::GetMessageID(WPARAM wParam, LPARAM lParam)
{
  我想在这获取WM_IDTOGET这个ID该怎么做呢?
即如何在消息函数里面获取消息的ID
}

解决方案 »

  1.   

    BEGIN_MESSAGE_MAP(CmyView, Cview)
    ON_MESSAGE(WM_IDTOGET, GetMessageID)
    END_MESSAGE_MAP()
    ……
    LRESULT CmyView::GetMessageID(WPARAM wParam, LPARAM lParam)
    {
        变量 = 方法("",...WM_DITOGET,""...);}
      

  2.   

    要获得消息ID到PreTranslateMessage中去;而触发了你这个响应函数,那就是因为收到了这条消息。
      

  3.   

    用UINT wmID = LOWORD(wParam);
    wmID即可你的消息ID值
      

  4.   

    To memory_xj(青蛙):
    那PostMessage里面该用什么参数呢,总不能是
    PostMessage(WM_IDTOGET, 0, 0)吧?第二个参数要传递什么呢?
      

  5.   

    如果简单是用PostMessage传递自定义消息的话,可以将消息ID作为参数传递给处理函数如下:
    PostMessage(WM_IDTOGET, WM_IDTOGET, 0);
    在消息处理函数中:
    如:LRESULT CYourView::YourFunction(WPARAM wParam, LPARAM lparam)
    {
        UINT wmID = (UINT)wParam;
        ...........
    }
      

  6.   

    1。既然是自定义消息,自己的ID当然是知道的啦!
    2。如果楼主的意思是提取各种不同消息做不同处理,请到PreTranslateMessage中去编写GetMessageID函数,那里面传入了消息的结构MSG,你的msg.message处理即可!
    3,传递自定义消息,如果你不需要携带别的信息的话,就用PostMessage(WM_IDTOGET, 0, 0)即可!
      

  7.   

    谢谢 memory_xj(青蛙) ,没想过用wParam来传递,呵呵
    To shakaCY(天舞宝轮):
    如果能够这样当然更好,只是....能不能给个具体的例子?怎么用呢?待会我再开个帖问一个问题,欢迎大家参加!