gpt4 book ai didi

mfc - 在CSpinButtonCtrl MFC C++中检测上/下箭头

转载 作者:行者123 更新时间:2023-12-04 02:11:37 38 4
gpt4 key购买 nike

按下CSpinButtonCtrl的向上或向下箭头时,有什么方法可以区分?

我正在尝试使用OnPointerdown事件,但是我不知道该怎么做...

afx_msg LRESULT CMySpinButtonCtrl::OnPointerdown(WPARAM wParam, LPARAM lParam)
{
if(IS_POINTER_PRIMARY_WPARAM(wParam))
{
//TODO
}
return 0;
}


我将不胜感激。

最佳答案

按下CSpinButtonCtrl的向上或向下箭头时,有什么方法可以区分?


您应该使用UDN_DELTAPOS来执行此操作。


右键单击“资源编辑器”中的控件,然后选择“添加事件处理程序”:


Add Event Handler


选择UDN_DELTAPOS消息,然后单击“添加和编辑”:


UDN_DELTAPOS


您将获得基本代码:

void CMFCApplication1Dlg::OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);
// TODO: Add your control notification handler code here
*pResult = 0;
}

NMUPDOWN文章介绍了您使用的结构。您需要做的是测试 iDelta值。例:

void CColumnOrderDlg::OnDeltaposSpinColumns(NMHDR* pNMHDR, LRESULT* pResult) 
{
LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);

if (pNMUpDown != nullptr)
{
if( pNMUpDown->iDelta > 0)
// Up - Do stuff;
else if(pNMUpDown->iDelta < 0)
// Down - Do stuff;
}

*pResult = 0;
}





还有一篇有用的文章 here指出:


如果将旋转控件用于其他目的(例如,浏览一系列窗口或对话框),则为 UDN_DELTAPOS消息添加处理程序并在其中执行自定义操作。

关于mfc - 在CSpinButtonCtrl MFC C++中检测上/下箭头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49772967/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com