第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行で行っていることは、
ファイル→名前を付けて保存のWindowを開くという働きをしています。
w->Filter="CSV形式(*.csv)|*.csv|すべてのファイル(*.*)|*.*";
の行を削ると、となります。先ほどのの違いがお分かりですね。
つまり、保存のファイルの形式は*.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行も初心者の方にはさっぱり意味がわかりませんね。
大丈夫ですよ。皆さんが理解できるように、次話で詳しく説明しますから。
VC++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual
Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)