SlideShare a Scribd company logo
1 of 61
MFCを始めようとしてみた

      暁 紫電




    わんくま同盟 東京勉強会 #78
自己紹介

• HN:暁 紫電
• 本名: 伊藤 伸男
• 職業: フリーランス・プログラ
  マー
  使用言語
   C++
   C++/CLI
   C#


     わんくま同盟 東京勉強会 #78
本日のアジェンダ

•   MFCとは?
•   なんでいまさらMFC
•   MFCの利点/欠点
•   とりあえずプロジェクトを作ってみる
•   ダイアログベース
•   まとめ




          わんくま同盟 東京勉強会 #78
MFCとは

• マイクロソフトがWindows アプリ作成
  用の
  フレームワークとして開発したライブ
  ラリ。

• 環境としては、「Visual C++ 1.0」の前
  の
  「C/C++ Compiler 7.0」から付属してい
  る。       わんくま同盟 東京勉強会 #78
なんでいまどきMFC?



• ロジックだけじゃなくてUIもC++で書
  きたい。

• 受けれる仕事の幅を増やしたい。




       わんくま同盟 東京勉強会 #78
MFC(というよりネイティブGUI)の利点

• .NET バージョンやラッパーの用意されて
  いないネイティブライブラリを低コストで
  呼び出すことが出来る。
• ネイティブなので速いはず。
• 実行時にネイティブに変換されるから速度
  は変わらないという話もあるが、
  すくなくても ネイティブへの変換コスト
  が掛からないはず。(JITコンパイル?)


         わんくま同盟 東京勉強会 #78
MFCの欠点

• MSDNに初心者向けチュートリアルがな
  い
 – MFC自体をある程度使える前提で
   新し目の機能(リボンインターフェースなど)に
   対応というようなチュートリアルはある
 – 初心者向けに0から作るようなチュートリアル
   がない。
 – 各技術項目を読んで理解する必要がある。



        わんくま同盟 東京勉強会 #78
MFCの欠点

• リファレンスもない。
パブリック クラス メンバーおよびプロテクト ク
ラス
メンバーは、アプリケーション プログラムや派生
クラスでよく使われるものだけを取り上げていま
す。 全クラス メンバーの一覧は、クラスのヘッ
ダー ファイルを参照してください。

http://msdn.microsoft.com/ja-jp/library/d06h2x6e.aspx
                   ソース読め
                     わんくま同盟 東京勉強会 #78
MFCの欠点(by wikipedia)

• CDocument, CView 等の基本的なクラスの
  仕様が難解である。
• Windowsメッセージ、コマンド等の
  Win32 APIの基本を理解していることが前
  提。
• すべての構造体、クラスおよび列挙型など
  がグローバル名前空間に存在している。
• マクロが多用されているため、識別子の衝
  突、競合が発生しやすい。

           わんくま同盟 東京勉強会 #78
MFCの欠点(by wikipedia)

• MFCが作られたのがC++の標準化以前であ
  るため、例外処理、実行時型情報などの
  機能がマクロを使用した独自実装となって
  いるため、標準C++に慣れたユーザーは戸
  惑う




         わんくま同盟 東京勉強会 #78
最初から生のWinAPIにしておけば良かった
        (´・ω・`)




       わんくま同盟 東京勉強会 #78
でもセッションもう頼まれちゃったしがんば
         る。
       (`・ω・´)




       わんくま同盟 東京勉強会 #78
とりあえずデフォルト設定で
 プロジェクトを作ってみる




    わんくま同盟 東京勉強会 #78
プロジェクトテンプレートから
MFCアプリケーションを選択




    わんくま同盟 東京勉強会 #78
わんくま同盟 東京勉強会 #78
わんくま同盟 東京勉強会 #78
わんくま同盟 東京勉強会 #78
わんくま同盟 東京勉強会 #78
わんくま同盟 東京勉強会 #78
わんくま同盟 東京勉強会 #78
わんくま同盟 東京勉強会 #78
わんくま同盟 東京勉強会 #78
設定項目が多すぎて
    なにやら
ありがた迷惑臭が漂います


    わんくま同盟 東京勉強会 #78
デフォルトプロジェクト 設定

• アプリケーションの種類:マルチドキュメ
  ント
