|
<ウィンドウを常に手前> 今回はMyColorCheckerの重要な機能のひとつである Top Most (ウィンドウを常に手前に表示する)機能について書きます。 この機能を実現する関数は下記に示す SetWindowPos 関数です。
BOOL SetWindowPos(HWND hWnd,
HWND hWndInsertAfter,
int X,
int Y,
int cx,
int cy,
UINT uFlags);
これはウィンドウの位置とZオーダーを変更する為の関数です。
Zオーダーというのは、スクリーン上のウィンドウの重なりの順序
を決めるものです。ウィンドウはすべてデスクトップを根底とした
親子関係にあります。(理論上のことで実際に重なっているわけでは
ありませんが。。。)
X と Y はウィンドウの左上の座標をクライアント座標で、 cx と cy はウィンドウの幅と高さをそれぞれ指定しますが、次の uFlags で、 SWP_NOMOVE と SWP_NOSIZE を指定すれば、現在の位置とサイズを維持します。 uFlags に指定できるパラメータはたくさんあるので、この2つ以外については MSDNでお調べください。「setwindowpos uflags」で検索すると出てきます。
実際の使い方ですが、いつもの通り私のプログラムコードから 抜粋させていただきます。
/* Top Most を設定 */
SetWindowPos(hWnd, HWND_TOPMOST,
0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
/* Top Most を解除 */
SetWindowPos(hWnd, HWND_NOTOPMOST,
0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
|
|
|
|
| Copyright (c) 2003-2004 HIDEKAZU KAJIURA. All Rights Reserved. |