LingosHook:Lingoes生词本第十六版

LingosHook:Lingoes生词本第十六版


    LingosHook第十六版(v1.1.002)功能上没有啥变化,都是小打小闹的修改而已,这里可以 下载。
    版本主要修改如下:
        1. Tray菜单中的'Run Lingoes'项在Lingoes启动的情况下将变为灰色,不能点击;
                Lingoes禁止多实例运行的,所以点了也没用,索性就不让点好了。还是LingosHook好,运行几个都行,嘿嘿。。。不知道各位测试过没有,如果运行多个LingosHook,在取词是会有什么结果?我不说,你们猜去吧,反正第一次无意这样做时,吓了一跳,感觉很神。。。不是我神,API神啊。。

        2. 修正点击HTML窗口导致焦点丢失的问题;
                前面有同学报告说‘左侧Index窗口中,上下方向键失效’的问题。这个问题我是知道的,是由于wxActivex在获得焦点后,每次刷新HTML数据时,都自动获得焦点,导致Index窗口失去焦点,无法使用方向键;这个问题还一样出现在‘Daily Memory’的输入框中,直接导致输入框的快捷方式无法使用,这个功能可是我最喜欢的一个啊。。。于是发了狠心修正,无奈能力不够,wxActiveX怎么改都不行,最后只好发扬‘打不过还躲不过’的精神--为了防止其抢焦点,在相应控件获得焦点是时,直接将wxActiveX来个Disable,绝吧。。。但不让人查看HTML页面又有点‘过分’,于是在鼠标移开,或者人为使控件丢失焦点时(就是鼠标点击别的控件了。。),再将其Enable下。。。原理很‘无聊’,很简单的。。。部分相关代码如下,真的很简单的。。。

void  CLHListBox::OnSetFocus(wxFocusEvent  & event )
{
    wxCommandEvent ev(wxEVT_COMMAND_LH_LISTBOX_FOCUS,  GetId());
    ev.SetInt(
1);
    GetEventHandler()
->ProcessEvent(ev);
    
event.Skip();
}


void  CLHListBox::OnKillFocus(wxFocusEvent  & event )
{
    wxCommandEvent ev(wxEVT_COMMAND_LH_LISTBOX_FOCUS,  GetId());
    ev.SetInt(
0);
    GetEventHandler()
->ProcessEvent(ev);
    
event.Skip();
}


void  CLHListBox::OnMouseLeave(wxMouseEvent  & event )
{
    wxCommandEvent ev(wxEVT_COMMAND_LH_LISTBOX_FOCUS,  GetId());
    ev.SetInt(
0);

    GetEventHandler()
->ProcessEvent(ev);
    
event.Skip();
}


void  LingosHookFrame::OnIndexFocus(wxCommandEvent &   event )
{
    
if(event.GetInt() == 1)
        m_winHTML
->Enable(false);
    
else
        m_winHTML
->Enable(true);
}

    是不是一只眼就能看懂。。。LingosHook全部代码在 这里。


<---绿色分割线--->
   尝试做LingosHook绿色版,失败了。。。请高人指点。。。

你可能感兴趣的:(LingosHook:Lingoes生词本第十六版)