• ドキュメント/ビューアーキテクチャー
• プロジェクト形式:VisualStudio
• Visual スタイルと色:Visual Studio 2008




            わんくま同盟 東京勉強会 #78
プロジェクトを作った状態




  わんくま同盟 東京勉強会 #78
デフォルトプロジェクト



•   デザイナが開いていない
•   .cppファイル 11個
•   .hファイル 13個
•   リソースファイル 27個




          わんくま同盟 東京勉強会 #78
デフォルト設定にしては大き過ぎない
        か?
    と思いつつコンパイル




      わんくま同盟 東京勉強会 #78
なにやらVisual Studio的なものが完成




        わんくま同盟 東京勉強会 #78
とりあえず
もう少しシンプルなものが作りた
       い




     わんくま同盟 東京勉強会 #78
とりあえず、最初の画面だけ
シンプルなそうな設定にしてみ
      る。




    わんくま同盟 東京勉強会 #78
わんくま同盟 東京勉強会 #78
シンプル?プロジェクト 設定

• アプリケーションの種類:シングルドキュ
  メント
• ドキュメント/ビューアーキテクチャー
• プロジェクト形式:MFC標準
• Visual スタイルと色:Windowsネイティブ/
  既定




          わんくま同盟 東京勉強会 #78
シンプルプロジェクト



•   相変わらずデザイナなし
•   .cppファイル 5個
•   .hファイル 7個
•   リソースファイル 7個




          わんくま同盟 東京勉強会 #78
だいぶシンプルになったけど




  わんくま同盟 東京勉強会 #78
それでも色々付いてます。




  わんくま同盟 東京勉強会 #78
デザイナなし・まとめ

• ウィザードの最初の画面をいじるだけだと
  最小限のものは作れない。
• 本当に最小限のプロジェクトを作ろうとす
  ると
  めんどくさそう
• そもそも最小限の状態から作り始めるもの
  じゃないかもしれない。
• ウィザードで雛形を作ってそれを元にして
  アプリケーションを作っていくべき?

       わんくま同盟 東京勉強会 #78
デフォルト設定じゃないけど
ちゃんとデザイナもあります。




    わんくま同盟 東京勉強会 #78
わんくま同盟 東京勉強会 #78
デザイナはリソースビューから選択可能




     わんくま同盟 東京勉強会 #78
今回は割とシンプルなものが出来上がります




      わんくま同盟 東京勉強会 #78
最初からボタンが2つ




      クリックするとダイアログが
      閉じアプリケーションが終了
      します。
      DialogResult的な物

 わんくま同盟 東京勉強会 #78
最初からボタンが2つ




開発時にダブルクリックすると、
OnBnClickedOK(),OnBnClickedCancel()が作られる。
内部で OnOK(), OnCancel();を呼び出している



          わんくま同盟 東京勉強会 #78
ダイアログが勝手に閉じないようにする。

• とりあえずコントロールを削除してみる
• 削除してもEnter/Escを押せば閉じてしまう。
• OnBnClickedOk()/Cancel()で呼び出されている
  CDialogEx::OnOK()/OnCancel()を削除すれば
  キーを押しても閉じなくなる。
void CDialog1Dlg::OnBnClickedOk()
{
     // TODO: ここにコントロール通知ハンドラー コードを追加します。
     CDialogEx::OnOK(); ←コレを消す
}




              わんくま同盟 東京勉強会 #78
ダイアログが勝手に閉じないようにする。(Cancel)

• OnCancel()の呼び出しを消してしまうと
  Escボタンだけじゃなくて閉じるボタンや
  Alt+F4でもウィンドウが閉じられなくなっ
  てしまう

