社区
ATL
帖子详情
制作ActiveX 控件问题?
leibo_80
2007-09-08 11:38:59
自定义了一个FireTextChange事件,控件里有Ontextchange()消息响应函数,但翻遍了却没找到相应的消息映射,用哪种消息映射触发这个自定义的事件函数.
WM_TIMER和WM_KEYDOWN消息映射都试过,效果都不理想.
请高手赐教.
...全文
140
13
打赏
收藏
制作ActiveX 控件问题?
自定义了一个FireTextChange事件,控件里有Ontextchange()消息响应函数,但翻遍了却没找到相应的消息映射,用哪种消息映射触发这个自定义的事件函数. WM_TIMER和WM_KEYDOWN消息映射都试过,效果都不理想. 请高手赐教.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
leibo_80
2007-09-10
打赏
举报
回复
这里不能传图片.
能到我的私人论坛来讨论吗?
谢谢!
http://youngman.uu1001.com/read.php?tid=4
dyw
2007-09-10
打赏
举报
回复
CString m_text; // 假定
在WM_CHAR消息中,
m_text += <WM_CHAR消息字符>; // 可能需要处理Backspace键
FireTextChanged();
dyw
2007-09-10
打赏
举报
回复
WM_CHAR只能响应键盘,其他输入设备在其产生的事件里处理。
VB属性页找找例子看
leibo_80
2007-09-10
打赏
举报
回复
WM_CHAR是不是只能响应键盘?如果用其他输入设备呢?
还有自定义控件属性页在VB可视属性框怎么显示.(就是VB左边那排属性窗口)
dyw
2007-09-09
打赏
举报
回复
http://msdn2.microsoft.com/en-us/library/d3b8fw6t(VS.80).aspx
leibo_80
2007-09-09
打赏
举报
回复
我用WM_CHAR和WM_KEYDOWN
用VB
form1.caption = my231.text
form1.caption 和 my231.text总有一个字符的误差.
dyw
2007-09-09
打赏
举报
回复
WM_CHAR和WM_KEYDOWN一样的,很滞后
-----------
键盘消息应该是最实时的,怎么会滞后呢?这是一种同步处理。
Timer也是可靠的,其工作方式可以理解为是异步的。
OnTimer与OnTextChanged有些代码是一样的,可以略简化一下:
if(m_text != GetText())
{
m_text=GetText();
leibo_80
2007-09-09
打赏
举报
回复
WM_CHAR和WM_KEYDOWN一样的,很滞后.
哎,没法,还是用WM_TIMER,但是老感觉WM_TIMER不可靠,所以想找个合适的消息映射.
谢谢你.
你看看我的TIMER还有什么要补充的吗?
void CMy23Ctrl::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent == 1)
if(m_text != GetText())
{
m_text=GetText();
this->OnTextChanged();
}
COleControl::OnTimer(nIDEvent);
}
dyw
2007-09-09
打赏
举报
回复
WM_CHAR
leibo_80
2007-09-09
打赏
举报
回复
void CMy23Ctrl::OnTextChanged()
{
// TODO: Add your specialized code here and/or call the base clas
if(m_text != GetText())
{
m_text=GetText();
FireTextChange();
InvalidateControl();
SetModifiedFlag();
}
COleControl::OnTextChanged();
}
leibo_80
2007-09-09
打赏
举报
回复
[id(1)] void TextChange();
WM_KEYUP如果键按住不放,没有触发OnTextChange().
我在类向导中没有找到WM_LOSTFOCUS.
还有什么消息能替代EN_CHANGE吗?
我只是想做个三位一体的编译文本框控件,这几天愁死了,真想知道微软大哥的文本框控件EN_CHANGE是什么触发的.
dyw
2007-09-09
打赏
举报
回复
问题在于你的FireTextChange的触发条件是怎么定义的:
——如果是只要文本变更就马上通知,那就用WM_KEYUP消息。这个跟编辑框的EN_CHANGE类似。
——如果是失去焦点时触发,就使用WM_LOSTFOCUS
leibo_80
2007-09-09
打赏
举报
回复
MSDN的这些我都看过.
现在关键是文本框控件有EN_CHANGE消息映射,而自定义文本框用什么映射OnTextChange()函数哦.
手把手教你
制作
ActiveX
控件
手把手教你
制作
ActiveX
控件
精彩编程与编程技巧-如何在网页上使用 vb6
制作
的
ActiveX
控件
?...
如何在网页上使用 vb6
制作
的
ActiveX
控件
?
项目实战:Java Applet与
ActiveX
控件
应用
控件
技术是B/S项目的开发手段,在项目实战中非常重要! 作为一个程序员和架构师,掌握
控件
的开发和集成技术,是必须的技能; 浏览器中显示的内容主要是标签,当需要复杂操作时,
控件
技术是超越标签、给B/S项目扩展...
vs
制作
activex
控件
使用vs开发
activex
控件
,
制作
cab包,颁发证书,签名,最后安装
用VB
制作
ActiveX
控件
用VB
制作
ActiveX
控件
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章