• 締切済み

VC++ MFC

redfox63の回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.4

dlg.DoModal()でサブダイアログを表示しているのであれば DoModalからの返り値を受け取ってこれを判断材料にして サブダイアログの情報をメインダイアログ側で受け取って保存しておきましょう チェックボックスやリストボックスの情報を得るには GetMyCheckやGetMyListなどユーザー定義関数などでコントロールから情報を得る方法や、ダイアログのメンバー変数とコントロールを結びつけておくなどいろいろな方法があります MFCでしたら ダイアログの編集画面を表示させておいて 変数と結び付けたいコントロールを選択します VC2003のメニューから プロジェクト > 変数の追加 で 変数名などを定義しましょう このときアクセス(A)が『public』ならば外部からもその変数は使えます たとえば CheckBoxに対して追加した変数が m_myCheckだったとして コントロール型なら dlg.m_myCheck.GetCheck() # この場合 m_myCheckがCButton型なので GetCheckでチェックされているかを取得する 値(Value)型ならば dlg.m_myCheck # 値型の場合は ダイアログが閉じる際に変数を更新してから閉じるため変数のチェックのみでいい # キャンセルボタンや ダイアログの閉じるボタンの場合は更新されない場合があります といった具合で使えます なんにせよ 今あるコントロールがどのような管理がなされているのかを明示しましょう ダイアログのコントロールを管理できる変数がどこにあるのかなど …

tuyafu0803
質問者

補足

解答ありがとうございます。 チャックボックスの値の取得が分かりましたが、listboxの情報(アイテムを選択した時(背色がついた部分))をどうやってメイン側で受け取るかうまくいきませんが、まだお願いいたします。

