-PR-
解決済み

ボタンの配置を変更したい

  • すぐに回答を!
  • 質問No.89240
  • 閲覧数3396
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 71% (83/116)

VC++でプログラミングしています。
MFC AppWizard(exe) でダイアログベースで造っています。
やりたいことは以下です。
・設定ファイルに表示位置(座標)が書いてあり、ダイアログの初期化時に
設定ファイルを読んで、指定された位置にボタンを表示する。

私の案としては以下のものがあります。
<案1>
予めボタンを貼り付けて造り、EXE起動時に移動させる。
ただし、移動させる関数があるかは不明。
調べましたが、今のところ見つかっていません。

<案2>
CButtonクラスのメンバを使用して、ボタンを表示する。
試しに以下のようなコードでやってみましたが、上手くいきませんでした。
使い方がわからず、試行錯誤しながらやってます。

CButton testButton;

void CTestGamenDlg::OnButton1()
{
RECTRect;

Rect.left = 100;
Rect.top = 100;
Rect.right = 200;
Rect.bottom = 200;

testButton.Create("test", BS_PUSHBUTTON, Rect, this, 100);
}


案1、2についての指摘、アドバイス、その他の案などありましたら
宜しくお願いします。
また、簡単なサンプルコードがあると助かります。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル8

ベストアンサー率 60% (20/33)

ボタンは、CWndが基本クラスなのでCWndの関数を使うことができます。
ということで、SetWindowPosを使って位置を移動させることができます。
使い方は、ヘルプを見てください。
それでは、がんばってください。
補足コメント
nabezo-

お礼率 71% (83/116)

アドバイスありがとうございます。
一点、ヘルプを見てもどうしても理解できないことがあります。

SetWindowPos関数はOnInitDialog関数の中でダイアログのサイズを
変更するために以下のように使っています。
SetWindowPos(NULL, 0, 0, 600, 400, SWP_NOZORDER | SWP_SHOWWINDOW);

今回、このダイアログに貼り付けられているボタンのサイズを
変更したいのですが、「このボタンの」という指定がSetWindowPos関数の
どのパラメータで指定するのかがわかりませんでした。

ご迷惑おかけしますが、再度、アドバイス頂けないでしょうか。
よろしくお願いします。
投稿日時 - 2001-06-14 10:41:00
関連するQ&A
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル8

ベストアンサー率 60% (20/33)

1.クラスウイザードで、ボタンのメンバ変数(型は、CButton)を追加(メンバ名をm_Btn)します。 2.これで、m_Btn.SetWindowPosという風に使えます。 ...続きを読む
1.クラスウイザードで、ボタンのメンバ変数(型は、CButton)を追加(メンバ名をm_Btn)します。
2.これで、m_Btn.SetWindowPosという風に使えます。
お礼コメント
nabezo-

お礼率 71% (83/116)

ありがとうございます。
大変参考になりました。
VCを始めたばかりでクラスについて勉強不足でした。
投稿日時 - 2001-06-14 14:06:10


このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