※(ウィンドウを閉じようとすると
OnBnClickedCancel()が呼び出され、その中で閉じ
る処理( OnCancel() )が行われるため



           わんくま同盟 東京勉強会 #78
Escキーでダイアログが閉じないようにする。

Escでは閉じず他の手段では閉じるようにするためには、
PreTranslateMessageをオーバーライドする必要がある。
BOOL CDialog1Dlg::PreTranslateMessage(MSG* pMsg)
{
      if( WM_KEYDOWN == pMsg->message )
      {
              if(pMsg->wParam == VK_ESCAPE)
              { return FALSE; }
      }
      return CDialogEx::PreTranslateMessage(pMsg);
}



                       わんくま同盟 東京勉強会 #78
MFCの正しい使い方?
• デザイナなし(Doc-View等)でアプリ本体を
  作って設定ダイアログ等をダイアログベー
  スで作るのがMFCの正しい使い方っぽ
  い?

• アプリの内容にもよるがダイアログベース
  で全部作ってしまう事のほうが
  多そうな気も……


         わんくま同盟 東京勉強会 #78
とりあえずなんか作る

• ボタンをクリックするとテキストボックス
  の中身がメッセージダイアログで表示され
  る
• ダイアログボックスを閉じるとテキストコ
  ントロールにそのテキストボックスの中身
  を表示する。
• WinFormsであればコントロールに対応す
  る変数を操作すればすぐ出来る簡単なアプ
  リ

        わんくま同盟 東京勉強会 #78
とりあえず、コントロールを配置




   わんくま同盟 東京勉強会 #78
コントロールに対応した変数が作られていない。
// CDialog1Dlg ダイアログ
class CDialog1Dlg : public CDialogEx
{
     // ~略~
public:
     afx_msg void OnBnClickedOk();
     afx_msg void OnBnClickedCancel();

     virtual BOOL PreTranslateMessage(MSG* pMsg);
     afx_msg void OnBnClickedButton1();


};


                   わんくま同盟 東京勉強会 #78
コントロールを選択して右クリック→変数の追加




       わんくま同盟 東京勉強会 #78
変数のカテゴリ

• Value
    主に表示している文字列に対応した変
数
    int,CString等

• Control
    配置したコントロールに対応したクラ
ス
    CStatic,CButton,CEdit等
         わんくま同盟 東京勉強会 #78
変数の追加結果
// CDialog1Dlg ダイアログ
class CDialog1Dlg : public CDialogEx
{
     // ~略~
public:
     afx_msg void OnBnClickedOk();
     afx_msg void OnBnClickedCancel();

     virtual BOOL PreTranslateMessage(MSG* pMsg);
     afx_msg void OnBnClickedButton1();

     CEdit TextBox1;      //テキストボックスに対応したControll変数
     CString LabelText; //ラベルの文字列に対応したValue変数

};

                      わんくま同盟 東京勉強会 #78
DDX/DDV

• 変数を追加するとDoDataExchange()に
  DDX/DDV系関数の呼び出しが追加される。
void CDialog1Dlg::DoDataExchange(CDataExchange*
pDX)
{
     CDialogEx::DoDataExchange(pDX);

    DDX_Control(pDX, IDC_EDIT1, TextBox1);
    DDX_Text(pDX, IDC_RESULT, LabelText);
    DDV_MaxChars(pDX, LabelText, 10);
}


                  わんくま同盟 東京勉強会 #78
DDX/DDV

• DDX: Dialog Data eXchange
  変数の内容を実際のコントロールに反
映、
  コントロールの内容を変数に反映させ
る。

• DDV: Dialog data validation
  データの妥当性検査

               わんくま同盟 東京勉強会 #78
DoDataExchange(CDataExchange* pDX)
• pDxのメンバーm_bSaveAndValidateがTRUEの
  場合
  コントロールの内容を変数に反映する

• FALSEの場合
  変数の内容をコントロールに転送する。

• CWnd::UpdateData(BOOL)で呼び出すことが出
  来る。


              わんくま同盟 東京勉強会 #78
なんとなくMVC系でいう
中間層的な動作をしている気がす
       る。

※厳密な意味ではないので適当に聞き流して下さい



       わんくま同盟 東京勉強会 #78
OnBnClickedButton1()
void CDialog1Dlg::OnBnClickedButton1()
{
     CString str;  //文字列変数の作成

    //テキストボックスの文字列を取得
    TextBox1.GetWindowTextW(str);

    // メッセージボックに表示
    AfxMessageBox(str,IDOK);

    // ラベルの文字列を更新
    this->LabelText = str;

    UpdateData(FALSE);    // 反映
}

                     わんくま同盟 東京勉強会 #78
問題点

• 追加した変数すべてのDDX/DDVが
  DoDataExchange()に含まれるので
  ひとつの変数に関してだけ更新したいとき
  でもすべての変数に対して更新されてしま
  う。
• 変数が多くなると、更新したいわけではな
  い変数に対する処理のせいで
  動作が重くなる可能性がある。


         わんくま同盟 東京勉強会 #78
CWnd::GetDlgItem(int nID )
• CWnd::GetDlgItemを用いることで、
  DoDataExChange()を使わずに、コント
  ロールと関連付けられた変数へのポインタ
  を取得できる。
void CDialog1Dlg::OnBnClickedButton1()
{
     CEdit* pTextBox = (CEdit*)this->GetDlgItem(IDC_EDIT1);
     CStatic* pLabel = (CStatic*)this->GetDlgItem(IDC_LABEL);

    CString str;
    pTextBox->GetWindowTextW(str);
    AfxMessageBox(str,IDOK);
    pLabel->SetWindowTextW(str);
}

                        わんくま同盟 東京勉強会 #78
ダイアログベース・まとめ

• 基本的には設定ダイアログ等を作るためのも
  の
• アプリ自体の作成に使うなら、必要に応じて
  OnOK OnCancelが呼び出されないように修
  正。
• 変数の追加、
  DDX/DDV関数でコントロールを操作する。

• DoDataExChange()の肥大化が気になる場合
  はGetDlgItem()でコントロール対応クラスへ
  のポインタを取得     わんくま同盟 東京勉強会 #78
最後に

• ありがた迷惑設計だけど慣れればどうにか
  なりそう

• でも本格的に使うならフレームワーク的な
  ものを作ったほうがいいかもしれない

• でもそれって自分でWinAPIを自分でラッ
  プして使うのとあまり変わりないのでは?


        わんくま同盟 東京勉強会 #78

More Related Content

What's hot

知って得するC#
知って得するC#知って得するC#
知って得するC#Shota Baba
 
Inside frogc in Dart
Inside frogc in DartInside frogc in Dart
Inside frogc in DartGoro Fuji
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Akira Inoue
 
C# コーディングガイドライン 2013/02/26
C# コーディングガイドライン 2013/02/26C# コーディングガイドライン 2013/02/26
C# コーディングガイドライン 2013/02/26Yoshihisa Ozaki
 
ActionScriptを使わないFlash勉強会 #1(前日版)
ActionScriptを使わないFlash勉強会 #1(前日版)ActionScriptを使わないFlash勉強会 #1(前日版)
ActionScriptを使わないFlash勉強会 #1(前日版)libpanda
 
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core GuidelinesBoost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core GuidelinesShintarou Okada
 
DoActionからJava VMバイトコードに変換する話
DoActionからJava VMバイトコードに変換する話DoActionからJava VMバイトコードに変換する話
DoActionからJava VMバイトコードに変換する話emorins
 
SmalltalkBoltでUFFI入門
SmalltalkBoltでUFFI入門SmalltalkBoltでUFFI入門
SmalltalkBoltでUFFI入門Masashi Umezawa
 
今からでも遅くないC#開発
今からでも遅くないC#開発今からでも遅くないC#開発
今からでも遅くないC#開発Kazunori Hamamoto
 
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築kimukou_26 Kimukou
 
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るnode+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るKiyoshi SATOH
 
Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316Takefumi MIYOSHI
 
Layout analyzerでのgroovyの利用について
Layout analyzerでのgroovyの利用についてLayout analyzerでのgroovyの利用について
Layout analyzerでのgroovyの利用についてkimukou_26 Kimukou
 
Code Contracts in .NET 4
Code Contracts in .NET 4Code Contracts in .NET 4
Code Contracts in .NET 4信之 岩永
 
Synthesijer jjug 201504_01
Synthesijer jjug 201504_01Synthesijer jjug 201504_01
Synthesijer jjug 201504_01Takefumi MIYOSHI
 

What's hot (20)

Misrac20150523
Misrac20150523Misrac20150523
Misrac20150523
 
知って得するC#
知って得するC#知って得するC#
知って得するC#
 
Inside frogc in Dart
Inside frogc in DartInside frogc in Dart
Inside frogc in Dart
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
 
C#の書き方
C#の書き方C#の書き方
C#の書き方
 
C# コーディングガイドライン 2013/02/26
C# コーディングガイドライン 2013/02/26C# コーディングガイドライン 2013/02/26
C# コーディングガイドライン 2013/02/26
 
ActionScriptを使わないFlash勉強会 #1(前日版)
ActionScriptを使わないFlash勉強会 #1(前日版)ActionScriptを使わないFlash勉強会 #1(前日版)
ActionScriptを使わないFlash勉強会 #1(前日版)
 
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core GuidelinesBoost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
 
DoActionからJava VMバイトコードに変換する話
DoActionからJava VMバイトコードに変換する話DoActionからJava VMバイトコードに変換する話
DoActionからJava VMバイトコードに変換する話
 
Unityで覚えるC#
Unityで覚えるC#Unityで覚えるC#
Unityで覚えるC#
 
TruffleSqueakの紹介
TruffleSqueakの紹介TruffleSqueakの紹介
TruffleSqueakの紹介
 
SmalltalkBoltでUFFI入門
SmalltalkBoltでUFFI入門SmalltalkBoltでUFFI入門
SmalltalkBoltでUFFI入門
 
今からでも遅くないC#開発
今からでも遅くないC#開発今からでも遅くないC#開発
今からでも遅くないC#開発
 
qmake入門
qmake入門qmake入門
qmake入門
 
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
 
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るnode+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
 
Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316
 
Layout analyzerでのgroovyの利用について
Layout analyzerでのgroovyの利用についてLayout analyzerでのgroovyの利用について
Layout analyzerでのgroovyの利用について
 
Code Contracts in .NET 4
Code Contracts in .NET 4Code Contracts in .NET 4
Code Contracts in .NET 4
 
Synthesijer jjug 201504_01
Synthesijer jjug 201504_01Synthesijer jjug 201504_01
Synthesijer jjug 201504_01
 

Viewers also liked

わんくま名古屋#33(20141115) モノ作り半生
わんくま名古屋#33(20141115) モノ作り半生わんくま名古屋#33(20141115) モノ作り半生
わんくま名古屋#33(20141115) モノ作り半生Yasuhiko Yamamoto
 
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門Yasuhiko Yamamoto
 
わんくまT84 kinect深度情報処理入門
わんくまT84 kinect深度情報処理入門わんくまT84 kinect深度情報処理入門
わんくまT84 kinect深度情報処理入門伸男 伊藤
 
わんくま同盟の紹介
わんくま同盟の紹介わんくま同盟の紹介
わんくま同盟の紹介Satoshi Iijima
 
20150912わんくま大阪-Firefox OSの「いま」と「これから」
20150912わんくま大阪-Firefox OSの「いま」と「これから」20150912わんくま大阪-Firefox OSの「いま」と「これから」
20150912わんくま大阪-Firefox OSの「いま」と「これから」Takahiro Uemura
 
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~normalian
 
20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみようTakuya Kawabe
 
わんくま同盟 大阪勉強会 #46
わんくま同盟 大阪勉強会 #46わんくま同盟 大阪勉強会 #46
わんくま同盟 大阪勉強会 #46Atsuo Yamasaki
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)Takuya Kawabe
 

