第38講 データベースソフト(住所録)の制作=並列処理の練習☆☆
第10話 ファイルの各サブメニューのコードの解説その2
コード再掲
private: System::Void 名前を付けてToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
         SaveFileDialog^ w=gcnew SaveFileDialog();
         w->Filter="CSV形式(*.csv)|*.csv|すべてのファイル(*.*)|*.*";
         if(w->ShowDialog()!=System::Windows::Forms::DialogResult::OK)return;

         dcs(w->FileName);
         this->fn=w->FileName;
     }
private: System::Void 上書き保存ToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
         if(this->fn->Equals(L""))
           名前を付けてToolStripMenuItem_Click(sender, e) ;
         else
           dcs(fn);
      }
private: System::Void 開くToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
         OpenFileDialog^ w=gcnew OpenFileDialog();

         if(w->ShowDialog()!=System::Windows::Forms::DialogResult::OK)return;

         dco(w->FileName);
         this->fn=w->FileName;
      }
private: System::Void 閉じるToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
          Close();
}

         SaveFileDialog^ w=gcnew SaveFileDialog();
         w->Filter="CSV形式(*.csv)|*.csv|すべてのファイル(*.*)|*.*";
         if(w->ShowDialog()!=System::Windows::Forms::DialogResult::OK)return;
この3行で行っていることは、
ダイアログ

名前を付けて保存入門VC++

ファイル→名前を付けて保存のWindowを開くという働きをしています。
w->Filter="CSV形式(*.csv)|*.csv|すべてのファイル(*.*)|*.*";
の行を削ると、C++となります。先ほどの初心者の違いがお分かりですね。
つまり、保存のファイルの形式は*.csvまたは*.*であると指定することが
w->Filter="CSV形式(*.csv)|*.csv|すべてのファイル(*.*)|*.*";
の役割です。
単に、
w->Filter="CSV形式(*.csv)|*.csv";としてもマルチスレッドの方法でこの段階では、
w->Filter="CSV形式(*.csv)|*.csv|すべてのファイル(*.*)|*.*";との区別がつきませんが、並列処理
ピンクの部分を押すと違いがはっきりします。
w->Filter="CSV形式(*.csv)|*.csv|すべてのファイル(*.*)|*.*";
の場合は、基礎と選択できるようになりますが、
w->Filter="CSV形式(*.csv)|*.csv";
だとピンクを押しても何も現れません。
*.*の方は自分で拡張子を選べるようにしてあります。
ですが、CSVでしか保存しませんので、
w->Filter="CSV形式(*.csv)|*.csv";でも充分と言うことになります。
どちらにするかは、ユーザの好みでしょう。

では、SaveFileDialog^ w=gcnew SaveFileDialog();の役割は何でしょうか。
左辺SaveFileDialog^ wはダイアログ型の変数を用意しなさいです。
右辺gcnew SaveFileDialog()は、
『名前を付けて保存する』ダイアログ(ユーザに何らかの入力を促すために表示されるウインドウのこと)
を定義するです。
ですから、SaveFileDialog^ w=gcnew SaveFileDialog();全体は『名前を付けて保存する』ダイアログを定義し、
それをダイアログ型の変数wに代入しなさいです。
そして、w->Filterではファイルを開くを指定しているわけです。
3行目if(w->ShowDialog()!=System::Windows::Forms::DialogResult::OK)return;
のShowDialog()によって『名前を付けて保存する』ダイアログが開きます。
System::Windows::Forms::DialogResult::OKは何でしょう。
上書き保存のボタンが押されたときに送られてくる戻り値OKです。
つまり、if(w->ShowDialog()!=System::Windows::Forms::DialogResult::OK)return;は保存ボタンが押されたときは、
何もしないのに対して、閉じるが押されたときはreturnが実行されます。
つまり、キャンセルされたときは何もしないで関数private: System::Void 名前を付けてToolStripMenuItem_Click
を閉じるのです。
保存ボタンが押されたときは、
         dcs(w->FileName);
         this->fn=w->FileName;
の2行が実行されます。この2行も初心者の方にはさっぱり意味がわかりませんね。
大丈夫ですよ。皆さんが理解できるように、次話で詳しく説明しますから。




第9話へ 第11話へ

戻る

VC++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)