1

フォーカスを他のウィンドウに送信するアプリケーションがありますが、それらのウィンドウは自動的にフォアグラウンド (つまり、他のすべてのウィンドウの上) に表示されません。これがデフォルトの動作になるように、ウィンドウ マネージャーの設定をどこで構成できますか?

特に、MATLAB IDE で Ctrl-0 および Ctrl-Shft-0 ショートカットを使用して、コマンド ウィンドウとエディター ウィンドウの間を移動しています。フォーカスが移動したように見えますが、新しいウィンドウは自動的に再描画されません。前景。

4

3 に答える 3

2

それを行うキーバインドオフハンドはわかりませんが、ウィンドウをalt-クリックすると(ウィンドウをドラッグできます)、前面に来るはずです。

codeDr が示唆するように、MATLAB はウィンドウの再描画も苦手です。コードの実行中に Figure に描画する場合drawnow、GUI が再描画できるように実行するか、実行中に同様の一時停止を行わない限り、Figure は更新されません。MATLAB について話しているので、このコマンドは指定された図も前面に出します (実際、前面に出ないfigureようにするのは難しいです)。したがって、現在の図を前面に移動するか、図番号を で保存してから後で実行することができます。なお、フォーカスを切り替えずに現在の図形を切り替えたい場合は、現在の図形に設定してください。figure(gcf)h = figure;figure(h)set(0, 'CurrentFigure', h)h

于 2009-06-10T02:36:04.127 に答える
1

ウィンドウマネージャー(おそらくMetacity?)は、フォーカスを盗むのを防ぎ、不正なアプリが入力を妨げるようなウィンドウをポップアップしないようにします。Matlabはウィンドウを上げ、正しいタイムスタンプで入力フォーカスを与える必要があります。これがKeyPressイベントハンドラーから行われている場合、入力フォーカスを設定するためのタイムスタンプは、KeyPressイベントからのタイムスタンプ(つまり、ウィンドウが表示/フォーカスされる原因となったユーザー生成イベントのタイムスタンプ)になります。

ウィンドウに入力フォーカスを丁寧に与えるには、Googleで_NET_ACTIVE_WINDOWを検索します。

于 2009-07-16T16:08:09.817 に答える
0

通常、ウィンドウが再描画されない場合は、ウィンドウを更新するためにアプリケーションのメインアプリケーションループが実行されていないことを意味します。ウィンドウを切り替えるときに、Matlabが計算またはディスクアクティビティを実行している可能性がありますか?

于 2009-06-09T12:25:11.437 に答える