シングルドキュメントの作成 新しいプロジェクトで MFC アプリケーションを選択すると アプリケーションの種類のオプションのダイアログが開くので アプリケーションの種類にシングルドキュメントを選択して 次へボタンをクリックする ( 此処で完了ボタンをクリックしても構わないが 不要なフレームペインを取

Similar documents
C 資料 電脳梁山泊烏賊塾 MFC アプリケーション MFC アプリケーションの作成 初めに 此処では Visual Studio 2017 を起動し 新しいプロジェクトで MFC を選択し MFC(Micorosft Foundation Class) アプリケーションを作成する イ

C 資料 電脳梁山泊烏賊塾 MFC アプリケーション MFC アプリケーションの作成 初めに 此処では Visual Studio 2017 を起動し 新しいプロジェクトで MFC を選択し MFC(Micorosft Foundation Class) アプリケーションを作成する イ

橡中元雅美

64bit環境で32bitコンポーネントの利用

VB実用Ⅲ⑩ フリーデータベースⅡ

VB.NET解説

C 資料 電脳梁山泊烏賊塾 ファイルの入出力 C++ のバイナリファイル入出力 初めに 此処では Visual Studio 2017 を起動し 新しいプロジェクトで Visual C++ の Windows デスクトップを選択し Windows コンソールアプリケーションを作成する

PowerPoint プレゼンテーション

C 資料 電脳梁山泊烏賊塾 構造体 C++ の構造体 初めに 此処では Visual Studio 2017 を起動し 新しいプロジェクトで Visual C++ の Windows デスクトップを選択し Windows コンソールアプリケーションを作成する 定義と変数宣言 C++ に

Visual Studio 2017 RC インストール & ファーストステップガイド 2016 年 11 月 16 日 (V1.0)

データベースプログラミング

ListViewコントロール

GUIプログラムⅣ

Userコントロール

正規表現応用

Java - Visual Editor

ルーレットプログラム

NotifyIconコントロール

グラフィックス 目次

Microsoft Word - VisualC++利用法2.doc

Prog2_15th

Prog2_12th

ファイル操作-インターネットキャッシュ

Microsoft Word - Training10_プリプロセッサ.docx

インテル(R) Visual Fortran コンパイラ 10.0

SureFile for 達人プラスインストールマニュアル V1.7 本マニュアルでは アイスペシャル C-Ⅱ C-Ⅲ 専用画像振り分けソフト SureFile for 達人プラスについて 下記に示した項目を説明しています SureFie( 標準版 ) のアンインストール インストール 起動 設定の

C 資料 電脳梁山泊烏賊塾 キャスト C++ のキャスト 初めに 此処では Visual Studio 2017 を起動し 新しいプロジェクトで Visual C++ の Windows デスクトップを選択し Windows コンソールアプリケーションを作成する C++ でのキャスト

ファイル操作-バイナリファイル

Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値

Learning AutoCAD 2013 in Classroom 目次 01 基本機能... 1 ユーザインターフェース... 2 AutoCAD の起動...2 ユーザインターフェース...3 アプリケーションメニュー...4 クイックアクセスツールバー...6 リボン...9 コマンドウィン

ICONファイルフォーマット

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 ダウンロードとインストール ダウンロード 下記のサイトより最新版 (Python 年 8 月 13 日現在 ) のインストーラ (Windows x86-64 executable installer) をダウンロードす

プラグイン

Microsoft Word JA_revH.doc

ブロック パニック

グラフィックス

グラフィックス 目次

内容 1 はじめに インストールの手順 起動の手順 Enterprise Architect のプロジェクトファイルを開く 内容を参照する プロジェクトブラウザを利用する ダイアグラムを開く 便利な機能.

C 資料 電脳梁山泊烏賊塾 ファイルの入出力 C++ のファイル入出力 初めに 此処では Visual Studio 2017 を起動し 新しいプロジェクトで Visual C++ の Windows デスクトップを選択し Windows コンソールアプリケーションを作成する 使用クラ

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

プロセス間通信

マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL:

ToDo: 今回のタイトル

<907D945D F D C789C195CF8D5888EA97978CF68A4A97702E786C7378>

実習を行う上での心構えについて

データアダプタ概要

ウィンドウ操作 応用

Java講座

_責)Wordトレ1_斉木

