問題タブ [z-order]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1477 参照

windows - Windowsでは、兄弟の1つに対してz順序が変更されたときに、子ウィンドウにWM_WINDOWPOSCHANGEDを​​取得する必要がありますか?

停止ボタンと再読み込みボタンの横にあるInternetExplorer8のURLバーにカスタムウィジェットを挿入しようとしています。これは私自身の個人的な生産性向上剤にすぎません。

IEフレームのこの部分の「ウィンドウモデル」は、IE8のURLバーを構成するウィンドウ(編集ボックス、コンボコントロール、停止ボタンと再読み込みボタン)を所有する「アドレスバールート」ウィンドウです。

別のプロセスから、IEのアドレスバーのルートウィンドウを親とする新しいWS_CHILDウィンドウ(カスタムクラス名を使用)を作成し、編集ボックスの兄弟にして停止/再読み込みします。HWND_TOPのhwndInsertAfterを使用してSetWindowPosを呼び出し、URLバーの「上」(つまり「中」)に表示されることを確認します。これはうまく機能し、ウィンドウが最初にIEのURLバー内にペイントされているのがわかります。

ただし、IEウィンドウをアクティブにすると、urlbar編集コントロールがウィンドウの前に戻ります。ウィンドウがURLバーの後ろにペイントされているのがまだ表示されているため、また、タイマーでデバッグコンソールに-> GetTopWindow()を出力すると、URLバー編集コントロールのHWNDになるため、これが発生していることがわかります。

メッセージループを更新して、WM_PAINTでHWND_TOPを使用してSetWindowPosを呼び出すと、状況が改善されます。IEウィンドウをアクティブにして移動すると、コントロールがURLバーの編集コントロールの上に適切に配置されたままになります。ただし、IEのURLバーの編集コントロールのテキストを更新するIEタブを切り替えるとすぐに、コントロールは編集コントロールの後ろに戻ります。(注:これは、ウィンドウを最大化または復元したときにも発生します。)

だから私の質問は:

1)IEでタブをクリックするたびに、IEが意図的にURLバー編集コントロールをz-orderの上に戻している可能性がありますか、それともWindowsのペイントとz-orderingがどのように機能するかについての私の理解にギャップがありますか?私の理解では、子ウィンドウのz順序(エンドユーザーが操作できない)を指定すると、プログラムで変更されるまでその順序を維持する必要があります。したがって、IEはタブの選択時に編集コントロールを再描画しますが、ウィンドウを再描画したり操作したりしていなくても、ウィンドウはしっかりと上に表示されたままになります。

2)ウィンドウのz順序が明らかに変化していることを考えると、WM_WINDOWPOSCHANGING / WM_WINDOWPOSCHANGEDを​​受け取るべきではありませんか?もしそうなら、私は少なくともそのイベントに応答し、編集コントロールの上に自分自身を保つことができました。ただし、タブをクリックするとurlbar Editコントロールの背後にウィンドウのペイントが表示され、デバッグウィンドウの出力で、タブをクリックするとアドレスバーのルートのGetTopWindow()がEditコントロールのHWNDになることが確認されます。 、およびWM_WINDOWPOSCHANGING / WM_WINDOWPOSCHANGEDがHWND_TOPのhwndInsertAfterを使用してEditコントロールに送信されているのを確認しても、タブをクリックすると、自分のウィンドウにメッセージが表示されなくなり、z順序を一定に保つことができます。これは私には間違っているように思われ、それに対処すると、IEで実行する必要があります。

ご協力ありがとうございました!

0 投票する
0 に答える
2109 参照

python - Python Windows 拡張機能を使用してウィンドウの Z オーダーを取得する

Python Windows Extensionsを使用してウィンドウの z オーダーを取得する方法はありますか? または、代わりに、別のモジュールを使用してこれを行う方法はありますか? これを行う通常の方法は と をGetTopWindow使用しGetNextWindowますが、これらの関数はどちらもwin32guiモジュールに表示されません。

現在、私はこれを行っていますが、ウィンドウの z オーダーは考慮されていません。

理想的には、次のようなものが欲しいです:(これは機能しません)

ただし、関数GetTopWindowGetNextWindow機能が欠落しているため、できません。

アップデート:

助けを求めるには少し早すぎたようです。私はctypesを使ってそれを理解しました。うまくいけば、他の誰かがこれが役立つと思います。

0 投票する
1 に答える
952 参照

cocos2d-iphone - Cocos2D でスプライトを並べ替える方法

タッチで cocos2D のスプライトの z オーダーを変更する方法を知りたいです。

私が探しているのは、タッチ時に z オーダーを 0 から 1 に変更するよりも複雑なものですが、1 から 2、3 から 4 などに変更することです。

そのため、スプライトが z:0 にある場合、後続の各タッチで始まるように 1 ずつ増加します (例: 1、2、3 ...)。

0 投票する
2 に答える
1848 参照

java - JCombobox ドロップダウンの可視性の問題?

パネル P とラベル L を持つルート パネル (2 行、1 列) があります。P には JComboBox B があります。B をクリックするたびに、結果のドロップダウンが L の後ろに表示されます。これを修正するにはどうすればよいですか? あらゆる種類の setComponentZOrder() をいじりましたが、これを修正できませんでした。私は何をすべきか?

