ウィンドウを動かせないようにしたい

[戻る]
タツオ 2002/05/07(火) 19:14:48
VC++で作成したウィンドウを移動が出来ないようにしたい
(初期位置から動かないようにしたい)のですが、
どのようにすればよろしいでしょうか?
使用しているOSはwindows2000です。
ウィンドウを動かせないようにする関数がwindowAPIにあると思うので
それを教えていただきたいと思います。

Bun 2002/05/07(火) 20:16:14
>ウィンドウを動かせないようにする関数がwindowAPIにあると思うので

あんのかなぁ?

WM_NCHITTEST を処理すればできるはづ。
MSDNで調べてみてください。

#MFCを使っているかなど環境は詳しく書いてください。

YuO [E-Mail] 2002/05/07(火) 23:46:16
> ウィンドウを動かせないようにする関数がwindowAPIにあると思うので

何故そう思うのでしょう。
それなら,MSDNで探せばみつかるのでは?


WM_MOVINGやWM_SIZINGを処理するだけの話だと思いますけどね。

いもちぃ 2002/05/08(水) 10:14:12
>>ウィンドウを動かせないようにする関数がwindowAPIにあると思うので

>あんのかなぁ?

もちろん、ないですね。

>WM_NCHITTEST を処理すればできるはづ。
>MSDNで調べてみてください。

常套手段ですね。WM_NCHITTESTでクライアントエリアのふりをしてやると。
(文句だけでなく一応答えも書いておきます(笑))
てか、どの程度動かなくするかも書いてないし、わかんないな〜。
最大化ウィンドウでも、SetWindowPos()すれば動くし。

>#MFCを使っているかなど環境は詳しく書いてください。

そもそもこのあたりで間違ってるから、解答できるわけがないんですけどね。。。

いもちぃ 2002/05/08(水) 10:17:53
語弊のないように追記。

>>#MFCを使っているかなど環境は詳しく書いてください。
>そもそもこのあたりで間違ってるから、解答できるわけがないんですけどね。。。

最初の質問の仕方がまずいと言いたいのです。使用上の注意は
よく読んで正しく使いましょう・・・と。(タツオさんへ)
郷に入れば郷に従え、ちゅうことです。

Bun 2002/05/08(水) 10:48:39
YuOさん いもちぃさん こんにちわ。

>ウィンドウを移動が出来ないようにしたい

確かに漠然としていて、私やYuOさんの回答では
正解かどうか、はっきりわかりませんね。

>WM_NCHITTEST を処理すればできるはづ。

つーことで、「できるはづ」は取り消しマース。(笑)

もっと柔軟な頭にせにゃ > To me

いもちぃ 2002/05/08(水) 11:10:07
>>ウィンドウを移動が出来ないようにしたい

>確かに漠然としていて、私やYuOさんの回答では
>正解かどうか、はっきりわかりませんね。

いえいえ。そんなことはないでしょう。
WM_NCHITTESTを使うのは、質問が
「キャプション部分をドラッグしたときに移動できないように」
であれば、的確な答えじゃないですか。

それに、
> ウィンドウを動かせないようにする関数がwindowAPIにあると思うので
というのは、「え?」と、私は思いました。
きっとYuOさんも同じ風に感じたのかな〜と思うのですが。

>>WM_NCHITTEST を処理すればできるはづ。

>つーことで、「できるはづ」は取り消しマース。(笑)
>もっと柔軟な頭にせにゃ > To me

「WM_NCHITTEST を処理すればキャプション部分をドラッグしたときに
移動できないようにできるはづ」というのはいかがでしょう。(^^
てか、「できる!」と言い切ってもいいと思いますが。(^^;

Bun 2002/05/08(水) 11:32:53
>「WM_NCHITTEST を処理すればキャプション部分をドラッグしたときに
>移動できないようにできるはづ」というのはいかがでしょう。(^^
>てか、「できる!」と言い切ってもいいと思いますが。(^^;

フォローありがとうございます。

やっぱ、スパッと回答できるように質問していただくのが
ベストではないかと思います。難しいんですけどねェ。

#移動にもイドゥ色ありましてェ(苦しい)
#ゴミでしたぁ。

タツオ 2002/05/08(水) 17:40:50
最初の質問では、使用上の注意に合わない質問の仕方をしてしまい、
申し訳ありませんでした。
たくさんの方に不愉快な思いをさせてしまったことをお詫びいたします。
このような質問にも答えてくださっている方々、ありがとうございます。

教えていただきたい質問の詳しい状態、開発環境を改めて書いたので、
再びご教授お願い致します。


使用OS:windows2000 5.00.2195
使用VCのバージョン:VisualC++(R) 6.0 Enterprise Edition
#MFC使用の有無:使用しています

 現在、デスクトップ上に表示させるメニューバーを作成しているのですが、
メニューバーのタイトルバーをマウスでドラッグすることで、
メニューバーの表示位置の移動が可能になっております。
 このメニューバーを初期表示位置より移動できないように改修しようと考えております。

表示しているメニューバーの状態は以下の通りです。
 ・ウィンドウとして自作したものをメニューバーとして使用しております。
 ・タイトルバーが存在しております。
 ・最大化ボタン、最小化ボタン等はありません。
 ・デスクトップの最上部に表示するようにしております。
 ・横幅は、画面と等しい大きさです。
 ・タイトルバーの下にボタンを横に並べています。
 ・メニューバーが表示されている箇所は、他のアプリケーションやウィンドウが
  使用できないようにしております。
  (タスクバーのような感じです)

メニューバー作成に使用している主なAPI
   使用API             使用目的
 ・GetModuleHandle          モジュールハンドルの取得
 ・SetWindowText            ウィンドタイトルの設定
 ・GetDesktopWindow         画面の解像度の取得
 ・GetDeviceCaps            デバイス情報取得
 ・SetWindowPos            ウィンドウサイズの設定
 ・ExpandEnvironmentStrings   INIファイル名取得
 ・SHAppBarMessage      表示箇所の領域確保

Bun 2002/05/08(水) 19:59:31
>メニューバーのタイトルバーをマウスでドラッグすることで、
>メニューバーの表示位置の移動が可能になっております。
>このメニューバーを初期表示位置より移動できないように改修しようと
>考えております。

ということなら(再度)

WM_NCHITTEST を処理すればできるはづ。

調べましたか?

古いスレッドには追加発言できません。