親指シフトキーボード(FMV-KB611)、JISキーボード(FMV-KB621)、FMV-LIFEBOOK(親指シフトキーボードモデル)をお使いになる方へ

2 / 26 平成 26 年 4 月 11 日 ( 金 ) 午後 1 時 9 分 Visual C Express の使用法 ( 東海大学理学部物理学科 ) 無償で利用できる開発環境 (Windows XP 以降 ) Visual Studio 2010 Express

Microsoft PowerPoint - kougi2.ppt

Prog1_10th

NetworkVantage 9

Windows ユーザー名に全角が含まれている場合は インストールできません のエラーが表示される 手順 1 管理者権限のある Windows ユーザーでログインした上で 以下の処理を行ってください 左下のスタートボタンをクリックし メニューが表示されましたら コントロールパネル をクリックしてくだ

(一日目前半)2017SV演習C++CLI

参考 インストール中に下図のようにインターネット接続を求められる場合があります この表示 が出た場合は お使いのパソコンをインターネットに接続してから再度セットアップを実行 してください お使いの OS によってはセットアップ途中に下図のような表示が出る場合があります この 場合は [ 詳細情報 ]

Microsoft Word - AutocadCivil3D.doc

Microsoft Word - プリンター登録_Windows XP Professional.doc

大阪ガス株式会社 情報通信部 御中

VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

プログラミング基礎

親指シフトキーボード(FMV-KB611)、JISキーボード(FMV-KB621)、FMV-LIFEBOOK(親指シフトキーボードモデル)をお使いになる方へ

200_CAD(画面回りの機能)の基本操作

untitled

作業環境カスタマイズ 機能ガイド(応用編)

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 ゲームプログラミング スプライト スプライト Pygame では pygame.sprite を用いる事でスプライトの管理 描画 衝突判定等を簡単に行う事が出来る 此れを利用してキャラクター操作に関する各種機能をスプライトクラスとして 1 個

生存確認調査ツール

(Microsoft Word - Word\216\300\217K\212\356\221b1.doc)

Studuinoソフトウェアのインストール

関数の定義域を制限する 関数のコマンドを入力バーに打つことにより 関数の定義域を制限することが出来ます Function[ < 関数 >, <x の開始値 >, <x の終了値 > ] 例えば f(x) = x 2 2x + 1 ( 1 < x < 4) のグラフを描くには Function[ x^

MOS_Windows8

PowerPoint プレゼンテーション

取引上手くん 9 のインストール時にエラーが表示される際の対処法 ~Windows8 Windows8.1~ 本ドキュメントは Windows8/8.1 のパソコンにおいて 取引上手くん 9 のインストールが正常にできなかった場合の対処 法をまとめたものです なお インストールの手順そのものにつきま

InstallShiled FAQ デバイスドライバーのインストール 注 ) このドキュメントは InstallShield 2011 Premier Edition を基に作成しています InstallShield 2011 以外のバージョンでは設定名などが異なる場合もあります 概要 Instal

すると メインメニューと呼ばれる DC さくらのメインウィンドウ部が表示されます ( 下の画面がスクリーンシ ョットです ) メインメニューは ウィンドウ右上の ボタンを押すと閉じます リスト内のアイテムは ダウンロードのタスクを表します ダウンロード状況を把握できます メニュー項目やボタンの説明は

編集する ファイルを開く マイクロデータの設定を行うファイルまたはファイルを開きます 開かれたファイルは編集画面に表示されて ブラウザ表示した時のプレビューも同時に表示されます HTML ファイルの選択 編集する ファイルを開くためにメインメニューから ファイル 開く を選びます ファイル選択ダイア

Microsoft Word - Word1.doc

産能大式フローチャート作成アドインマニュアル

Microsoft PowerPoint - kougi4.ppt

Field Logic, Inc. 標準モード 3D モデル作成 配置編 Field Logic, Inc. 第 1 版

Chart3D for WPF/Silverlight

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 関数とメソッド 関数とメソッド Python には関数 (function) とメソッド (method) が有る モジュール内に def で定義されて居る物が関数 クラス内に def で定義されて居る物がメソッドに成る ( 正確にはクラスが

(1)IE6 の設定手順 (1)IE6 の設定手順 1) 信頼済みサイトの追加手順 1: ブラウザ (Internet Explorer) を起動します 手順 2: ツール / インターネットオプション / セキュリティ メニューを選択します 手順 3: セキュリティ タブの 信頼済みサイト を選択

