Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用ShowWindow显示便笺会导致胶粘物上出现“洞”_C#_Winapi - Fatal编程技术网

C# 使用ShowWindow显示便笺会导致胶粘物上出现“洞”

C# 使用ShowWindow显示便笺会导致胶粘物上出现“洞”,c#,winapi,C#,Winapi,我使用以下命令通过其控制柄显示/隐藏窗口: [DllImport("user32.dll")] private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); // Win32 API Constants for ShowWindowAsync() private const int SW_HIDE = 0; private const int SW_SHOW = 5; ShowWindowAsync(_hWnd,

我使用以下命令通过其控制柄显示/隐藏窗口:

[DllImport("user32.dll")] private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);

// Win32 API Constants for ShowWindowAsync()
private const int SW_HIDE = 0;
private const int SW_SHOW = 5;

ShowWindowAsync(_hWnd, SW_SHOW); //Show Window
ShowWindowAsync(_hWnd, SW_HIDE); //Hide Window
当我隐藏便笺,然后再次显示它们时,会导致胶粘物上出现可视孔,我必须关闭便笺,然后重新打开

以下是问题的屏幕截图:

我相信问题是特定于便笺的。 我不知道为什么会这样,但我想设法解决它

我考虑过检查窗口是否为便笺,如果是便笺,则打开/关闭窗口而不是显示/隐藏窗口的行为将是相同的,但我并不真的喜欢它-感觉很粗糙。

将ShowWindowAsync更改为ShowWindow解决了问题


我不知道为什么ShowWindowAsync会导致这个问题,我希望这里有一个有教育意义的答案,但现在,只要我的问题得到解决,我很高兴。

便笺程序可能也隐藏了富文本框。您可能希望枚举子富文本框并显示它。你可以使用Spy++来知道发生了什么,但我使用相同的命令来隐藏和显示它们。除了显示部分窗口外,它怎么可能隐藏所有窗口?程序的设计可能会使显示窗口需要额外的工作,而这些工作只能由程序本身完成。例如,重新创建一个DirectX曲面。还有一件奇怪的事情我没有提到。如果单击任何注释的“关闭”按钮,将显示“确定”对话框。如果我在对话框打开时隐藏了便笺,然后再次显示-它工作得很好,没有漏洞。我不确定Spy++是否会帮助我,尽管我没有足够的经验使用它如果这是一个问题,那么它将只是一个重新绘制的问题。只需更新nodow/RedrawWindow/InvalidateWindow等。