Viewers also liked (9)

わんくま名古屋#33(20141115) モノ作り半生
わんくま名古屋#33(20141115) モノ作り半生わんくま名古屋#33(20141115) モノ作り半生
わんくま名古屋#33(20141115) モノ作り半生
 
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
 
わんくまT84 kinect深度情報処理入門
わんくまT84 kinect深度情報処理入門わんくまT84 kinect深度情報処理入門
わんくまT84 kinect深度情報処理入門
 
わんくま同盟の紹介
わんくま同盟の紹介わんくま同盟の紹介
わんくま同盟の紹介
 
20150912わんくま大阪-Firefox OSの「いま」と「これから」
20150912わんくま大阪-Firefox OSの「いま」と「これから」20150912わんくま大阪-Firefox OSの「いま」と「これから」
20150912わんくま大阪-Firefox OSの「いま」と「これから」
 
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
 
20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう
 
わんくま同盟 大阪勉強会 #46
わんくま同盟 大阪勉強会 #46わんくま同盟 大阪勉強会 #46
わんくま同盟 大阪勉強会 #46
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
 

Similar to わんくまT78 mfcを始めようとしてみた

Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Takako Miyagawa
 
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021Atsushi Nakamura
 
cp-1. Microsoft Visual Studio 2019 C++ の使い方
cp-1. Microsoft Visual Studio 2019 C++ の使い方cp-1. Microsoft Visual Studio 2019 C++ の使い方
cp-1. Microsoft Visual Studio 2019 C++ の使い方kunihikokaneko1
 
