最新閲覧日:

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についての指摘、アドバイス、その他の案などありましたら
宜しくお願いします。
また、簡単なサンプルコードがあると助かります。

A 回答 (2件)

1.クラスウイザードで、ボタンのメンバ変数(型は、CButton)を追加(メンバ名をm_Btn)します。


2.これで、m_Btn.SetWindowPosという風に使えます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
大変参考になりました。
VCを始めたばかりでクラスについて勉強不足でした。

お礼日時:2001/06/14 14:06

ボタンは、CWndが基本クラスなのでCWndの関数を使うことができます。


ということで、SetWindowPosを使って位置を移動させることができます。
使い方は、ヘルプを見てください。
それでは、がんばってください。

この回答への補足

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

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

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

ご迷惑おかけしますが、再度、アドバイス頂けないでしょうか。
よろしくお願いします。

補足日時:2001/06/14 10:41
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