• ベストアンサー

ダイアログボックスの移動

VC++ であるダイアログボックスを画面外から画面内にスライドしてフェードインする機能を実装したいのですが、そういった機能を実装する場合、随時座標を変更しなければならないのでしょうか? ダイアログボックスをスライドさせるようなライブラリがあれば教えてください。 また、それが無理な場合ダイアログボックスの座標の変更方法を教えていただけるとありがたいです。 すいませんが、よろしくお願い致します。

noname#11716
noname#11716

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

ダイアログ(ウインドウ)を移動させるのであれば「SetWindowPos」関数で出来ます。 関数の説明(API) SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags); HWND hWnd 対象ウインドウのハンドル; HWND hWndInsertAfter 対象ウインドウのZ順位の指定; int X 対象ウインドウの左上隅の新しい x 座標 int Y 対象ウインドウの左上隅の新しい y 座標 int cx 対象ウインドウの新しい幅 int cy 対象ウインドウの新しい高さ UINT uFlags 対象ウインドウのサイズおよび位置の変更に関するフラグ 単に移動させるだけなら以下のようにすればいいと思います。 SetWindowPos(hWnd, NULL, X, Y, 0, 0, SWP_NOZORDER | SWP_NOSIZE); これを一定時間ごとに、X,Yに新しい座標を指定し呼び出せばいいと思います。

noname#11716
質問者

お礼

返事遅れました。 無事にスライド処理を実装することができました。 ありがとうございました。

その他の回答 (1)

  • keyguy
  • ベストアンサー率28% (135/469)
回答No.1

MoveWindowを使えばいいのでは?

