急急,怎样把ID号和控件联系起来呀?

abbot 2003-10-19 09:10:35
我在DLL里要加一个MScomm控件,要接受事件OnCommMSComm()事件。可是不把控件联系一个ID,就接受不到事件,怎么办呀,请高手指点。急急!
...全文
30 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
abbot 2003-11-07
  • 打赏
  • 举报
回复
问题解决,我用API 和多线程实现了,不用控件了。
abbot 2003-10-23
  • 打赏
  • 举报
回复
我是和人合作,我负责做个DLL,接收串口来的数据,并处理,然后传到别人处理的初步结果,我这几天绞尽脑汁,用倥件不行,正在试API,可能也不乐观,不知在DLL里可不可以用多线程,我建一个线程,WaitSingleObject()或WaitCommEvent()行不行,如果实在不行.我只好建一个类,让他加在exe里,或许可以自己建一个倥件,但是我不太懂关于ActiveX的东西,倥件怎么做会比较好呀,可不可以处理事件呢??请多指点一下,万分感谢!!
MilitaryMiniatures 2003-10-23
  • 打赏
  • 举报
回复
你这么做肯定不行的。
不知道为什么你要这么做。
其实,你有必要将你的接收部分和发送部分做在一起。控件在exe里面创建,而控件的事件在dll里面处理,好像不合适。
提一个建议,就是说,你可以将数据接收/发送都在你的exe里面处理,这样就不存在你说的这个事件接收问题了。那么接收下来的数据如何处理,这个可以交给dll去处理。也就是说,dll只是处理数据,不要处理涉及到界面的操作(事件本身就涉及到一些消息循环,涉及到界面)。
abbot 2003-10-21
  • 打赏
  • 举报
回复
我在DLL里添加的倥件,其实就是声明了一个变量,是CMSComm ,并没有用到ID呀.
后来我在dllApp的CMyDllApp::InitInstance() 里用了
m_Com.Create( NULL,0,CRect(0,0,0,0) ,theApp.m_pMainWnd,IDC_MSCOMM1);
其中IDC_MSCOMM1是我自定义的ID.可是不行,运行时还是接收不到ONComm()事件
我在MyDllApp.cpp里已经定义了事件:
BEGIN_EVENTSINK_MAP(CCkouApp, CWinApp)
ON_EVENT(CCkouApp, IDC_MSCOMM1, 1, OnCommMscomm, VTS_NONE)
END_EVENTSINK_MAP()
可我接收不到,CMyDllApp::OnCommMscomm()没有响应,用别的程序看,串口确实来了数据呀!
我实在没办法.
清大家多帮帮忙!谢谢

zhang_zhibin 2003-10-20
  • 打赏
  • 举报
回复
SetDlgCtrlID可以设定一个控件的ID号。
cauiot 2003-10-20
  • 打赏
  • 举报
回复
在message map中加入类似:
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
ON_COMMAND(ID_TOOLS, OnTools)
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)

的映射.
JetGeng 2003-10-20
  • 打赏
  • 举报
回复
通过父窗体的来调用GetDlgCtrlID试试看,也许有用。
wuxfBrave 2003-10-20
  • 打赏
  • 举报
回复
是阿,传递和窗口的m_hWnd应该可以阿
captainliyun 2003-10-19
  • 打赏
  • 举报
回复
把控件的hWnd传进去不行吗?

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