目次 目次 1 エクセルぴったり印刷について 1 1. エクセルぴったり印刷でできること 1 2. シングルライセンスとコーポレート 年間ライセンス 1 2 インストールとアンインストール 2 1. インストール 2 2. アンインストール 5 3 起動とライセンス認証 6 1. 起動 6 2. ラ

設定編 版 Outlook メール設定編 解説目次 1. 画面表示の設定 1P 2. オプションの設定 8P 以下の説明で赤字のところは重要なところでですので ご注意下さい なお 良く分からないところには触れていません 皆様も分からないところは初期設定 を触らない方が無難です また 青

Windows8.1基礎 ファイル管理

Microsoft Edge の場合 (1) Mizdori 無料体験版ダウンロード画面の [ 体験版ダウンロード ] ボタンをクリックします (2) Edge の下部に mizdori_taiken_setup.zip について行う操作を選んでください と表示され ますので [ 開く ] をクリッ

TestDesign for Web

Application Note Application Note No. ESC-APN Document No.: ESC-APN adviceluna Linux デバッグ手順 (MIPS コア編 ) はじめに adviceluna Linux デバッグ手順 ( 以

本書は INpMac v2.20(intime 5.2 INplc 3 Windows7/8/8.1に対応 ) の内容を元に記載しています Microsoft Windows Visual Studio は 米国 Microsoft Corporation の米国及びその他の国における登録商標です

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

Visual Studio2008 C# で JAN13 バーコードイメージを作成 xbase 言語をご利用の現場でバーコードの出力が必要なことが多々あります xbase 言語製品によっては 標準でバーコード描画機能が付加されているものもあるようで す C# では バーコードフォントを利用したりバー

£Ã¥×¥í¥°¥é¥ß¥ó¥°(2018) - Âè11²ó – ½ÉÂꣲ¤Î²òÀ⡤±é½¬£² –

SharpShooter Reports.WPF 基本的な使い方 Last modified on: November 15, 2012 本ドキュメント内のスクリーンショットは英語表記ですが SharpShooter Reports JP( 日本語版 ) では日本語で表示されます

目次 第 1 章はじめに 取扱いについて 記載内容について... 6 第 2 章基本操作 Excel Online を開く ファイル ( ブック ) を作成する ファイル ( ブック ) を開く..

Source Insight

Team Foundation Server 2018 を使用したバージョン管理 補足資料

CubePDF ユーザーズマニュアル

Transcription:

MFC アプリケーション MFC アプリケーションの作成 初めに 此処では Visual Studio 2017 を起動し 新しいプロジェクトで MFC を選択し MFC(Micorosft Foundation Class) アプリケーションを作成する インストール時の注意 インストール時に ワークロード で C++ によるデスクトップ開発 を選択した丈では MFC アプリケーションの開発を行う事が出来ない 右欄の 概要 で x86 用と x64 用の Visual C++ MFC にチェックを付ける必要が有る 亦 個別のコンポーネント で x86 用と x64 用の Visual C++ MFC にチェックが入って居る事を確認する 亦 CLR アプリケーションを開発する場合は 概要 で x86 用と x64 用の Visual C++ ATL と 個別のコンポーネント で C++/CLI サポート にもチェックを入れて置く 猶 此等は 新しいプロジェクト ダイアログで Visual Studio インストーラを開く から 何時でも追加する事が出来る.NET Framework 登場に依り 現在では MFC を使っての新規開発は無いと思われるが 古いアプリケーションの流用や保守の為に 一通りの使用法は憶えて置いた方が良いと思われる -1-

シングルドキュメントの作成 新しいプロジェクトで MFC アプリケーションを選択すると アプリケーションの種類のオプションのダイアログが開くので アプリケーションの種類にシングルドキュメントを選択して 次へボタンをクリックする ( 此処で完了ボタンをクリックしても構わないが 不要なフレームペインを取り除く為 次へボタンをクリックしてウィザードを続ける ) 次のドキュメントテンプレートプロパティやユーザーインターフェース機能のダイアログでは何もせずに 次へをクリックする 次の高度な機能オプションのダイアログの高度なフレームペインのチェックを総て外して 完了をクリックする アップデートの種類に依り ダイアログの出現順序が異なる場合が有る アプリケーションの種類解説シングルドキュメントメニューバー ツールバー ステータスバーを含む単一ウィンドウのアプリケーション複数のドキュメントメニューバー ツールバー ステータスバーを含むフレームウィンドウに複数の子ウィンドウを表示するのアプリケーションダイアログベース 1 個のダイアログを持つアプリケーション複数のトップレベルドキュメント Visual Studio 風のアプリケーション -2-

プロジェクトが作成されると ソリューションエクスプローラに下図の様なツリーが表示される 上図のファイルを観ると解る様に プロジェクト名に Doc の付加されたファイルと View の付加されたファイルが存在する 此の様に ドキュメント ( データ ) と画面 ( ビュー ) を分けてアプリケーションを構築する方法を DOC/VIEW モデルと謂い 現在では一般的な手法で有る MFC ではドキュメントの基本クラスとして CDocument ビューの基本クラスとして CView と謂うクラスが用意されて居て 此等のクラスからアプリケーション独自のドキュメントとビュークラスを派生させてプログラムを構築する 猶 リソースビューに切り替えると アイコン等の色々なリソースを観る事が出来る ソリューションエクスプローラのペインにリソースビューのタブが表示されて居ない場合は メニューの 表示 から その他のウィンドウ をポイントし リソースビュー をクリックすると表示される様に成る -3-

実行 ( デバッグの開始 F5) すれば 下図の様な画面が表示される ( 高度なフレームペインのチェックを総て外して居ない場合は 更に色々なペインが装備されて居るので確認して欲しい ) 此処では 空気抵抗を受けるボールの運動形を描画するグラフィックアプリケーションを作成する事にする ドキュメント ドキュメントクラスのヘッダーファイル ( プロジェクト名 Doc.h) と実装 ( プロジェクト名 Doc.cpp) は 今回は何も変更を加えて居ない ビュー ビュークラスのヘッダーファイル ( プロジェクト名 View.h) は変更せずに其の儘使用する ビュークラスの実装 ( プロジェクト名 View.cpp) に下記のコードを追加する ( 赤字の部分 ) // MFCApplicationSDIView.cpp : CMFCApplicationSDIView クラスの実装 // #include "stdafx.h" // SHARED_HANDLERS は プレビュー 縮小版 および検索フィルターハンドラーを実装 // そのプロジェクトとのドキュメントコードの共有を可能にします #ifndef SHARED_HANDLERS #include "MFCApplicationSDI.h" #endif #include "MFCApplicationSDIDoc.h" #include "MFCApplicationSDIView.h" #include <math.h> -4-

#ifdef _DEBUG #define new DEBUG_NEW #endif // 変数の定義 #define g 9.8 #define PI 3.14159 #define d 0.072 #define dt 0.03 // 重力加速度 // 円周率 // ボールの直径 // 計算時間間隔 // 関数の宣言 double _sgn(double, int); // 符号変化の関数 void timewait(int); // 時間待 // CMFCApplicationSDIView IMPLEMENT_DYNCREATE(CMFCApplicationSDIView, CView) BEGIN_MESSAGE_MAP(CMFCApplicationSDIView, CView) // 標準印刷コマンド ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CMFCApplicationSDIView::OnFilePrintPreview) ON_WM_CONTEXTMENU() ON_WM_RBUTTONUP() END_MESSAGE_MAP() // CMFCApplicationSDIView コンストラクション / デストラクション CMFCApplicationSDIView::CMFCApplicationSDIView() // TODO: 構築コードをここに追加します CMFCApplicationSDIView::~CMFCApplicationSDIView() BOOL CMFCApplicationSDIView::PreCreateWindow(CREATESTRUCT& cs) // TODO: この位置で CREATESTRUCT cs を修正して Window クラスまたはスタイルを // 修正してください return CView::PreCreateWindow(cs); // CMFCApplicationSDIView 描画 void CMFCApplicationSDIView::OnDraw(CDC* pdc) CMFCApplicationSDIDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); -5-

if (!pdoc) return; // TODO: この場所にネイティブデータ用の描画コードを追加します CPen pc1(ps_solid, 1, RGB(0, 125, 128)); // ペンの初期化 CPen pc3(ps_solid, 2, RGB(0, 0, 255)); CPen* oldp = pdc->selectobject(&pc1); // ペンの変更 int x0 = 50, y0 = 380, xsp = 600, ysp = 300; // 作図範囲 int xp, yp; int ss = 0; CString str; double xmax = 120, ymax = 50; // 各変数 double a, cd, l; double x, y, v0, vi0, t, th; double xd, yd, x2d, y2d, r, m; cd = 0.4; // 空気抵抗係数 l = 1.25 / g; // 空気密度 m = 0.146 / g; // ボールの質量 x = y = t = 0; vi0 = 150; // 初速度 th = 45; // 打ち上げ角度 v0 = vi0 * 1000.0 / 3600.0; th = th * PI / 180.0; a = d * d*pi / 4.0; xd = v0 * cos(th); yd = v0 * sin(th); // 軸の表示 pdc->selectobject(&pc3); pdc->moveto(x0, y0); pdc->lineto(x0 + xsp, y0); pdc->moveto(x0, y0); pdc->lineto(x0, y0 - ysp); str = " 空気抵抗を受けるボールの放物運動計算プログラム "; pdc->settextcolor(rgb(0, 0, 255)); pdc->textout(60, 0,str); // 文字出力 pdc->selectobject(&pc1); while (y >= 0) xp = (int)(x0 + x * xsp / xmax); yp = (int)(y0 - y * ysp / ymax); pdc->ellipse(xp - 3, yp - 3, xp + 3, yp + 3); // 左上と右下に接する楕円 r = 0.5*l*a*cd; // 運動方程式の解 ss = (int)_sgn(xd, ss); x2d = -r * (xd * xd) / m * ss; xd += x2d * dt; x += xd * dt; -6-

ss = (int)_sgn(yd, ss); y2d = -r * yd*yd / m * ss - g; yd += y2d * dt; y += yd * dt; t += dt; timewait(1000); // 時間待ち pdc->settextcolor(rgb(250, 52, 50)); str.format(_t(" 到達距離 = %f"), x); pdc->textout(120, 40, str); // 文字出力 pdc->selectobject(oldp); // ペンを元に戻す // CMFCApplicationSDIView の印刷 void CMFCApplicationSDIView::OnFilePrintPreview() #ifndef SHARED_HANDLERS AFXPrintPreview(this); #endif BOOL CMFCApplicationSDIView::OnPreparePrinting(CPrintInfo* pinfo) // 既定の印刷準備 return DoPreparePrinting(pInfo); void CMFCApplicationSDIView::OnBeginPrinting(CDC* /*pdc*/, CPrintInfo* /*pinfo*/) // TODO: 印刷前の特別な初期化処理を追加してください void CMFCApplicationSDIView::OnEndPrinting(CDC* /*pdc*/, CPrintInfo* /*pinfo*/) // TODO: 印刷後の後処理を追加してください void CMFCApplicationSDIView::OnRButtonUp(UINT /* nflags */, CPoint point) ClientToScreen(&point); OnContextMenu(this, point); void CMFCApplicationSDIView::OnContextMenu(CWnd* /* pwnd */, CPoint point) #ifndef SHARED_HANDLERS theapp.getcontextmenumanager()->showpopupmenu(idr_popup_edit, point.x, point.y, this, TRUE); #endif -7-

// CMFCApplicationSDIView の診断 #ifdef _DEBUG void CMFCApplicationSDIView::AssertValid() const CView::AssertValid(); void CMFCApplicationSDIView::Dump(CDumpContext& dc) const CView::Dump(dc); CMFCApplicationSDIDoc* CMFCApplicationSDIView::GetDocument() const ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMFCApplicationSDIDoc))); return (CMFCApplicationSDIDoc*)m_pDocument; #endif //_DEBUG // 記号変更 double _sgn(double dd, int s) if (dd < 0) s = -1; else if (dd == 0) s = 0; else s = 1; return(s); // 時間待 void timewait(int n) int a, i, j, m = 1000; for (i = 0; i<n; i++) for (j = 0; j<m; j++) a = i; // CMFCApplicationSDIView メッセージハンドラー -8-