0

我有一个列表控件,它显示了我的数据库用户列表。我还有一个刷新列表控件的功能(目前它被映射到“刷新”按钮)。

当用户按下“F5”键时,我想调用我的刷新函数。

我发现了一个事件LVN_KEYDOWN(表示某个键已被按下)。经过一番研究,我发现“F5”的虚拟键码是VK_F5. 我无法将两者放在一起,我如何检查(在我的事件中)“F5”键是被按下的那个?我已经尝试了几件事类似于下面的代码:

void ListOption::OnLvnKeydownList1(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMLVKEYDOWN pLVKeyDow = reinterpret_cast<LPNMLVKEYDOWN>(pNMHDR);

    // TODO: Add your control notification handler code here
    if(pLVKeyDow == (LPNMLVKEYDOWN)VK_F5)  
        callRefreshFunction();

    *pResult = 0;
}
4

1 回答 1

2

wVKey成员包含虚拟键代码:

if(pLVKeyDow->wVKey == VK_F5) {
    callRefreshFunction();
    *rResult = 1;
}

根据MSDN上的评论,如果您处理消息,则必须将返回值设置为 1。

于 2015-05-08T14:12:26.437 回答