1:对于一个父窗体上的所有子控件的消息为什么接收总是不到,如1000000个EDIT,我想要处理这1000000个EDIT的WM_MOUSEMOVE消息,下面的宏理论应该是可以的为什么实际总是不行,ON_CONTROL(WM_MOUSEMOVE,ID,MEMBERFUN),因为ID号是不同的它应该是可以找到MEMBERFUN,可为什么找不这个MEMBERFUN函数,而且在EDIT失去焦点时倒是进入了这个MEMBERFUN,天啊这是怎么回事.2:别告诉我用什么重载继承等等,因为我对EDIT只处理WM_MOUSEMOVE这一个消息还要重载的,哪我父窗体上还有LISTBOX,COMBOBOX,STATICT等等这样的1000000个不同类的
控件,每个我现在只处理一个在CLASSWizard不能影射的消息,如果要继承的话你有耐心对这1000000个不同的类都重栽一下吗?
请问怎么办?
控件,每个我现在只处理一个在CLASSWizard不能影射的消息,如果要继承的话你有耐心对这1000000个不同的类都重栽一下吗?
请问怎么办?
解决方案 »
- A进程HOOK进了B进程, A如何知道B进程已经退出?
- 多线程操作std
- 使用CSocket::SendTo出问题
- 将ActiveX控件托放到对话框中出错,这是为什么?
- 如何用vc读取*.wav文件,万分感谢!!!
- 请问如何用VC创建一个WIN32 DLL,有没有这方面的详细资料
- 两个类相互有对方的类成员变量,如何引用?
- 高分求解,如果分不够,我可以再加。希望高手们都来发表自己的看法,心得,谢谢。两个显示屏的问题!
- 如何在child modal dialog中控制parent dialog中的控件?
- 有LVS_OWNDATA属性的CListCtrl 加图标的问题,25分
- 请教一个钩子的问题
- 解答过 《实在是没法子了,请大家帮帮忙,关于添加ie工具栏图标的问题 》来结账!!!
2,你必须重栽CEdit类为CEditEx等,再为你的Edit创建CEditEx的DDX变量即可解决
Use this macro to map a contiguous range of command IDs to a single message handler function
我说了这个控件是不同类的哪当然MEMBERFXN肯定是不同的消息映射,ID1,ID2怎能在一个函数里呢?
我说了这1000个控件是不同类的哪当然MEMBERFXN肯定是不同的消息映射,ID1,ID2怎能在一个函数里呢?
简单地请问各位高手,EDIT的MOUSEMOVE消息为什么检测不到,为什么,为什么,为什么??
原因?
你试试SetWindowLong()//Do the subclassing
原因?
EDIT也是一个窗口,有它自己的窗口类和自己的窗口过程(系统提供了),所以属于EDIT的普通的WM_XXX类型的消息都由EDIT自己的窗口过程处理了,并不会发送到父窗口。不过EDIT的窗口过程在处理了某些消息后(如WM_LBUTTONWOND和WM_LBUTTONUP)后会发送WM_COMMAND形式的通知消息给它的父窗口(如XX_CLICKED)
对于EDIT我用下面的宏映射
ON_CONTROL(WM_MOUSEMOVE,ID,MEMBERFUN)我一执行程序,鼠标移进移出EDIT成员函数MEMBERFUN是不会执行的,可是当EDIT失去焦点时,成员函数MEMBERFUN确被执行了。这是为什么?你不是说对于WM_XXX类型的消息都由EDIT自己的窗口过程处理了,这里父窗体为什么能接收呢请继续指教。
2.我在WIN98SE下试了,3000个EDIT系统就不行了,不得不重新起动。这么多EDIT你应该在需要时才动态创建。反正它又无法全部同时显示出来。要不在WIN9X下是没那么多资源给你用的。
BOOL CMAINDlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->hwnd==GetDlgItem(IDC_EDIT1)->GetSafeHwnd() && pMsg->message==WM_CHAR
return CDialog::PreTranslateMessage(pMsg);
}
看来我有点怀疑你们写过程序吗,你们别是什么什么研究生吧。