※ ChatGPTを利用し、要約された質問です(原文:ボタンの配置を変更したい)
このQ&Aのポイント
VC++でプログラミングしています。MFC AppWizard(exe)でダイアログベースでボタンの位置を設定ファイルから読み込んで表示したいです。
案1では予めボタンを作成しておき、EXE起動時に移動させる方法を検討していますが、関数の有無を調査中です。
案2ではCButtonクラスのメンバを使用してボタンを表示しようとしていますが、正しく動作しません。サンプルコードやアドバイスを求めています。
VC++でプログラミングしています。
MFC AppWizard(exe) でダイアログベースで造っています。
やりたいことは以下です。
・設定ファイルに表示位置(座標)が書いてあり、ダイアログの初期化時に
設定ファイルを読んで、指定された位置にボタンを表示する。
私の案としては以下のものがあります。
<案1>
予めボタンを貼り付けて造り、EXE起動時に移動させる。
ただし、移動させる関数があるかは不明。
調べましたが、今のところ見つかっていません。
<案2>
CButtonクラスのメンバを使用して、ボタンを表示する。
試しに以下のようなコードでやってみましたが、上手くいきませんでした。
使い方がわからず、試行錯誤しながらやってます。
CButton testButton;
void CTestGamenDlg::OnButton1()
{
RECT Rect;
Rect.left = 100;
Rect.top = 100;
Rect.right = 200;
Rect.bottom = 200;
testButton.Create("test", BS_PUSHBUTTON, Rect, this, 100);
}
案1、2についての指摘、アドバイス、その他の案などありましたら
宜しくお願いします。
また、簡単なサンプルコードがあると助かります。
補足
アドバイスありがとうございます。 一点、ヘルプを見てもどうしても理解できないことがあります。 SetWindowPos関数はOnInitDialog関数の中でダイアログのサイズを 変更するために以下のように使っています。 SetWindowPos(NULL, 0, 0, 600, 400, SWP_NOZORDER | SWP_SHOWWINDOW); 今回、このダイアログに貼り付けられているボタンのサイズを 変更したいのですが、「このボタンの」という指定がSetWindowPos関数の どのパラメータで指定するのかがわかりませんでした。 ご迷惑おかけしますが、再度、アドバイス頂けないでしょうか。 よろしくお願いします。