我从CComboBox派生了一个控件(VC自动生成的代码)
但是这个控件如果是动态Create出来,我派生的那个类就收不到鼠标消息,
如果是对话框资源上的,就能响应 
这个是怎么回事啊 
谢谢!!//.h 文件
#pragma once
// CMyComboBoxclass CMyComboBox : public CComboBoxEx
{
DECLARE_DYNAMIC(CMyComboBox)public:
CMyComboBox();
virtual ~CMyComboBox();protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
};//.cpp 文件// MyComboBox.cpp : implementation file
//#include "stdafx.h"
#include "tr.h"
#include "MyComboBox.h"
// CMyComboBoxIMPLEMENT_DYNAMIC(CMyComboBox, CComboBox)CMyComboBox::CMyComboBox()
{}CMyComboBox::~CMyComboBox()
{
}
BEGIN_MESSAGE_MAP(CMyComboBox, CComboBox)
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()// CMyComboBox message handlersvoid CMyComboBox::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//无法到达这里!!!!!!!!
CComboBox::OnLButtonDown(nFlags, point);
}

解决方案 »

  1.   

    void CMyComboBox::OnLButtonDown(UINT nFlags, CPoint point)
    是通过类向导影射过来的吗?
      

  2.   

    你可能需要在Resource.h里自定义一个ID,然后用该ID Create你的CComboBox
      

  3.   

    是通过类向导影射过来的,而且PreTrans...函数重载后只能收到WM_PAINT消息
    我也定义ID了 不就是个常量么?m_Combo2.Create(WS_CHILD | WS_BORDER |CBS_DROPDOWN,CRect(0,0,150,200),this,1005);
    m_Combo2.ShowWindow(SW_SHOW);
      

  4.   

    没道理啊.应该是可以的啊.你看看create的时候给定的控件属性是不是有问题.最好先再弄一个资源上的控件,得到它的属性,再把属性付给你新建的.
      

  5.   

    你点ComboBox的向下的小箭头试试
    不能用OnLButtonDown来响应Combox的操作
    void CMyCombo::OnLButtonDown(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default
    AfxMessageBox("serh");
    CComboBox::OnLButtonDown(nFlags, point);
    }
      

  6.   

    把ON_WM_LBUTTONDOWN()改成  ON_MESSAGE(WM_LBUTTONDOWN, OnLButtonDown)试试
      

  7.   

    解决了,重载pretran。。
    那个函数,然后解析消息