ページ 11

デスクトップの枠

Posted: 2010年7月31日(土) 22:48
by 釣り師
またまたすみません。

いま時計をつくっていて、大体骨組みは完成しました。
時計なので、デスクトップの隅などに自由に置けて、かつ、目障りにならないようにしたいです。
SetWindowStyleMode(4);
で、邪魔なウィンドウの枠を消しました。すると、今度はウィンドウを全く動かせなくなってしまいました。
邪魔なウィンドウの枠を消してウィンドウを自由に動かせるようにするにはどのようにしたらいいですか?
どなたか分かる人、お願いします。

VC++2010
DxLibを使用です。

Re:デスクトップの枠

Posted: 2010年7月31日(土) 23:07
by シエル
DXライブラリか。。.
ウィンドウプロシージャでメッセージを処理できれば余裕なんだけどなぁ。

DXライブラリはさっぱり分かりませんので、
DXライブラリにどんなマウス関連の関数があるのかわかりませんが、
ウィンドウ内にマウスがあり、クリックしていたら、
マウスの移動量だけ移動した方向に動かせばいいと思います。

DXライブラリにマウスのクリック判定、マウスの移動量等を求める関数があればの話ですけど。 画像

Re:デスクトップの枠

Posted: 2010年7月31日(土) 23:10
by シエル
あ、座標さえ求められれば、移動量は求められますね。

Re:デスクトップの枠

Posted: 2010年7月31日(土) 23:59
by ISLe
メインループの中に
if (GetMouseInput() & 1) { /* 左クリックで */
    /* ウインドウ枠をクリックしたと思わせる */
    SendMessage(GetMainWindowHandle(), WM_NCLBUTTONDOWN, HTCAPTION, 0);
}
というコードを入れてみてください。

Re:デスクトップの枠

Posted: 2010年8月01日(日) 00:10
by 釣り師
みなさん回答ありがとうございます!
おかげで出来ました。ありがとうございます!
動かすことはできたのですが、移動中に、時刻の描画の処理が止まってしまいます。

ウィンドウの移動中にも処理を続けさせることのできる関数はありませんか?
調べてはみたんですが…。いまいち見つからなくて。

Re:デスクトップの枠

Posted: 2010年8月01日(日) 00:14
by シエル
ウィンドウプロシージャ側が処理中だから仕方がないかと。
スレッドで対応するしかないでしょうね。

Re:デスクトップの枠

Posted: 2010年8月01日(日) 16:11
by 釣り師
そうですか…。
スレッドについてはまた今度学習してみます。

一応、本題については解決しましたので。有難うございました!