VC初心者です。
コントロールがどのクラスに存在するのか調べるのはどうしたらいいんでしょうか?
とりあえず私が知りたいのは、ラジオボタンとグループボックスなんですが
ほかのコントロールもどのクラスに属するのか調べる方法があれば教えてください。
覚えるより、他ないのでは?
http://sysneitf.hoops.ne.jp/mfc/
上記のアドレスから、コントロールのレガシーコントロール内を覗いて見てください。
(工事中も多いのですけど、σ(^^) のお気に入りのページです。)
ちなみに
ラジオボタンもグループボックスもボタンコントロール(CButton)に属します。
Bunさん、またしてもありがとうございました。
ホームページ参考になりそうです。
でもホームページ等で調べるしかやはり方法はないのですか?
覚えるといわれてもはじめにどこに属するのかわからないと
メンバに登録できないですからね。
解決されていないのかな?
しゃーないから、分厚い本を買ってください。(爆)
(別解)
ダイアログ等に貼り付けたコントロールであれば、ClassWizardのメンバ変数の追加で
カテゴリをコントロールにすれば、変数のタイプにそのクラス名が出ます。
一般的なコントロールは、プログラムをやっていれば自然に覚えちゃうと思いますけど。(^^;
Bunさん、おはようございます。
クラスウィザードで見れるんですね。
ありがとうございます。
でもこの間教えていただいた。
ON_COMMAND_RANGEで同じ操作をするボタンを
メンバの配列にしてしまったので
クラスウィザードが使えなくなってしまったんです。
HopAssignDlg.cppでコード追加。
void CHopAssignDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CHopAssignDlg)
DDX_Control(pDX, IDC_HOP_BTN1, m_Button[1]);
DDX_Control(pDX, IDC_HOP_BTN2, m_Button[2]);
//}}AFX_DATA_MAP
}
HopAssignDlg.hでコード追加。
// ダイアログ データ
//{{AFX_DATA(CHopAssignDlg)
enum { IDD = IDD_HopAssignDlg };
CButton m_Button[3];
//}}AFX_DATA
こんな感じでやってみたんですけど、どこかやはり悪かったのでしょうか?
そもそも クラスウィザードは ON_COMMAND_RANGE をサポートしていません。(確かそうだったと)
手でガリガリと実装するしか方法はないと思います。
悪かったというのは、何かエラーが出るのでしょうか?
(ついでに、どんなことを実現されたいのですか?)
早速のお返事ありがとうございます。
どこかやはり悪かったのでしょうか?
というのはクラスウィザードが使えなくなってしまったことです。
このメンバに対してだけではなく、すべてについて使えないので、
今は手でがりがりコードを書いてます。
やりたいことはボタンとラジオボタンの連動で
それは今は何とか動いているのですが、
結局クラスウィザードが使えなくなってしまったので、
苦労してるのです。
このページでお勉強してみてください。キーワードはコメントデリミタです。
http://www.microsoft.com/japan/developer/library/vccore/_core_handlers_for_message.2d.map_ranges.htm
手で実装する場合には注意することがありますので、一応下記を参考にしてください。
BEGIN_MESSAGE_MAP(CMyApp, CWinApp)
//{{AFX_MSG_MAP(CMyApp)
...この間には手でコードを書いてはいけません <--- ここが大事
//}}AFX_MSG_MAP
ON_COMMAND_RANGE(ID_MYCMD_ONE, ID_MYCMD_TEN, OnDoSomething)
END_MESSAGE_MAP( )
ON_COMMAND_RANGE()は手で実装するので
//}}AFX_MSG_MAPの行の後に書きます。
//{{AFX_??? から
//}}AFX_/// までをコメントデリミタといってユーザーがこの間にコードを書いては
いけないようになっています。ここをコメントデリミタといいます。
クラスウィザードの管理する部分なのでユーザーが荒らしてはいけないということです。
Bunさんありがとうございました。
AFXの外に書いたらクラスウィザードが復活しました。
いつもありがとうございます。