小编Min*_*gar的帖子

Application.Current.MainWindow vs. Window.GetWindow(this)

我需要访问托管给定控件的窗口(this在以下代码片段中).

假设我的应用程序中只有一个窗口,以下哪个语句资源消耗较少?(或者有更好的方法可以做到这一点吗?)

Application.Current.MainWindow

Window.GetWindow(this)

c# wpf

5
推荐指数
2
解决办法
2万
查看次数

Flash对话框消息

如果单击其所有者窗口,则标准Windows对话框将闪烁.效果类似于激活和停用窗口.

然而,当我在对话框上实现自定义窗口边框时,我无法弄清楚何时应该闪烁窗口.Windows不会为我闪烁对话框.

这是我试过的:

  • 我看到所有消息都发送给所有者和对话框,但无法找到任何仅用于告诉窗口闪烁的消息.

  • 我将Spy ++挂钩到默认的Windows对话框中,但也无法找到"flash"消息.

在WinUser.h中查找我找不到"flash"消息,所以我假设它是指定了lParam和wParam的一个或多个消息的某种组合.

有没有人有这方面的经验,或者也许可以指向一些解释这个的页面?任何想法都值得赞赏,因为我已经在这个问题上工作了好几个月了.

编辑

在回复评论时,以下是我目前使用的代码:

private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
    if (msg == 0x0020)
    {
        if ((short)((long)lParam & 0xffff) == (-2))
        {
            short hiword = (short)((((long)lParam) >> 16) & 0xffff);

            if (hiword == 0x0201 || hiword == 0x0204)
                Flash(); // My function which simulates a window flash
        }
    }

    return IntPtr.Zero;
}
Run Code Online (Sandbox Code Playgroud)

c# pinvoke winapi

3
推荐指数
1
解决办法
1014
查看次数

标签 统计

c# ×2

pinvoke ×1

winapi ×1

wpf ×1