0 投票する
13 に答える
92136 参照

android - ビューを後ろに送る方法は?プログラムでzオーダーを制御する方法は?

ビューを後ろに送るのに問題があります。bringToFront()Android には、ビューを別のビューの上に配置するための のようなメソッドがあります。そのように、ビューを前の画像の下に置きたいと思います。

sendToBack()またはbringToBack()Androidのような方法はありますか。もしそうなら、誰でもこれで私を助けることができます。

注: アイテムをレイアウトに配置する順序で z オーダーを制御したくないので、z オーダーをプログラムで制御したいと考えています。

前面のビューを隠したくありません。移動中のビューの背後に配置したいだけです。

0 投票する
17 に答える
224231 参照

android - すべての前にビューを表示するにはどうすればよいですか?

私はアクティビティと多くのウィジェットを持っています。それらのいくつかにはアニメーションがあり、アニメーションのためにいくつかのウィジェットが互いに移動 (翻訳) しています。たとえば、テキスト ビューがいくつかのボタンの上を移動しています。. .

今問題は、ボタンを常に前面に配置したいということです。テキストビューが動いているときは、ボタンの後ろに移動したいと思います。

私が知っていることはすべて試しましたが、「bringToFront()」は確実に機能しません。

レイアウトに要素を配置する順序でzオーダーを制御したくないことに注意してください。単純にできません:)、レイアウトは複雑で、レイアウトの始まりにすべてのボタンを配置することはできません

0 投票する
1 に答える
181 参照

c# - 最大化されていないときに常に表示するフォーム?

カウントダウン タイマーである C# フォームを開発しています。フォームを最大化すると、画面全体に表示されます。ただし、最大化ボタンをクリックすると、それが小さくなるように構成されています。ただし、小さいサイズのバージョンのときに常に表示されるように Z オーダーを設定する方法はありますか。(つまり、パワーポイントのスライドが(F5を介して)実行されている場合、それは画面全体を占有しますが、私の小さなカウントダウンタイマーでは、引き続き表示され、パワーポイントへのカウントダウンとして実行されるように、0のzオーダーを持ちたいです(これは、小さいバージョンで常に表示する理由の一例にすぎないことに注意してください。

サイズ変更イベントにフックしてから、次を使用しました。

多くのことを行います(つまり、最大化モードの場合は背景画像を変更します。これのelse側では、可能であればzオーダープロパティを設定したいと思います.

これを達成するのに役立つコードを知っている人はいますか?

0 投票する
2 に答える
2519 参照

javascript - マウスオーバーのフェード効果でdivのz-indexを変更します

4つの画像を積み重ねています。以下を参照してください。 http://img148.imageshack.us/img148/9096/48404002.jpg

私は2つのことを達成しようとしています:

  1. マウスが背景にある画像の上にあるとき、その画像はフェード効果で前面に来るはずです。各画像の下にも異なるテキストがあり、そのテキストは前面に表示されるはずです。(フェードは必要ありません)

    結果は次のようになります。 http://img837.imageshack.us/img837/5663/58906919.jpg

  2. 10〜15秒ごと(ユーザー入力なし)に、右側の次の画像が自動的にフェードインします。

技術的には、各画像とテキストを別々のdivに入れて、Zオーダーで遊ぶことを考えました。フェード効果はjqueryを使用して実現できる可能性がありますが、残念ながら、これまで使用したことはありません。

サンプルコード、特定のヘルプ、またはポインタをいただければ幸いです。

ありがとう!

0 投票する
0 に答える
398 参照

c# - マルチスレッド MDI のような Windows アプリケーションの問題

各プラグインが独自のスレッドで実行され、独自のウィンドウを作成する「プラグ可能な」C# アプリケーションがありますが、全体的に単一の MDI アプリケーションのように見えます。

たとえば、ウィンドウは次のように Z オーダーで配置されます。

  • メインヘッダーフォーム
    • PluginA_Form
      • PluginB_Form
        • PluginC_Form
          • 背景フォーム

...ここで、MainHeaderForm は常に一番上にあり、BackgroundForm は常にパイルの一番下にある必要があります。ただし、他の (外部) Windows がこのアプリケーションの Z オーダー内に表示される可能性があってはなりません (したがって、MDI の錯覚を壊します)。私は常にこれらのウィンドウをこの順序で維持し、(可能な場合) このウィンドウの「グループ」を他のすべてのウィンドウの上に表示したいと考えています。

プラグインを別のスレッドに置いている理由は、プラグインが応答しなくなった場合に強制的に削除/強制終了できるようにするためです。私の知る限り、すべてのプラグインをダウンさせずに単一のスレッドでこれを行うことはできません。

しかし、(おそらくタイミングが原因で) プラグイン ウィンドウが BackgroundForm の背後に表示されたり、その他の奇妙な点が表示されることがあるという問題があります。

GUI スレッドから全体的な Z オーダーを維持し、「Invokes」を使用して Windows に SetWindowPos を実行させています。ただし、前述のように、これはおそらくブロッキング呼び出し (?) を実行しているため、いくつかの問題の原因となっている可能性があります。

それ以外の場合、機能は希望どおりです。表示の問題だけです。

誰かが追加のガイダンスを持っているなら、私は大歓迎です。

どうもありがとう