Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平.

Slides:



Advertisements
Similar presentations
Microsoft Office 2010 クイックガイド ~OneNote編~
Advertisements

【事例演習1】 CGプログラム基礎      解 説        “Windowsプログラムにおける      ダイアログボックスの作成方法”    
情報処理実習 第05回 Excelマクロ機能入門 操作マクロ入門.
PROCESS 14:一般情報(2) InstallShieldLecture
TTimer タイマーコンポーネント 一定時間ごとにイベントを起こして処理をおこなう.
TMenu メニューバーを用いた操作のための コンポーネント.
ファイルやフォルダを検索する ①「スタート」→「検索」→「ファイルとフォルダ」とクリックする。
コントロールパネル ◎コントロール パネル: コンピュータのさまざまな機能を設定するための画面
表計算ソフトを使って 万年カレンダーを作ろう!
ゲームプログラミング講習 第1章 DXライブラリ入門
IBM SmarterCloud Control Desk 7.5 新機能ガイド - セルフサービス・センター
コントロールパネル ◎コントロール パネル: コンピュータのさまざまな機能を設定するための画面
C#によるWindowsFormApplication入門
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
Microsoft Office 2010 クイックガイド ~Access編~
講師 宮川 翼 (情報処理センター テックサポーター)
VBA H106077 寺沢友宏.
マルチエージェント・シミュレーション(2)
第四回 VB講座 画像とタイマー.
マルチエージェント・シミュレーション(2)
エクスプローラ ● エクスプローラ: ファイルやフォルダを階層構造で表示してあり、これらを操作するのに便利。
Netscape Communicator Eudora Microsoft Word
EGSに対応した粒子軌跡と 計算体系の3次元表示ソフト - CGVIEW -
Al-Mailのインストールと使い方 インストール –1 (pop-authの設定、Al-Mailのインストール用ファイルをダウンロード)
F5 を押すか、または [スライド ショー] > [最初から] をクリックして、コースを開始してください。
アプリケーション共有機能 〈参考〉 (図1) (図2)
Microsoft Office 2010 クイックガイド ~応用編~
マイクロソフト Access を使ってみよう 第1回
マイクロソフト Access での SQL 演習 第1回 SQL問い合わせ(クエリ)
マイクロソフト Access を使ってみよう 第4回
Microsoft Office クイックガイド ~OneNote 2013~
Microsoft Office 2010 クイックガイド ~OneNote編~
プログラミング演習3 第2回 GUIの復習.
SystemKOMACO Jw_cad基本操作(2) Ver.1
第2回 Microsoft Visual Studio C++ を使ってみよう
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
Borland Delphi 6 でビジュアルプログラミング
MVP for VB が語る C# 入門 初音 玲.
MVP for VB が語る C# 入門 初音 玲.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
プログラミング応用 printfと変数.
VBA ( Visual BASIC for Application) を使えるようにする方法
ローカル変数とグローバル変数 ローカル変数  定義された関数内だけで使用できる変数 グローバル変数 プログラム全体で使用できる変数.
電界中の電子の運動 シミュレータ作成 精密工学科プログラミング基礎 資料.
TCanvas BCB:TCanvasクラスでグラフィックを扱う。 TFormなどもプロパティとして持っている。
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
プログラミング演習3 第2回 GUIの復習.
単語登録(1) ◎MS-IMEの「単語登録」に、単語、語句、記号など自分がよく使うものを登録しておくと、便利である。
Jakarta Struts (2) ソフトウェア特論 第11回.
ゲームプログラミング講習  第3章 ゲーム作成 ブロック崩しを作ります ゲームプログラミング講習 第3章 ゲーム作成.
Visual Studio 2005の使用方法 新入生セミナー 
Garoon on cybozu.com 2014年9月版 新機能 Copyright© 2014 Cybozu.
情報基礎演習I(プログラミング) 第11回 7月12日 水曜5限 江草由佳
GUIプログラミングの基本=イベント イベントとは イベントの例 ウィンドウやウィンドウ内のパーツ(ボタン・スクロールバーなど)に発生する
表計算ソフトを使って 万年カレンダーを作ろう!
情報基礎演習I(プログラミング) 第8回 6月8日 水曜5限 江草由佳
画面への描画 Graphics オブジェクト 紙 ペン Pen オブジェクト Brush オブジェクト 画面のピクセルをカプセル化
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
Visual Studio 2013 の起動と プロジェクトの新規作成 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
エクスプローラ ● エクスプローラ: ファイルやフォルダを階層構造で表示してあり、これらを操作するのに便利。
回転する歯車 プレゼンテーション プレゼンテーションのスライドショーを開始 (F5 キー) すると、アニメーションが再生されます。
Molecular Devices Japan
Cp-1. Microsoft Visual Studio 2019 C++ の使い方 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
例題のプログラムを通して JavaScriptの仕組みを理解することとします。
地理情報コンテンツ・データベースコンテンツ新規作成
TList リスト構造とは? 複数のデータを扱うために、 データの内容と、次のデータへのポインタを持つ構造体を使う。
3.テキストボックスによる データ入力 データ入力と表示のプログラム.
6.ユーザ定義型.
5.基本API 5-1 レイアウト ウィジェットの並べ方を指定するには、 パレットのレイアウト(Layoutでは以下の8種類)を配置する。
第0.5回: ~Unity Editorの操作方法~
Presentation transcript:

Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平

