
VC++初心者です。
たびたび、お世話になっております。
現在、VC++2005 Express Edition、CLRのプロジェクトで
コーディングしています。
基本的な質問だと思いますが、ダイアログ右上に配置される
最小化、最大化、閉じるボタンの制御の仕方を
教えていただけませんでしょうか。
具体的にはやりたいことは、以下のようなものです。
・閉じるボタンを押されたら、MessageBoxを表示させる。
・他のダイアログのボタンから別のダイアログの最大化ボタンが
押されたことと同じ動作をする。
No.2ベストアンサー
- 回答日時:
No.1さんMFCではないですよ。
最大化、最小化は
FormのResizeイベントでWindowStateプロパティを見ればわかります。
System::Void Form1_Resize(System::Object^ sender, System::EventArgs^ e)
{
if (this->WindowState == FormWindowState::Maximized) {
MessageBox::Show(L"最大化");
}
else if (this->WindowState == FormWindowState::Minimized) {
MessageBox::Show(L"最小化");
}
}
×ボタンで閉じるはFormClosingやFormClosedあたりのイベントで。
>・他のダイアログのボタンから別のダイアログの最大化ボタンが
> 押されたことと同じ動作をする。
とは?
この前の子フォームのと関連しているということでしょうか?
最小化時にに子フォームのVisibleプロパティをfalseに、最小化が解除されたとき(=最大化だけとは限らない)にtrueにするだけですが。
(そもそも、親フォームに最大化ボタンは必要あるか。)
この回答への補足
ご指摘、ありがとうございます。
私の質問内容が不明確ですみませんでした。
>>・閉じるボタンを押されたら、MessageBoxを表示させる。
とは、
あくまで動作イメージなのですが
×ボタンが押されたら、「アプリを終了しますか?YES/NO」と書かれた
メッセージダイアログを出現させてアプリを終了させるかどうかの
操作を加えたいと考えています。
(この場合は、FormClosingのタイミングで動作させれば宜しいでしょうか。)
また、
>>・他のダイアログのボタンから別のダイアログの最大化ボタンが
>> 押されたことと同じ動作をする。
とは、
http://okwave.jp/qa4877962.html
の延長なのですが、現在親フォームから子フォームを呼び出して
親フォームに設置したボタンから子フォームを最大化、最小化、
元のサイズ戻すということをしたいと考えています。
(親フォームから子フォームをコントロールしたいです。)
No.3
- 回答日時:
キーワードが出ているので少しは検索してみましょう。
>子フォームを最大化、最小化、元のサイズ戻す
↓
>WindowStateプロパティ
http://msdn.microsoft.com/ja-jp/library/system.w …
>ウィンドウが元のサイズに戻されているか、最小化されているか、最大化されているかを示す値を取得または『設定します』。これは、依存関係プロパティです。
// 最小化
this->childform_->WindowState = FormWindowState::Minimized;
// 最大化 Maximized
// 元に戻す : Normal
ありがとうございます。
できました!
MSDNのページには他の件でも何度もアクセスしています。
まだまだ私には難しくて、他のページを参照することが多々ありますが、
MSDNのページは一番有益なページだと思うので、
使いこなせるようにがんばります。
No.1
- 回答日時:
とりあえず、
×は、以下でダイアログ表示するようになります。
WM_DESTROY をオーバーロードします。
void CSysDlg::OnDestroy()
{
CDialog::OnDestroy();
// TODO: ここにメッセージ ハンドラ コードを追加します。
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
なお、上記は、面倒だったので、Aboutダイアログを表示しています。
他は、意味がよくわからないのですが・・・。
この回答への補足
ご回答、ありがとうございます。
No2さんからもご指摘がありましたように、
教えていただいたのはMFCの書き方のようですね。
(今回教えて頂着たかったのは、作成するVC++のCLRで
プロジェクトでした。)
しかしながら、VC++6.0も使用しているので、
紹介していただいたソースを参考にさせて頂きます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Office(Windows版,Word/Excel/PowerPoint等)にログインできません 4 2022/07/24 15:18
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- その他(コンピューター・テクノロジー) PC利用中に勝手に起動する窓を消し去る方法を教えて下さい。 1 2023/05/08 16:48
- 工学 1つのタクトスイッチで複数の並列回路を閉じ、アースにつなげることができるスイッチはありますか。 2 2022/08/06 10:38
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- レディース 【最近の女子制服のボタン数について】 最近、中学校や高校で制服をモデルチェンジする学校が増えています 1 2023/02/21 13:07
- オンラインゲーム DBDで貞子の具現化ボタンと念写について 1 2022/04/02 01:28
- Windows 10 Windows10デスクトップパソコン再起動するといくら待ってもがならず起動の黒い画面で止まってしま 5 2023/04/06 10:23
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メッセージボックスのボタン文...
-
ボタンの表示の色、フォントを...
-
コンボボックスのドロップダウ...
-
C# ボタンコントロール内で文字...
-
メッセージボックスを大きくす...
-
ダイアログボックスで指定した...
-
フォーム上のリストボックスに...
-
リソースファイルとは・・・
-
ボタンの配置を変更したい
-
Visual C++のダイアログ編集画...
-
ダイアログの一部を半透明化す...
-
ダイアログを自分の好きな位置...
-
VC++ MFC エラーコード C2248 ...
-
MFCダイアログボックスを最前面...
-
ダイアログの上のテキストボッ...
-
別のアプリから表示されたダイ...
-
vbscriptで、ファイル選択ダイ...
-
エクセル VBA 「Sub Auto_Open(...
-
MFCのリストボックスについて
-
ダイアログの表示位置の保存
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ボタンの表示の色、フォントを...
-
C# ボタンコントロール内で文字...
-
メッセージボックスを大きくす...
-
フォーム上のリストボックスに...
-
リソースファイルとは・・・
-
ダイアログの上のテキストボッ...
-
MFCダイアログボックスを最前面...
-
メッセージボックスのボタン文...
-
コンボボックスのドロップダウ...
-
ボタンの配置を変更したい
-
ダイアログボックスで指定した...
-
'int' から 'LPCSTR' に変換で...
-
ダイアログのボタンが押された...
-
ダイアログ最前面表示時の後ろ...
-
ダイアログの表示位置の保存
-
confirmダイアログの表示文字に...
-
ダイアログ間のメッセージの送...
-
エディットコントロールの色の...
-
MFC ポップアップメニューのチ...
-
vbscriptで、ファイル選択ダイ...
おすすめ情報