- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:重なり z-index)
重なりを解決する方法 - z-indexの利用法とは?
このQ&Aのポイント
- 重なりを解決する方法には、z-indexというプロパティを使用することができます。
- 表示位置を重なるようにする場合は、要素にpositionプロパティを指定し、z-indexプロパティで表示順序を調整します。
- ただし、重なった部分の文字が四角に隠れないようにするには、四角の要素に背景を透明にするスタイルを設定する必要があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#30727
回答No.1
SetWindowText で文字を書くということは、ウィンドウの上にスタティックテキストコントロールがあるということですか? 基本的に親ウィンドウのクライアントエリアに何を書き込んでも、その上にあるコントロールに影響を与えることはできません。あくまでも「別のウィンドウ」です。 なので、TextOut などで文字を書き込むしかありません。 それから、SelectObject した時の戻り値は保存しておいて、元に戻すようにします。 hPen = CreatePen(... hPrevPen = SelectObject(hDC, hPen); // 以前のペンを保存 ... ... SelectObject(hDC, hPrevPen); // 以前のペンを戻す。この場合は戻り値は無視 DeleteObject(hPen);
お礼
hrs = CreateWindow("STATIC", ... としていました。 hrs は「別のウィンドウ」だから、hWnd に文字を書いても hrs と重なれば hrs の領域の方が上になるということですね。 やろうとしていたことが無理だと分かったから、 hrs に wsprintf( ) で書く方法をやめて、hWnd に TextOut( ) で 書くことにしました。 そうしら、ソースの後に書いた方が上になって表示されて 思いどうりになりました。 DeleteObject(hPen); を書き忘れていました。 どうして以前のペンを戻すのか分からなかったけど 気になったらそれはまた質問しようと思います。 hOldPen とかいうのを定義して以前のペンを戻すソースは よく見かけています。 本当は前からすごく気になっているんだけど。