目次 MFCとは MFCの利点と欠点 MFCでプログラミング AppWizard コントロール イベントハンドラ

MFCとは Microsoft Foundation Class VisualC++に付属するクラスライブラリ Windowsアプリケーションの作成に有用なクラスを提供している

MFCの利点 Win32API MFCはWindowsAPIをC++でラッピングして 使いやすくした WindowsOS Win32API MFC Application Win32API MFCはWindowsAPIをC++でラッピングして                     使いやすくした

MFCの欠点 互換性 肥大化 利用時の問題 MFCを使えば、使っただけWindowsOSに依存 ライブラリを組み込むためファイル要領の肥大化 内部的には結局Win32API MFCが用意していない部分もある

AppWizard App (Application) Wizardとは スケルトンを作成するためのツール スケルトンとは アプリケーションの骨組み AppWizard にて 「ダイアログ ベース」に設定すると 左の状態まで自動作成してくれる。

AppWizard 新しいプロジェクト プロジェクトの種類 : Visual C++ テンプレート : MFC アプリケーション プロジェクト名 : 任意のもの

AppWizard アプリケーションの種類

AppWizard スケルトン完成

コントロールの配置 コントロールの配置 リソース ビューにて配置を行うダイアログを選択 ダイアログエディタからコントロールをフォームに配置 今回の場合は Dialog ディレクトリ内の 「IDD_SAMPLELECTURE_DIALOG」を ダブルクリックして開く ※ 削除方法   配置されたコントロールを選択して      Deleteキー(プログラム的には消えないときも) ドラッグ&ドロップ or ダブルクリックで配置

コントロールのプロパティ プロパティの設定 ID : 各コントロールを区別するための管理名 ※ 各コントロールによって プロパティの内容は違う (ちなみにこれはボタン1のプロパティ) ※ ダイアログ自身も プロパティを設定する事が可能

イベント ハンドラ イベント ハンドラを追加するには コントロールを選択して、右クリック ポップアップメニューから「イベント ハンドラの追加」 プロパティウィンドウの 「管理イベント」からも設定可能

イベント ハンドラ イベント ハンドラ ウィザードを用いる メッセージの種類を選ぶ ButtonControlに対して クリックした際の処理がしたい場合は 「BN_CLICKED」を選択 設定が終わったら 「追加して編集(A)」をクリック void Cmfc_testDlg::OnBnClickedBtn() { // TODO: ここにコントロール通知ハンドラコードを追加します。 } 自動的に右記のコードが 生成される

メンバ変数 Edit Contorol にメンバ変数を設定 カテゴリ : Value 変数の種類 : CString 変数名 : text1 (任意) カテゴリは2種類 ・Control 型 ・Value 型 コントロールの状態を 変数で扱う場合は Value型 コントロールを関数を通して 操作したい場合は Control型

ダイアログのデータを更新1 DDX (Dialog Data eXchange ) を用いる その名の通り、ダイアログのデータを入れ替える 命令は UpdateData という関数 メンバ変数 → ダイアログ : UpdateData (FALSE); ダイアログ → メンバ変数 : UpdateData (TRUE); void CMFCDlg :: OnBnClickButton1 () { // TODO : ここにコントロール通知ハンドラ コードを追加します。 UpdateData (TRUE); // ダイアログのデータを読み出し text2 = text1; // text1 の内容を text2 にコピー UpdateData (FALSE); // メンバ変数の内容をダイアログに書き出す } // text1, text2 は Edit Control に設定されたメンバ変数(カテゴリ:Value, CString) DDX(dialog data exchange)とは、ダイアログ上のコントロールの初期化と、コントロールとのデータのやりとりを単純化するための仕組みです。 ここで言う「コントロールの初期化」とは、コントロールのサブクラス化や、ウィンドウハンドルをコントロールクラスに設定することを意味します。また、「コントロールとのデータのやりとり」とは、指定した変数の値をコントロールに設定したり、逆にコントロールから取得した値を指定した変数に代入することを意味します。

ダイアログのデータを更新2 DDXを使わない方法 プログラム内にてコントロールを取得する CString strMsg; // 各コントロールを取得 CEdit* text1 = (CEdit*)GetDlgItem(IDC_EDIT1); CEdit* text2 = (CEdit*)GetDlgItem(IDC_EDIT2); text1->GetWindowText(strMsg); // 値を取得 text2->SetWindowText(strMsg); // 値を設定 プログラムの規模が大きくなってくると、より複雑になっていく・・・ そんな時にDDXを使う事で各コントロールを楽に管理出来る MFCを有効活用するのであればDDXは利用すべき

課題1 エディットボックスの内容をコピー 利用するコントロール Button Control 1個 Edit Control 2個 コントロールID メンバ タイプ メッセージ IDC_EDIT1 text1 CString - IDC_EDIT2 text2 IDC_BTN BN_CLICKED IDC_EDIT1 に入力された値を IDC_BTN が押されたら IDC_EDIT2 にコピーするプログラム

課題2 簡単な計算機をつくろう このようなフィールドを作って、四則演算ができるようにしよう

課題3 課題3は自由課題となるので、何か自由にプログラムしてみよう 参考URL http://www.g-ishihara.com/mfc_ge_02.htm