在CMainFrame的OnCreate 中,直接调用ActiveX的Create函数,创建控件,
然后在需要的地方直接调用控件的方法(公有)即可.
然后在需要的地方直接调用控件的方法(公有)即可.
解决方案 »
- 能否解释一下运行时间长以后,telnet不通的原因?而且重启机子以后就可以了,这是怎么一回事呢?
- 关于获取屏幕的问题
- 在VC里,如何获得代码运行的时钟周期?
- 请问错误提示没有实装option机能State:S1C00,Native:106,Origin:[Microsoft][ODBC Microsoft Access Driver]是什么意思?
- Invalidate(FALSE)作用时间问题
- 请大家帮忙看一下哪错了,实在找不出来
- windows media player
- 问题~~~~~
- mfc中如何知道用户打开了某一文件,打开某文件时,会传递什么消息
- 帮帮我!学VC怎么学?
- 苦思几日不知所措,渴求大侠明以教我!!!
- 如何在对话框中画一条线
ActiveX控件中有一些事件如何映射到CMainFrame,如我有一socket的控件,一有网罗消息他就要通知CMainFrame,完成相应的处理,我该怎做??
//{{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
******* afx_msg void OnSocketDataArrival (long bytesTotal);
//}}AFX_MSG
****** DECLARE_EVENTSINK_MAP()
DECLARE_MESSAGE_MAP()
在MainFrm.cpp中,添加
**** // add eventsink map to hook events
BEGIN_EVENTSINK_MAP(CMainFrame, CFrameWnd)
ON_EVENT(CMainFrame, ID_GPSSocket, 0 /* OnDataArrival */,
OnSocketDataArrival,VTS_I4)
END_EVENTSINK_MAP()
*********
然后手工添加CMainFrm::OnSocketDataArrival(long bytesTotal);即可.
至于如何知道手工加入的代码参数如何设定,一个简单方法就是打开一个
dialog based的新Project,在对话框中插入一个winsocket6.0控件,
在该对话框上点右键,插入消息处理函数,objectID选该插入的控件,选
希望响应的消息,添加处理函数,看看向导添加的代码.这些代码都从Tlb文件中
获得的.
THANK YOU FOR YOUR ANSWER, BUT I STILL HAVE LITTLE CONFUSED. I dont understand the Macro (CMainFrame, ID_GPSSocket, 0 /* OnDataArrival */,
OnSocketDataArrival,VTS_I4)what does those Parameters mean, specially the second ID_GPSSocket, where does it from, and the third, why is it 0?
thanks thanks
you use in the m_sockctrl.Create(....) function, ID_GPSSocket is
the one I used in my project, you can use any symbol you like.
0 /* OnDataArrival */, is the index of event sink of winsock
control, when the control was made , the index value was decided,
the information stored in the relevant .tlb file.
Flowwing are all the event sink of winsock,you can see index of each
function:BEGIN_EVENTSINK_MAP(CSocketDlg, CDialog)
//{{AFX_EVENTSINK_MAP(CSocketDlg)
ON_EVENT(CSocketDlg, IDC_WINSOCK1, 5 /* Close */, OnCloseWinsock1, VTS_NONE)
ON_EVENT(CSocketDlg, IDC_WINSOCK1, 0 /* DataArrival */, OnDataArrivalWinsock1, VTS_I4)
ON_EVENT(CSocketDlg, IDC_WINSOCK1, 1 /* Connect */, OnConnectWinsock1, VTS_NONE)
ON_EVENT(CSocketDlg, IDC_WINSOCK1, 2 /* ConnectionRequest */, OnConnectionRequestWinsock1, VTS_I4)
ON_EVENT(CSocketDlg, IDC_WINSOCK1, 6 /* Error */, OnErrorWinsock1, VTS_I2 VTS_PBSTR VTS_I4 VTS_BSTR VTS_BSTR VTS_I4 VTS_PBOOL)
ON_EVENT(CSocketDlg, IDC_WINSOCK1, 4 /* SendComplete */, OnSendCompleteWinsock1, VTS_NONE)
ON_EVENT(CSocketDlg, IDC_WINSOCK1, 3 /* SendProgress */, OnSendProgressWinsock1, VTS_I4 VTS_I4)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP() if these are useful to you, don't forget pay me scores.