idea代码提示不定位到上次选择
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了idea代码提示不定位到上次选择相关的知识,希望对你有一定的参考价值。
参考技术A idea代码回到到上次选择的方法:在IDEA中可以使用快捷键返回,默认是ctrl+alt+方向键。idea是java编程语言的集成开发环境。duilib 修复combo控件打开下拉菜单后不会自动定位到上次选择的位置上的bug
转载请说明原出处,谢谢:http://blog.csdn.net/zhuhongshu/article/details/43484589
今天群里一个网友向我反应combo控件的一个bug:单击combo控件,展开下拉菜单后,不会自动定位到上次选择的位置,而是定位到最开头的位置。
带有bug的效果图: 修复后的效果图:
其实combo控件的下拉菜单是一个窗体,类名为CComboWnd,在他的初始化函数Init中已经得到了上次选择的项目的索引并保存到m_iOldSel变量中。所以只要使用这个变量,来初始化CComboWnd窗体的滚动条的位置就可以了。CComboWnd类中已经有了重定位函数EnsureVisible,所以在合适的时候调用这个函数就可以了。
EnsureVisible函数需要得到上次选择项的控件的位置来初始化滚动条,而所有控件的初始化后会发送windowinit消息。所以需要做的解释给CComboWnd类继承INotifyUI接口,并且将CComboWnd添加到通知队列里,最后在windowinit消息里调用EnsureVisible函数就可以了。
修复步骤:
1、给CComboWnd类继承INotifyUI接口
2、为CComboWnd类添加 void Notify(TNotifyUI& msg) ; 成员函数
3、在WM_CREATE消息里,把CComboWnd添加到消息队列:
m_pm.AddNotifier(this);
4、在Notify函数添加如下代码:
void CComboWnd::Notify(TNotifyUI& msg)
if (msg.sType == _T("windowinit"))
EnsureVisible(m_iOldSel);
总结:
修复后的代码已经更新到我的库里:点击打开链接
Redrain 2015.2.4
以上是关于idea代码提示不定位到上次选择的主要内容,如果未能解决你的问题,请参考以下文章