<<< 控件醒目 >>> 如何做一个下拉为TreeView的ComboBox控件? 请高手指正

BlueDog 2003-07-29 04:33:30
我用两种方法来实现以上控件,但均告失败
1、在 UserControl中定义一个ComboBox控件 cb,

然后在ComboBox的DropDown事件中激活TreeForm
cb_DropDown()
TreeForm.Show ,UserControl
....
在TreeForm中包含一个TreeView控件 tv

利用窗口子类化技巧
用 SetWindowLong将 NewWindowProc(...) 作tv的新窗口函数

NewWindowProc中其中处理
WM_KILLFOCUS 消息
...
select case uMsg
case WM_KILLFOCUS
{ unload TreeFrom 的功能}
case else
CallWindowProc(...)
End Select
....

这种方法一直工作的很好,但只能工作在普通窗口上,如果是模式对话框
则报错: “ 不能在模式窗口上再显示非模式窗口 ”
如果TreeForm.Show ,UserControl这一句改成
TreeForm.Show vbModal,usercontrol 则根本不工作!

2、于是我用第二种方法

在UserControl中定义两个控件
cb (ComboBox)
tv (TreeView)
然后用焦点转移来控制 UserControl的大小,来是否显示tv
同样子类化tv
问题是我发现当鼠标移出UserControl时,tv根本无法接收到 WM_KILLFOCUS

所以我很痛苦!

请问有没有高手做过类似控件,是如何处理的?
...全文
35 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
evbsky 2003-07-31
  • 打赏
  • 举报
回复
显示TV时加入 SetCapture tv.hwd

zyl910 2003-07-31
  • 打赏
  • 举报
回复
http://vbaccelerator.com/home/VB/Code/Controls/Drop_Down_Tool_Windows/Drop_Down_Form_Control/article.asp

1,451

社区成员

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

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