什么时候改用 ON_CONTROL ? 什么时候改用 ON_NOTIFY ??
解决方案 »
- 删除char指针程序出错
- 【请教】如何读取位图文件
- 资源文件怎实现多语言版
- 关于串口和dialog中使用控件的两个小问题。
- 虚心寻求一界面方案,参与的就有分!帮顶的也有分!
- ???希望在SDI程序(继承自CEditView)的界面栏上能够显示鼠标所在行列位置
- select
- 怎么用DDE?在两程序间进行通讯有哪些方法?share memory ,dde???
- sourcesafe的客户端怎么连上服务器??谁会??
- 送分给您:请问继承ClistCtrl的DrawItem后如何控制重画一行的某个Cell?
- CStatic的BN_CLICKED消息有什么用处啊。
- Richedit 中画了下划线 怎么以后一直都有下划线 重设了CHARFORMAT 也不行
--------------------------------------------------------------------------------
Re: What is the difference between ON_NOTIFY and ON_CONTROL
ON_CONTROL is used to define message map entries for old-style control
notifications that are based on WM_COMMAND message. ON_NOTIFY is used
to define message map entries for WM_NOTIFY-based notifications that
were introduced in Win32.fblaha 06-06-2001 11:31 PM
--------------------------------------------------------------------------------
Re: What is the difference between ON_NOTIFY and ON_CONTROL
The difference is that ON_CONTROL define custom notification and isn't supported by ClassWizard. You must add something like ON_CONTROL(YourNotificationCode, ....) to message map entry.In case of ON_NOTIFY you can use ClassWizard. Otherwise, there isn't( on my opinion) signicificat difference. From programmers points of view.
如果消息是通过WM_COMMAND发出的,用ON_CONTROL()映射,
如果消息是通过WM_NOTIFY发出的,用ON_NOTIFY映射,
早期的通知消息是通过WM_COMMAND“携带”过来的,
后来通知消息种类太多了,微软又增加了WM_NOTIFY消息专门处理,
为了向前兼容,所以出现了WM_COMMAND和WM_NOTIFY同时用于
传递通知消息的局面,不错,ON_COMMAND宏也是针对WM_COMMAND消息,但是它是专门针对
CN_COMMAND这个通知消息,所以就不用指定通知码了 :)最直观地比较可以从宏定义看出来:#define ON_COMMAND(id, memberFxn) \
{ WM_COMMAND, CN_COMMAND, (WORD)id, (WORD)id, AfxSigCmd_v, \
#define ON_CONTROL(wNotifyCode, id, memberFxn) \
{ WM_COMMAND, (WORD)wNotifyCode, (WORD)id, (WORD)id, AfxSigCmd_v, \
#define ON_NOTIFY(wNotifyCode, id, memberFxn) \
{ WM_NOTIFY, (WORD)(int)wNotifyCode, (WORD)id, (WORD)id, AfxSigNotify_v, \