这样的问题很简单,容易实现.其途径有两条:
1 每个控件都有一个ID,通过这个ID你就可以完全控制了这个button控件. 同样消息映射
也是通过这个ID来进行的.所以,假如你要做两个button,就在这button的你窗口针对这
两个ID做两个ONWMMOUSEMOVE映射.最终,每个按钮触发不同的消息处理函数.
2 上面所说,是现在通用做法.假如,真如你所说,要做10000000000个button.虽然有些荒
唐,不过真要这样,按照第一种做法,显然不可能.岂不是要映射10000000000处理函数.那
怎么办呢?你可以在CMYBUTTON中做映射,但是怎样处分不同的按钮呢?你必须要在该button
中加入一标识m_buttonID,这样在每次构造函数时,给它赋值. 现在消息处理函数就可以根据
这个m_buttonID做不同处理了.(实际中,没有这种需求)
1 每个控件都有一个ID,通过这个ID你就可以完全控制了这个button控件. 同样消息映射
也是通过这个ID来进行的.所以,假如你要做两个button,就在这button的你窗口针对这
两个ID做两个ONWMMOUSEMOVE映射.最终,每个按钮触发不同的消息处理函数.
2 上面所说,是现在通用做法.假如,真如你所说,要做10000000000个button.虽然有些荒
唐,不过真要这样,按照第一种做法,显然不可能.岂不是要映射10000000000处理函数.那
怎么办呢?你可以在CMYBUTTON中做映射,但是怎样处分不同的按钮呢?你必须要在该button
中加入一标识m_buttonID,这样在每次构造函数时,给它赋值. 现在消息处理函数就可以根据
这个m_buttonID做不同处理了.(实际中,没有这种需求)
解决方案 »
- 打开记录集时报错
- GetUserName()函数得到的是一堆乱码,为什么?
- 水一个 大家的大写字母怎么打?
- 用 CEGUI SDK for Visual C++ 6 (Native STL)如何做一个简单的界面?
- OPENCV 打开文件时编译通不过 'CStringA' : undeclared identifier
- 使用webbrowser2,如何在网页中查找字符串?网页中有多个框架。
- 对话框中怎样去掉最大,最小,关闭按钮?
- 求助recordset的movefirst
- 刚入门学习atl的activex,怎么在网页显示控件包括文字如图
- mfc音乐播放软件
- 请问ado中如何用select对SQL Server数据库中的表进行查询?(分还可以再加)
- 100分:请问通过IWebBrowser2 IHTMLDocument2等接口如何得到IE浏览器中用户选中区的内容(IHTMLSelectObject接口),内详
两个ID做两个ONWMMOUSEMOVE映射.
请问这两个映射在哪个类中做?
在CMYBUTTON类中的OnMOuseMove含数中根据ID号来判断的话就是我说的1000000个按钮怎么办?也就是说CMybutton类不可移植,难道这是MFC的优点吗?这样的MFC能用吗?在Button所在的窗口类映射我不知道怎么做希望指教?
1 加两个按钮button,每个按钮都有自己的ID
2 子类化.(即建两个CMyButton对象,与控件关联起来)
3 在类向导中,加入两个消息映射函数(即两个button)
这总该会吧!
去处理它.不管你采取什么方法?是消息映射也好,还是虚函数,或者是switch语句也好.
谢谢你!
这总该会吧!我是菜了请你详细给我讲一下?
3 在类向导中,加入两个消息映射函数(即两个button)?
怎样的两个消息映射函数?在类向导中这两个按钮根本没有WM_MOUSEMOVE消息映射?它们只有BN_CLICKED和BN_DOUBLECLICKED可以映射?
button的WM_MOUSEMOVE消息确实没有作为notify通知消息去传递给父窗口.
所以,没办法直接用MFC向导去映射.不过,实际中有这种需求吗?如果真的有这种需求的话,当初microsoft为什么不把这个
消息通知加入控件中呢?那怎么办?你向模拟notify通知,向父窗口发送一个自定义消息(其中带参数this),以在
父窗口中区分是那一个button对象.不过,你老兄真行,你到底在做什么东东呀!
老兄我只是举了例子,EDIT,LISTBOX,COMBOBOX等等它们都没有MOUSEMOVE,MOUSEDOWN,MOUSEUP这样的映射,于用途您写过程序吗..... 我的目的是我新增的这个CMYBUTTON类能够移植我不想在CMYBUTTON这个类的ONMOUSEMOVE含数中写代码来判断ID号?