• 締切済み

C++でのwindows フォームアプリケーションについて

最近フォームアプリケーションでの開発を始めたのですが、 public ref class Form1 : public System::Windows::Forms::Form から #pragma region Windows Form Designer generated code の間に記述されている内容がサンプルコードを見たりしても理解できません。 どのような時に呼び出されて、どのような意味があるのでしょうか 以下、参考にさせてもらったサンプルコード public ref class Form1 : public System::Windows::Forms::Form { protected: msCDXMain* m_pDXMain; BOOL m_bStart; public: Form1(void) { InitializeComponent(); InitDX(); m_bStart = FALSE; // //TODO: ここにコンストラクタ コードを追加します // } protected: /// <summary> /// 使用中のリソースをすべてクリーンアップします。 /// </summary> ~Form1() { if (components) { delete components; } } private: System::Windows::Forms::Button^ button1; private: System::Windows::Forms::Timer^ PaintTimer; protected: private: System::ComponentModel::IContainer^ components; private: /// <summary> /// 必要なデザイナ変数です。 /// </summary> BOOL InitDX(void) { m_pDXMain = NULL; try{ m_pDXMain = new msCDXMain; if(!m_pDXMain->Init((HWND)this->Handle.ToInt32())){ SAFE_DELETE(m_pDXMain); throw 0; } } catch(...){ return FALSE; } return TRUE; }

みんなの回答

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

protected: // アクセス指定子 このクラスの継承時に公開するレベルの設定 // msCDXMain型のポインターのメンバー変数 msCDXMain* m_pDXMain; // 何かのフラグ BOOL m_bStart; public: Form1(void) { // コントロールなどの初期化ルーチン InitializeComponent(); // たぶんダイレクトXの初期化ルーチン InitDX(); // フラグの初期化 m_bStart = FALSE; // //TODO: ここにコンストラクタ コードを追加します // } protected: /// <summary> /// 使用中のリソースをすべてクリーンアップします。 /// </summary> ~Form1() {   // 後始末ルーチン   if (components)   {     delete components;   } } // フォームのボタンコントロールの宣言 private: System::Windows::Forms::Button^ button1; // タイマーコントロールの宣言 private: System::Windows::Forms::Timer^ PaintTimer; protected: // デザイナで使う記述 private: System::ComponentModel::IContainer^ components; private: /// <summary> /// 必要なデザイナ変数です。 /// </summary> BOOL InitDX(void) {   // メンバー変数の初期化   m_pDXMain = NULL;   try{     // msCDXMainクラスの生成     m_pDXMain = new msCDXMain;     // 生成したクラスの初期化ルーチン呼び出し     if(!m_pDXMain->Init((HWND)this->Handle.ToInt32())){       // 初期化失敗なら 作成したオブジェクトを破棄       // 例外を送出して終了       SAFE_DELETE(m_pDXMain);       throw 0;     }   }   catch(...){     // その他の例外処理 ... 初期化失敗でリターン     return FALSE;   }   // 初期化成功   return TRUE; といった具合かと ...

noname#142252
質問者

お礼

しばらく考えたら何となく分かってきました。 まだ完全に理解したわけではありませんが、解説した下さったことに感謝します。

noname#142252
質問者

補足

最初のprotectedは変数の宣言、publicはコンストラクタ、2番目のprotectedはデストラクタで良いのですかね? privateにある変数の初期化はコンストラクタでは出来ないのでしょうか?

関連するQ&A