关于unicode和多字节字符集和消息常数的一段话

slowgrace 2009-04-17 01:38:58
在这个帖子http://topic.csdn.net/u/20080728/09/d07a6e83-e0bf-4e4b-931f-87c7a7e6244a.html8楼有如下的话:

“我试了一下,我用的是多字节字符集,发现TreeCtrl发出的通知是TVN_SELCHANGEDW,而不是TVN_SELCHANGEDA,用Unicode的方式可以响应:
ON_NOTIFY(TVN_SELCHANGEDW, ID_LISTTREE, OnSelchangedListTree)”

这篇帖子http://hi.baidu.com/ensteinniesen/blog/item/6e277fafa4f85ccb7cd92a5b.html里解释了多字节字符集和UNICODE的概念。

两个帖子对照看,我怎么看不懂这句话是什么意思啊?既然他用的是多字节字符集,如何又用Unicode的方式响应啊?哪位能否稍进一步解释一哈?
...全文
308 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahao 2009-04-26
  • 打赏
  • 举报
回复
分无所谓了,我关心的是我的回答有没有用

slowgrace 2009-04-26
  • 打赏
  • 举报
回复
谢谢ahao指点。下回给你分哦。
ahao 2009-04-26
  • 打赏
  • 举报
回复
:)哦,其实一样的,标准控件大部分都有一个消息,比如,
TreeView 是 TVM_SETUNICODEFORMAT
HeaderCtrl 是 HDM_SETUNICODEFORMAT
ListView 是 LVM_SETUNICODEFORMAT
作用就是在运行期改变控件的字符集,不用重新创建控件,
如果设置为TRUE,就是发送W版本的Notify消息
如果设置为FALSE,就是发送A版本的Notify消息。
slowgrace 2009-04-26
  • 打赏
  • 举报
回复
有用啊。我都抄到博客里了,并且列上了你大名。呵呵。
slowgrace 2009-04-26
  • 打赏
  • 举报
回复
呵呵。ahao表生气。因为因为VB里好像没看SetUnicodeFormat这个方法,:)
ahao 2009-04-25
  • 打赏
  • 举报
回复
郁闷,居然没分。。
slowgrace 2009-04-25
  • 打赏
  • 举报
回复
基本明白了,谢谢楼上各位。结帖。

小结在这里:http://blog.csdn.net/slowgrace/archive/2009/04/24/4105426.aspx
VBAdvisor 2009-04-19
  • 打赏
  • 举报
回复
如果Treeview是CreateWindowExW创建的,就得用W-type 消息。反之,用A-type。
ahao 2009-04-18
  • 打赏
  • 举报
回复
看treectrl的SetUnicodeFormat这个方法
cnzdgs 2009-04-17
  • 打赏
  • 举报
回复
凡涉及到字符集的通知事件都有A和W两种消息定义,TVN_SELCHANGEDA和TVN_SELCHANGEDW实际上是两个不同的通知,其含义是相同的,不同之处在于通知中附带的结构,A结构中使用多字节字符串,W结构使用Unicode字符串,这两种通知都可以在任意字符集的程序中响应,但前提是控件必须要发出该类型的通知。通常情况下,控件发出通知的类型是与程序使用的字符集相同的。TreeCtrl这里有些特别,我也没有深入去研究。

1,488

社区成员

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

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