有如下代码:
BEGIN_MSG_MAP(SmartGraph)
CHAIN_MSG_MAP(CComControl<SmartGraph>)
MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
DEFAULT_REFLECTION_HANDLER()
END_MSG_MAP()LRESULT SmartGraph::OnLButtonDown(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/)
{
POINT pt;
pt.x = GET_X_LPARAM(lParam); 
pt.y = GET_Y_LPARAM(lParam); 
LButtonDown(pt.x, pt.y, wParam);
return 0;
}我在代码中找不到函数LButtonDown的定义,
请大家指点下在那里能找到对应的实现代码.

解决方案 »

  1.   

    在.h文件中有afx_msg void OnLButtonDown(.....)
      

  2.   

    to DentistryDoctor(昨日黄花不再美) :
    ALT+G是转到定义,我用了没有效果.另外我搜索了整个文件目录,也并没有找到LButtonDown的实现函数.另外LButtonDown是下面接口中的一个方法.
    __interface _ISmartGraphEvents
    {
    [id(1), helpstring("method LButtonDown")] HRESULT LButtonDown([in] LONG xPos, LONG yPos, LONGLONG wParam);
    [id(2), helpstring("method LButtonUp")] HRESULT LButtonUp([in] LONG xPos, LONG yPos, LONGLONG wParam);
    [id(3), helpstring("method MouseMove")] HRESULT MouseMove([in] LONG xPos, LONG yPos, LONGLONG wParam);
    };是不是有Invoke之类的函数,
    在Invoke中通过id来把LButtonDown需要做的事转移到其它地方,
    但是我在代码中并没有看到Invoke函数,
    因小弟以前没有接触过ATL,所以...
      

  3.   

    去_ISmartGraphEvents接口实现的工程里找。
      

  4.   

    有兴趣的朋友可以到http://www.codeproject.com/atl/SmartGraph.asp看看,
    我调试的就是这里的代码.
      

  5.   

    原来是在代码中通过这些宏来进行的处理.
    BEGIN_EVENTSINK_MAP(CSmartGraphDemoView, CFormView)
    ON_EVENT(CSmartGraphDemoView, IDC_SMARTGRAPH1, 1, LButtonDownSmartgraph1, VTS_I4 VTS_I4 VTS_I8)
    ON_EVENT(CSmartGraphDemoView, IDC_SMARTGRAPH1, 2, LButtonUpSmartgraph1, VTS_I4 VTS_I4 VTS_I8)
    ON_EVENT(CSmartGraphDemoView, IDC_SMARTGRAPH1, 3, MouseMoveSmartgraph1, VTS_I4 VTS_I4 VTS_I8)
    END_EVENTSINK_MAP()其中LButtonDownSmartgraph1是等价于LButtonDown的函数,而VTS_I4 VTS_I4 VTS_I8则是它的三个参数.
      

  6.   

    一般想 MAPX 之类得控件都是通过 BEGIN_EVENTSINK_MAP 来隐射