c++6.0中,定义了一个消息句柄
INT nReplyMsg = RegisterWindowMessage("Reply Message");
然后用
BEGIN_MESSAGE_MAP(CSCDemoDlg, CDialog)
//{{AFX_MSG_MAP(CSCDemoDlg)
ON_LBN_SELCHANGE(IDC_LIST_FUNC, OnSelchangeListFunc)
ON_LBN_SELCHANGE(IDC_LIST_TITLE, OnSelchangeListTitle)
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE_STOCK, OnSelchangedTreeStock)
ON_BN_CLICKED(IDC_CLEAR_PREV_ASK, OnClearPrevAsk)
ON_BN_CLICKED(IDC_USERNAME, OnUsername)
//}}AFX_MSG_MAP
ON_REGISTERED_MESSAGE(nReplyMsg, OnReply)
END_MESSAGE_MAP()
映射到OnReply方法上LRESULT CSCDemoDlg::OnReply(WPARAM wParam, LPARAM lParam) //消息处理
{
.......
}请问在C#中如何实现这个功能?
INT nReplyMsg = RegisterWindowMessage("Reply Message");
然后用
BEGIN_MESSAGE_MAP(CSCDemoDlg, CDialog)
//{{AFX_MSG_MAP(CSCDemoDlg)
ON_LBN_SELCHANGE(IDC_LIST_FUNC, OnSelchangeListFunc)
ON_LBN_SELCHANGE(IDC_LIST_TITLE, OnSelchangeListTitle)
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE_STOCK, OnSelchangedTreeStock)
ON_BN_CLICKED(IDC_CLEAR_PREV_ASK, OnClearPrevAsk)
ON_BN_CLICKED(IDC_USERNAME, OnUsername)
//}}AFX_MSG_MAP
ON_REGISTERED_MESSAGE(nReplyMsg, OnReply)
END_MESSAGE_MAP()
映射到OnReply方法上LRESULT CSCDemoDlg::OnReply(WPARAM wParam, LPARAM lParam) //消息处理
{
.......
}请问在C#中如何实现这个功能?
因为我要调用的c++的程序中,
就是用消息方法映射的,BEGIN_MESSAGE_MAP(CSCDemoDlg, CDialog)
//{{AFX_MSG_MAP(CSCDemoDlg)
ON_LBN_SELCHANGE(IDC_LIST_FUNC, OnSelchangeListFunc)
ON_LBN_SELCHANGE(IDC_LIST_TITLE, OnSelchangeListTitle)
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE_STOCK, OnSelchangedTreeStock)
ON_BN_CLICKED(IDC_CLEAR_PREV_ASK, OnClearPrevAsk)
ON_BN_CLICKED(IDC_USERNAME, OnUsername)
//}}AFX_MSG_MAP
ON_REGISTERED_MESSAGE(nReplyMsg, OnReply)
END_MESSAGE_MAP(),
而不是在窗口接收消息句柄然后作相应处理的,
我也没法啊,高手指教,如何处理啊。
http://topic.csdn.net/u/20090808/21/ae38a060-eb6f-4fd2-a542-319aa9a94a38.html
讨论啊
//很怀疑LZ你是否了解"#define"的用法,如果不了解,先什么都不要做了,先快去学习//先看这个,从
#define BEGIN_MESSAGE_MAP(theClass, baseClass) \
....
static const AFX_MSGMAP_ENTRY _messageEntries[] ={//一至到这里
//其实差不多就是定义了一个数组
//ON_COMMAND 、ON_REGISTERED_MESSAGE等 其实就是往这个数组初使化数据//最后的这个END_MESSAGE_MAP()其实是调用一个过程去解析当前的窗口信息
//如果数组有相应该的窗口信息,就调用相应的程序去执行。///最后说一下,C#没有#define且指针受到限制,要使用委托或是事件等去实现
//如果数组有相应该的窗口信息,就调用相应的程序去执行。我也知道这个原理,关键是,我在c#中如何做到?
根据一个消息句柄然后自动映射到一个方法上面啊?
C#没有宏支持。