none
MFC 如何 响应 Spin NM_ReleasedCaptaure 事件 RRS feed

  • 问题

  • 想在鼠标从Spin按钮上抬起后做处理,

    是用NM_ReleasedCaptaure 事件响应么?

    若是的话 怎么写响应函数?

    若不是的话应该用什么思路?

    我还试过重载CSpinButtonCtrl类为CMySpin类,
    然后在CMySpin中响应LButtonUp消息,在响应函数中发消息,
    ::SendMessage(hwnd,wparam,lparam)
    但是我不知道怎么捕获父窗口的句柄HWnd。

    ps 我是在一个TabCtrl的page1上放的Spin控件,
    page1 定义为CDialog类

    2012年11月14日 4:43

答案

  • ::SendMessage(hwnd,wparam,lparam)
    但是我不知道怎么捕获父窗口的句柄HWnd。
    ----------------------
    ::GetParent() ??

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    已经搞定

    见csdn 同类型题目, 由于原网页暂时连接打不开,无法复制上来。。

    2012年11月14日 9:34

全部回复

  • ::SendMessage(hwnd,wparam,lparam)
    但是我不知道怎么捕获父窗口的句柄HWnd。
    ----------------------
    ::GetParent() ??

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2012年11月14日 5:02
    版主
  • ::SendMessage(hwnd,wparam,lparam)
    但是我不知道怎么捕获父窗口的句柄HWnd。
    ----------------------
    ::GetParent() ??

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    我在自己重写的CMySpin类LButtonUp的响应函数中

    HWND hwnd;

    ::Getparent(hwnd);  // F5运行后,停在这里

    ::SendMessage(hwnd,wparam,lparam);

    我的需求是获取page1对话框的句柄,

    他是page,没有标题,无法用findwindow,

    若用findwindow的第二个参数 注册类名的话 还要注册窗口。

    我现在不确定是否应该用getparent,望指教。

    2012年11月14日 5:41
  • ::SendMessage(hwnd,wparam,lparam)
    但是我不知道怎么捕获父窗口的句柄HWnd。
    ----------------------
    ::GetParent() ??

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    这个方法只是我的无奈之举,

    个人觉得 响应 spinbuttonctrl 的 NM_ReleasedCapture 消息 最直接。

    2012年11月14日 5:45
  • ::SendMessage(hwnd,wparam,lparam)
    但是我不知道怎么捕获父窗口的句柄HWnd。
    ----------------------
    ::GetParent() ??

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    HWND hwnd = NULL;

    ::GetParent(hwnd);

    if(hwnd == NULL)

      AfxMessagebox("Fault");

    else

      ::SendMessage(hwnd,0,0);

    结果hwnd为NULL,弹出Fault消息框

    2012年11月14日 6:01
  • ::SendMessage(hwnd,wparam,lparam)
    但是我不知道怎么捕获父窗口的句柄HWnd。
    ----------------------
    ::GetParent() ??

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    已经搞定

    见csdn 同类型题目, 由于原网页暂时连接打不开,无法复制上来。。

    2012年11月14日 9:34
  • 你好,
    很高兴您的问题解决了。希望您能在这里把解决办法分享下,这将会对其他有相似问题的成员很有帮助。
    此致

    Elegentin Xie [MSFT]
    MSDN Community Support | Feedback to us

    2012年11月22日 6:40
    版主