动态生成的控件为什么收不到鼠标消息?

whanlx 2007-03-01 03:11:37
我从CComboBox派生了一个控件(VC自动生成的代码)
但是这个控件如果是动态Create出来,我派生的那个类就收不到鼠标消息,
如果是对话框资源上的,就能响应
这个是怎么回事啊
谢谢!!

//.h 文件
#pragma once


// CMyComboBox

class 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"


// CMyComboBox

IMPLEMENT_DYNAMIC(CMyComboBox, CComboBox)

CMyComboBox::CMyComboBox()
{

}

CMyComboBox::~CMyComboBox()
{
}


BEGIN_MESSAGE_MAP(CMyComboBox, CComboBox)
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()



// CMyComboBox message handlers



void CMyComboBox::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//无法到达这里!!!!!!!!
CComboBox::OnLButtonDown(nFlags, point);
}
...全文
339 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
whanlx 2007-03-10
  • 打赏
  • 举报
回复
解决了,重载pretran。。
那个函数,然后解析消息
雷宗堂 2007-03-04
  • 打赏
  • 举报
回复
顶,我也遇到过这样的问题,后来有个高手帮忙解决了,再后来就忘了,明天帮你找找。
olncy 2007-03-04
  • 打赏
  • 举报
回复
帮顶
xiahouyi 2007-03-02
  • 打赏
  • 举报
回复
试试其他消息有没响应
arronbnm 2007-03-02
  • 打赏
  • 举报
回复
把ON_WM_LBUTTONDOWN()

改成 ON_MESSAGE(WM_LBUTTONDOWN, OnLButtonDown)试试
tong20037 2007-03-02
  • 打赏
  • 举报
回复
up
whanlx 2007-03-01
  • 打赏
  • 举报
回复
up
dazedase 2007-03-01
  • 打赏
  • 举报
回复
你点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);
}
raymonzhao 2007-03-01
  • 打赏
  • 举报
回复
1005看下是不是有重了的.
raymonzhao 2007-03-01
  • 打赏
  • 举报
回复
没道理啊.应该是可以的啊.你看看create的时候给定的控件属性是不是有问题.

最好先再弄一个资源上的控件,得到它的属性,再把属性付给你新建的.
whanlx 2007-03-01
  • 打赏
  • 举报
回复
是通过类向导影射过来的,而且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);
dazedase 2007-03-01
  • 打赏
  • 举报
回复
你可能需要在Resource.h里自定义一个ID,然后用该ID Create你的CComboBox
syy64 2007-03-01
  • 打赏
  • 举报
回复
void CMyComboBox::OnLButtonDown(UINT nFlags, CPoint point)
是通过类向导影射过来的吗?

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