関連するQ&A

  • VC++ V6.0 MFC Win98環境にて

    VC++ V6.0 MFC Win98環境にて VC++ V6.0 MFC Win98環境にて リストボックスにファイルリストを作ろうとしています。 リストボックスに m_file を割り当て、以下のようにしました。 m_file.ResetContent(); m_file.Dir( DDL_READWRITE | DDL_READONLY, "C:\\*.*" ); m_file.SetCurSel( 0 ); これでリストさせると8.3ファイル名表示となってしまいます。 どうしたらWin98環境でロングファイル名で表示させることができますか? FindFile で自分探し AddString するとか・・・!? ちなみにWin2000ではOKでした。 よろしくお願いします。

  • MFCのリストボックスについて

    MFCをVC6.0で作成しています。現在、ダイアログボックスを作成しているのですが、ダイアログボックスの中のリストボックスについて、教えてください。 void CFileReadeDlg::GetIndex() { UpdateData(TRUE); m_nCount = m_xcList.GetCurSel(); if(m_nCount==LB_ERR) { AfxMessageBox("選択してください"); } } の関数で、リストボックス内に存在するカーソルの位置を割り出したいのですが、 この関数は、 void CFileReadeDlg::OnSelchangeDatatable() { // TODO: この位置にコントロール通知ハンドラ用のコードを追加してください GetIndex(); } のようにリストボックスの中のセルを変更した際に稼動する関数内で呼び出しています。 ですが、実際、このm_nCountには、0しか入りません。 これは、単にOnSelchangeDatatable()の関数を何処かの関数内にも呼び出していないからでしょうか。 そもそも、呼び出す必要はないかと思っていたのですが。 又、VCのヘルプに『単一選択リスト ボックスで、現在選択されている項目があれば、その項目の 0 から始まるインデックスを取得します』 とありましたが、0から始まるインデックスとは、どういうことを意味しているのでしょうか。 よろしくお願いします。

  • VC++でダイアログ表示について

    VC++初心者です。 MFCアプリケーションでダイアログベースのアプリケーションを作ったのですが、ボタンクリック時にもう一つダイアログを表示しようと思っています。 以下のコードだと、うまく表示されずに画面がフリーズしてしまいます。どこを直したらいいのでしょうか。ご教授願います。 環境は、xp、Visual Studio.net 2003です。 void CMFCtestDlg::OnBnClickedButton1() {   //   CmyDialog myDL;   myDL.DoModal(); } MFCtestDlg.cpp内、#include "myDialog.h" は記述してあります。 VBの経験はあるのですが、VC++はまったくわかりません。 よろしくお願いします。

  • VC++ ダイアログについて

    VC++初心者です。 ダイアログボックスについて質問です。 項目を複数選択する為に、リストボックスを使用しています。 しかしユーザーから「項目をホイールで選択できるようにしてほしい。」 との意見がありました。 また項目をドラッグして順序を入れ替えたいのですが、 どちらもどのようにすれば対応できるのでしょうか? 以上、ご回答よろしくお願い致します。

  • VC++2008にて、画面の動的変更処理について

    現在VC++2008のMFCにて開発を行っております。 ダイアログのテキストボックスAの値を変更し、 カーソルが移動した際に 他のテキストボックスBの値を、Aの値により処理がかかる のような処理は無理なのでしょうか? やはり、ボタン押下でしか画面の更新は無理なのでしょうか? ご教授頂ければ幸いです。

  • MFCでコンボボックスを選択不可状態にしたい

    ダイアログ上にあるコンボボックスを選択不可状態にしたいのですが、 良い方法が見つかりません。 どなたか良い方法ご存知でしたら、ご教授お願い致します。 なお、この場合の選択不可とは、 コンボボックス上でクリックしても、 プルダウンされず、何も反応しないことを指します。 またコンボボックスのTypeは、ドロップダウンにて作成しています。 開発環境は、VC++2005です。 また、当方MFC経験2ヶ月程度の初心者ですので、 なるべく分かりやすい解説いただけると幸いです。 お手数ですが、御回答お願いいたします。

  • VC++ダイアログボックスの表示更新がわかりません

    現在ダイアログボックスにスタティックコントロールを配置し、表示更新する際不明な点があります。VC6.0 MFCです。 1、ダイアログボックス上のコントロールに、作成したビットマップを表示させる際、OnInitDialog関数内で、Bitbiltしていますが、表示されません。 ボタンクリックイベント等で、同様の手順でBitbiltすると表示されます。 これはなぜなのでしょうか? また、ダイアログボックスが表示された際にBitmapを表示するにはどうすればよいでしょうか? 2、また、表示されたBitmapはダイアログボックスを動かしたり、隠れたりすると消えてしまいます。 再表示を自動的にさせるにはどうすればよいでしょうか?(OnDraw関数のようなものがあるのでしょうか?) 初歩的な質問で申し訳ありませんが、よろしくお願いいたします。

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

    パスワードが必要なサイトにアクセスする際、『コンピューターにパスワードを記憶させますか』というダイアログボックスが出ていました。 しかし、『次から表示しない』にチェックを入れてしまったため、出てこなくなりました。 これを再表示するためにはどのようにすればよいのですか? また、記憶させたパスワードを編集することはできるのですか? なんとなくパスワード管理ソフトだと落ち着きません。 よろしくお願いします。

  • VC++にてファイル入出力サンプルアプリの作り方

    はじめまして。 VC++2005にてMFCを使用してサンプルアプリを作ることになりました。 あるフォルダを選択して、その配下のファイルをリストで出力。そのうち選択したファイル(txt)を読み込んで、その内容を出力させる。 という機能です。 ポイントは (1)入力したフォルダパス配下のファイルをリストボックスに列挙する。 (2)リストボックスで選択したファイルの内容をエディットボックスに表示する。 ┌――――――――――――――――――――――――┐ └――――――――――――――――――――――――┘ |┌―――┐┌―――┐ ||パ ス ||ボタン | |└―――┘└―――┘ |┌―――――――――┐ ||リストボックスリストボ | ||ックスリストボックスリ |┌―――┐ ||ストボックスリストボッ ||ボタン | |└―――――――――┘└―――┘ |┌――――――――――――――――――┐ ||エディットボックスエディットボックスエディット| ||エディットボックスエディットボックスエディット| |└――――――――――――――――――┘ └――――――――――――――――――――――――┘ その部分のコードだけは近いのが載ってたりもしたのですが、 まだMFCの操作自体もろくにできない状態なので、 どなたか操作も含めた説明の載ったサイト紹介や、直接この場でご教授頂ければ助かります。 前は操作を含めた説明まで載った親切なサイトがあったのに、いつの間にかなくなってしまって。。。

  • VC++でドラッグドロップ

    いつもお世話になっております。 今回はドラッグドロップについてお聞きしたいことがあります。 ダイアログに読取専用エディットボックスとリストボックスをつけて フォルダをドロップするとエディットにはフォルダのフルパス、 リストにはフォルダ内のファイルが列挙されるというソフトを 作っております。 現状、リストへフォルダをドロップした場合は以上の動作をしますが エディットへドロップしても何の反応も起きません。 今回はエディットとリストどちらにドロップしても同様の動作をしたく、 ResourceViewで両方ドラッグドロップ許可にしていますが、 リストのほうはドロップするとアイコンには+がでて、 ドロップ可能のようになっていますが実際にはWM_DROPFILESすら 捕まえることができません。 読み取り専用がよくない等いろいろ試しては見ましたが できませんでした。 リストのほうをドロップ不可(エディットのほうのみ可能)にした場合も 何もおきなかったのですが、そもそもエディットボックスではドロップは 不可能なのでしょうか? 以上の点をご教授願いたいです。 よろしくお願いします。 開発環境は VC++6.0 Professional SP2 OSは WindowsXP です。