関連するQ&A

  • ダイアログボックスが閉じない

    起動すると、赤字のご確認というダイアログボックスがでて、internetExplorer URL設定は変更されました。初期先頭文字が変更されました。のメッセージが書かれており、×を押しても画面に残ったまま消えません。詳細とバックアップと復元というボタンもあります。

  • VCで処理中ダイアログボックスを表示する方法

    VC++6.0を使用してアプリを作成しています。 処理に長い時間(10秒程度)がかかる時に 処理中を知らせるダイアログボックスを表示して 親画面にあるほかのボタンを 触れないようにし、処理が終わったら自動で処理中ダイアログボックス を閉じるのを実現したいのですが、どのように すればよいのでしょうか? よろしくお願いいたします。

  • VC++でダイアログボックスを表示させるプログラム

    VC++のプログラミングで、実行できない原因が 判らないので、ヒントをいただけないでしょうか。 現在VC++の勉強中で、ダイアログボックスを 表示するプロジェクトを作成しています。 ビルドエラーは出ないのですが、実行しても 何も表示されません。 メニューを持った親ウインドウを表示し、 メニューから「加算」を選択すると 計算用のダイアログボックスが表示されるプログラムです。 ダイアログボックスは三個のテキストボックスと 二個のボタンがあり、数字を二箇所入れ ボタンを押すと計算結果を表示します。 長くなる為ソースは書けないのですが、 こういう場合まず何からチェックすればいいでしょうか? 初心者なのでちょっとしたことで間違えているかも しれません。どなたかアドバイス下さい。

  • エクセル・改ページプレビューのダイアログボックス

    Windows2000 EXCEL2000です。 あまり重要な事ではないと思いますが、エクセルで改ページプレビューを表示すると画面に「改ページプレビューにようこそ」ダイアログが表示されます。 そのダイアログボックスの「今後このメッセージを表示しない」部分にチェックを入れました。 これでこのダイアログボックスは表示されないのですが、再度表示させる方法はありますでしょうか? オプションなど見たのですが、どこにも設定変更できそうなものは見つかりませんでした。 このようなダイアログボックスは一度設定すると変更できないものなのでしょうか? どなたかご存知でしたら教えてください。 宜しくお願いします。

  • ダイアログ上コントロールの動作について

    MFCでダイアログにて動作するアプリケーションを作成しています。 表示されたダイアログの枠をドラッグすると、ダイアログの大きさが変わりますが、 中にあるコントロールの大きさ・位置は変わりません。 ダイアログの大きさ変更に伴い、コントロールの大きさも変更するには、 どのような実装の仕方をすれば良いのでしょうか? 解決法をご存知の方おられましたら、ご教授お願い致します。 開発環境はVC++2005です。

  • ダイアログの表示位置の保存

    MFCのダイアログベースでプロジェクトを作成し、 実行すると雛形のダイアログが画面中央に出現しますが、 このダイアログを任意の位置に動かし、ダイアログを閉じた後、 再実行した際に、前回終了時の位置に表示させるにはどのように実装すれば良いのでしょうか? なお、座標のデータなどは終了時にiniファイルに書き出しておき、 再起動時にそれを読み出す方法を考えています。 iniファイルへの読書きの方法については理解済みです。 お手数ですがご回答よろしくお願いします。 開発環境:VC++2005

  • ダイアログボックスについて。

    ダイアログボックスについての質問です。 開発環境はVisual C++ 2005.netでありSDKを利用しています。 ダイアログボックスにPicture Controlを貼り付け、Combo Boxの内容が変わるたびにそのPicture Controlに画像を表示するようなプログラムを作りたいと考えています。 自分が考える手順としてはまずPicture Controlについてサブクラス化を行い、親のダイアログボックスが表示されると同時にPicture ControlのプロシージャでWM_CREATEメッセージを受け取り描画を行う。 そして親のダイアログボックスに貼り付けたCombo Boxの内容が変更された場合に、Picture ControlのウィンドウハンドルにむけてWM_PAINTメッセージを送信する。 こんな手順で行いたいのですが、少し不安な部分が出てきました。 Combo Boxの内容が変更され、Picture Controlのウィンドウハンドルに向けてWM_PAINTメッセージを送信し、Picture ControlプロシージャではWM_PAINTメッセージがきたとき画像の描画を行う場合、このプロシージャではどの画像を描画してよいか不明です。 そのため何番の画像の表示命令が来たのかを示すために、親のダイアログボックスに貼り付けたCombo Boxが変更された場合、Picture Controlに向けてWM_PAINTメッセージと表示画像番号をパラメータとして送信したいのです。 もちろんグローバル変数を用意すれば簡単なのですが、できるだけ使用しないように記述をしたいのです。そこで考えたのが、 SendMessage(GetDlgItem(hDlgWnd, IDC_PICTURE), WM_PAINT, 0, MAKELPARAM(0, number)); このようにnumberをLPARAMの下位ワードとして送信しようと考えました。 このメッセージ送信を行い、Picture ControlプロシージャでWM_PAINTメッセージが到着したとき、LOWORD(lparam)からnumberを取り出す。 実現したい目的のため、このような方法を考えましたが、エラーなく実行できるでしょうか? もしあやしい部分が見つかった場合はアドバイスをお願いします。そしてこの方法よりも簡単に処理できる方法があれば教えていただきたいです。 自分としてはサブクラス化は面倒なので、Picture Controlをオーナードローとして扱う方法も考えましたが、うまく動きませんでしたTT

  • ダイアログボックスが消えないく、フリーズしたような状態になります

    動画やメールの添付ファイルをDLし終えたのにダイアログボックスが消えません。 DL終了後にはこのダイアログボックスは消えるにチェックは入れていますが・・ 連続でDLする場合は前回のダイログボックスが消えないためフリーズ状態になりどうすることも出来ないので、毎回チャレンジするたびタスクの終了で、画面を消しています。IEの不具合でしょうか? 動画の場合はファイルはDLされてますが、コピー中と表示されたのダイアログボックスと残り時間0秒と表示されたダイアログボックスで固まります・・・皆様よろしくお願いいたします。

  • ダイアログボックスの表示が。

    Win95です。2点お願いします。 ・いくつかのダイアログボックスが、大きなフォントで表示される ようになってしまいました。おかしな表示になるのは、「印刷」や、 IEの「インターネットオプション」などです。 特に、IEはセキュリティーの変更ができなくて困ってます。 ・「画面のプロパティ」→「デザイン」でアイコンのサイズを変更 したところ、デスクトップアイコンが、にじんで表示されるように なってしまいました。元のサイズに戻しても直りません。 初歩的な質問で済みませんが、宜しくお願いします。

  • photoshopでダイアログボックスの大きさ変更

    win7です。photoshop CS6で例えばトーンカーブを操作するため、「イメージ」→「色調補正」→「トーンカーブ」と進んだとき表示されるダイアログボックスの大きさを変更したいのです。 デスクトップPC(モニター 1920✕1200)では画面に対してほどよい大きさなのですが、ノートでは(モニター 1366✕768)ではボックスが画面に対して天地で3分の2,左右40%ぐらいを占め、画像を大きく遮ってしまうのです。 通常こうしたボックスは、コーナーにポインターを持っていって、大きさを変更できることが多いのですが、photoshopはできないのでしょうか。なにか方法はないのでしょうか。 ご存じの方、ぜひご教示下さい。よろしくお願い致します。

専門家に質問してみよう