首页 > 技术文章 > 使窗口最前的方法

aishangxue 2014-01-12 20:02 原文

有时候程序需要做成单例的,就是系统中只能存在一份运行的示例,这个可以通过系统内核对象Metux来实现。让我们检测到系统中已有一份运行的实例时,最好的做法是将那个进程的主窗口显示给用户。首先想到的是调用SetForgroundWindow(),改方法可以将窗口变为前景窗口,即用户可以交互的窗口。但是当目标窗口是最小化的时候(而不是在他窗口的后面)这个调用并没有使窗口显示。

解决方法是模拟点击任务栏的窗口图标,像该窗口发送WM_SYSCOMMAND消息,

SendMessage(hWnd, WM_SYSCOMMAND, SC_RESTORE ,0);
 
 

推荐阅读