Firefox DevTools
Firefox DevToolsFirefox DevTools
Firefox DevToolsdynamis
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口Sunao Tomita
 
CodeIgniter東京勉強会 2011.05.14
CodeIgniter東京勉強会 2011.05.14CodeIgniter東京勉強会 2011.05.14
CodeIgniter東京勉強会 2011.05.14Takako Miyagawa
 
ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~Yoshitaka Seo
 
はじめてのCodeIgniter
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniterYuya Matsushima
 
Howtoよいデザイン
HowtoよいデザインHowtoよいデザイン
HowtoよいデザインHiroki Yagita
 
pi-1. プログラミング入門
pi-1. プログラミング入門pi-1. プログラミング入門
pi-1. プログラミング入門kunihikokaneko1
 
Kanonってなぁ~に?~楽々Kanonで華麗にお仕事しよう~
Kanonってなぁ~に?~楽々Kanonで華麗にお仕事しよう~Kanonってなぁ~に?~楽々Kanonで華麗にお仕事しよう~
Kanonってなぁ~に?~楽々Kanonで華麗にお仕事しよう~Takashi Okamoto
 
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)marsee101
 
Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93
Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93
Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93hiyohiyo
 
LightSwitch 結局何ができるの
LightSwitch 結局何ができるのLightSwitch 結局何ができるの
LightSwitch 結局何ができるのYoshitaka Seo
 
