如何将“叮”静音当用户点击表单外部时发出声音?

发布于 2024-12-14 19:01:32 字数 870 浏览 0 评论 0原文

我正在使用 Form.ShowDialog() 显示一个表单,在此表单中我覆盖了 void WndProc(ref Message m) 因为我想在用户单击时关闭此表单表单区域之外。

    private const int WM_NCACTIVATE = 0x0086;
    protected override void WndProc(ref Message m)
    {
        switch (m.Msg)
        {
            case WM_NCACTIVATE:
                if (_canClose) // when user click outside form, close form
                    this.Close(this, EventArgs.Empty);
                break;
            default:
                break;
        }

        base.WndProc(ref m);
    }

这段代码按我的预期工作,但有一个小问题,每次用户在表单区域外单击时,Windows 都会播放 DING 声音,我想在处理此代码时“静音”此 DING

更新

我根据Hassan Mujtaba的建议设法使这个表单按我想要的方式工作,但我仍然想知道如何静音这个DING如果我使用Form.ShowDialog。

日期范围控制

I'm showing a form using Form.ShowDialog(), in this Form I have override void WndProc(ref Message m) because I want to close this form when user click outside Form area.

    private const int WM_NCACTIVATE = 0x0086;
    protected override void WndProc(ref Message m)
    {
        switch (m.Msg)
        {
            case WM_NCACTIVATE:
                if (_canClose) // when user click outside form, close form
                    this.Close(this, EventArgs.Empty);
                break;
            default:
                break;
        }

        base.WndProc(ref m);
    }

This code work as I expected, but one minor problem, Windows play DING sound every time user click outside Form area, I want to "mute" this DING when this code processed.

UPDATE

I managed to make this Form work as I want to, using advice from Hassan Mujtaba, but I still wonder how to mute this DING if I use Form.ShowDialog.

DateRange Control

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

﹎☆浅夏丿初晴 2024-12-21 19:01:32

使用 Form.Show() 而不是 Form.ShowDialog() 将解决该问题。

Using Form.Show() instead of Form.ShowDialog() will solve the problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文