将 OnNcHItTest 用于 CWnd 而不是 CDialog
Posted
技术标签:
【中文标题】将 OnNcHItTest 用于 CWnd 而不是 CDialog【英文标题】:Using OnNcHItTest for a CWnd not CDialog 【发布时间】:2010-03-23 13:31:15 【问题描述】:我在对话框中使用了一个 CWnd Derived 对象。我需要能够将它拖到对话框中的任何位置。我有一个覆盖 OnNCHitTest 的代码,用于移动对话框,将其从标题栏以外的位置拖动。是否有任何等效代码可以执行相同的操作来移动此 CWnd。以下代码不起作用。
UINT CBaseSliderBtn::OnNcHitTest(CPoint point)
UINT ret=CWnd::OnNcHitTest( point );
if (ret == HTCLIENT)
return HTCAPTION;
如果这不是正确的方式,请提出其他最佳的拖动滑块的方法。 谢谢
【问题讨论】:
【参考方案1】:您的示例只是模拟鼠标操作,因为它们与对话框标题一起发生。对话框标题允许您拖动对话框。 至于您的自定义窗口,它可能是一个子窗口,并且允许使用窗口部件进行拖动。你应该处理mouse input来实现拖拽。
【讨论】:
谢谢,但我知道我做错了什么。我在创建过程中使用了类名静态。我必须注册我自己的课程。无论如何谢谢以上是关于将 OnNcHItTest 用于 CWnd 而不是 CDialog的主要内容,如果未能解决你的问题,请参考以下文章