.NET Core時代のCI/CD
.NET Core時代のCI/CD.NET Core時代のCI/CD
.NET Core時代のCI/CDYuta Matsumura
 
CMake multiplatform build-tool
CMake multiplatform build-toolCMake multiplatform build-tool
CMake multiplatform build-toolNaruto TAKAHASHI
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセスMakoto Kato
 
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...Masaki Takeda
 

Similar to わんくまT78 mfcを始めようとしてみた (20)

Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
 
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
 
cp-1. Microsoft Visual Studio 2019 C++ の使い方
cp-1. Microsoft Visual Studio 2019 C++ の使い方cp-1. Microsoft Visual Studio 2019 C++ の使い方
cp-1. Microsoft Visual Studio 2019 C++ の使い方
 
Firefox DevTools
Firefox DevToolsFirefox DevTools
Firefox DevTools
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口
 
CodeIgniter東京勉強会 2011.05.14
CodeIgniter東京勉強会 2011.05.14CodeIgniter東京勉強会 2011.05.14
CodeIgniter東京勉強会 2011.05.14
 
ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~
 
はじめてのCodeIgniter
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniter
 
Howtoよいデザイン
HowtoよいデザインHowtoよいデザイン
Howtoよいデザイン
 
pi-1. プログラミング入門
pi-1. プログラミング入門pi-1. プログラミング入門
pi-1. プログラミング入門
 
Kanonってなぁ~に?~楽々Kanonで華麗にお仕事しよう~
Kanonってなぁ~に?~楽々Kanonで華麗にお仕事しよう~Kanonってなぁ~に?~楽々Kanonで華麗にお仕事しよう~
Kanonってなぁ~に?~楽々Kanonで華麗にお仕事しよう~
 
Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)Vivado hls勉強会1(基礎編)
Vivado hls勉強会1(基礎編)
 
Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93
Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93
Visual Studio Community 2013 で始めるプログラミング Win32/MFC #clrh93
 
LightSwitch 結局何ができるの
LightSwitch 結局何ができるのLightSwitch 結局何ができるの
LightSwitch 結局何ができるの
 
CMSI計算科学技術特論C (2015) OpenMX とDFT②
CMSI計算科学技術特論C (2015) OpenMX とDFT②CMSI計算科学技術特論C (2015) OpenMX とDFT②
CMSI計算科学技術特論C (2015) OpenMX とDFT②
 
20120118 titanium
20120118 titanium20120118 titanium
20120118 titanium
 
.NET Core時代のCI/CD
.NET Core時代のCI/CD.NET Core時代のCI/CD
.NET Core時代のCI/CD
 
CMake multiplatform build-tool
CMake multiplatform build-toolCMake multiplatform build-tool
CMake multiplatform build-tool
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセス
 
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
 

わんくまT78 mfcを始めようとしてみた