【事例演習1】 CGプログラム基礎      解 説        “Windowsプログラムにおける      ダイアログボックスの作成方法”    

Slides:



Advertisements
Similar presentations
第 2 章 数値の入力と変数 scanf と変数をやります 第 2 章 数値の入力と変数 1. 以下のプログラムを実行してみよう  C 言語では文の最後に「 ; 」(セミコロン)が付きます 第 2 章 数値の入力と変数 2 #include int main() { int x; x = 3; printf("x.
Advertisements

BREW を学ぶ 情報工学科1組 石原 第4 週目 Microsoft Visual Studio.NET 2003 を使って BREW アプリの作成手順を学ぶ.
情報基礎演習I(プログラミング) 第9回 6月22日 水曜5限 江草由佳
【事例演習5】  字句解析     解 説  “ハッシュを用いた字句解析の方法”.
イベント イベント: マウスの操作、キーボードの操作、ファイル操作など システムやユーザーからの入力・出力のこと
2001年11月更新 2章 Windowプログラムの構成 Windowsプログラムおよび       PiasTkプログラムの基本構造.
初年次セミナー 第8回 データの入力.
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
情報処理演習C2 ファイル操作について (2).
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
初年次セミナー 第4回 整数と実数の取り扱い.
TMenu メニューバーを用いた操作のための コンポーネント.
3DCGコンテンツの基礎 第5回授業:最終課題制作
ファイルやフォルダを検索する ①「スタート」→「検索」→「ファイルとフォルダ」とクリックする。
Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平.
第2章 数値の入力と変数 scanfと変数をやります.
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
【事例演習2】               2001年11月更新      「最短経路探索 (1)」           その1      解 説    “最短ルート探索のアルゴリズム”
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
第13回 プログラミングⅡ 第13回
システム開発実験No.7        解 説       “論理式の簡略化方法”.
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
初年次セミナー 第2回 文字の出力.
1 Macの基本操作 1-5 文字入力(1/4)  (1)Windows風のキー設定
第2回 Microsoft Visual Studio C++ を使ってみよう
Borland Delphi 6 でビジュアルプログラミング
DirectX勉強会 第5回.
EVENT プログラミングのスタイル 手続き型: ある決められた場所から開始され, その後は純粋に上から下に流れて行く方式. 実行したいことを, 順番に記述してゆく. 逐次処理形式コーディングの方法である。 今までの授業(情報処理2や3)で 行ってきたプログラミングの演習 bcc32やmake 手続き型.
C言語講習 第0章 Hello, world!.
プログラミング序論 2. n人のインディアン.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
前回の練習問題.
第13章 文字の取り扱い方 13.1 文字と文字型変数 13.2 文字列 13.3 文字型配列への文字列の代入
第14章 ファイル操作 (コマンドプロンプト版)
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
Cの実行モデル.
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
7-3. 移行データ登録簡易マニュアル Version 1.0
プログラミング基礎B 文字列の扱い.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
C言語 はじめに 2016年 吉田研究室.
プログラミング序論演習.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
C言語ファミリー C# 高級言語(抽象的) Java オブジェクト指向 C++ C 機械語(原始的)
高度プログラミング演習 (01).
高度プログラミング演習 (09).
Windowsアプリケーション プログラミング
第13章 文字の取り扱い方 13.1 文字と文字型変数 13.2 文字列 13.3 文字型配列への文字列の代入
ファイルの読み込み, ファイルからのデータの取り出し, ファイルの書き出し
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
高度プログラミング演習 (11).
プログラミング基礎演習 第4回.
標準入出力、変数、演算子、エスケープシーケンス
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
第4章 double 小数型の変数;.
プログラミング 4 文字列.
Cp-1. Microsoft Visual Studio 2019 C++ の使い方 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
printf・scanf・変数・四則演算
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
3.テキストボックスによる データ入力 データ入力と表示のプログラム.
第2章 数値の入力と変数 scanfと変数をやります.
C言語講座 四則演算  if ,  switch 制御文.
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
Presentation transcript:

【事例演習1】 CGプログラム基礎      解 説        “Windowsプログラムにおける      ダイアログボックスの作成方法”    

メインフレームウインドウやダイアログボックスは, 必ずリソースIDとイベントメッセージを切り分けるハンドラ関数名をもつ IDC_OK IDC_NODE2 IDD_DIALOG3 DialogmModifyLinkProc(…) IDC_NODE1 IDC_TIME IDC_CANCEL IDC_NODE_X IDC_NODE_Z DialogAddNodeProc(…) IDD_DIALOG2 IDC_ADD_OK IDC_ADD_CANCEL DialogBox生成 DialogBox 生成 WM_COMMAND + IDC_ADDOK IDR_MENU MainWndProc(…) WM_COMMAND + IDC_OK WM_RBUTTONDOWN: ダイアログボックス3の 生成手順 ※右ボタンを押したらリンクの修正ダイアログを出したいとき WM_RBUTTONDOWN IDM_ADDNODE IDM_ADDNODE: ダイアログボックス2の 生成手順 メニュー“ノードの追加”を選択 WM_COMMAND + IDM_ADDNODE

ダイアログボックスの役割1<データの入力> Windowsだと・・・ MS-DOSだと・・・ DialogChangePointProc 出発ノード,到着ノードを入力して下さい > 1 7 Enter IDC_START_POINT IDC_END_POINT IDC_CHANGE_OK: Enterキーが押されたのをきっかけにして データの読み込み,数値を切り分けてから 各変数に格納する それぞれのフィールドのデータの読み込み, 各変数に格納する int startPoint,endPoint; char strn[10]; BOOL CALLBACK DialogChangePointProc(HWND hWnd, UINT message, WPARAM wParam,                                    LPARAM lParam) {   switch (message)    {  case WM_COMMAND:       switch (LOWORD(wParam))       {    case IDC_CHANGE_OK:          GetDlgItemText(hWnd, IDC_START_POINT, strn, 10);            scanf (strn,"%d",&startPoint);           GetDlgItemText(hWnd, IDC_END_POINT, strn, 10);              sscanf (strn,"%d",&endPoint); : “OK”ボタンが押されたのが きっかけ int startPoint,endPoint; printf(“出発ノード,到着ノードを入力して下さい ”); scanf ( "%d %d", &startPoint ,&endPoint );

ダイアログボックスの項目(Item)を文字列(Text)として 読み込む関数                             読み込む関数 15 20 10文字分 1 5 文字列配列strn IDC_START_POINT GetDlgItemText (hWnd, IDC_START_POINT, strn, 10); startPoint int変数 scanf (strn, "%d", &startPoint); 

ダイアログボックスの役割2<データの出力> Windowsだと・・・ MS-DOSだと・・・ DialogModifyLinkProc 始点ノード: 1  終端ノード:  7 12 IDC_MODIFY_NODE1 IDC_MODIFY_SHOW IDC_MODIFY_NODE2 int startPoint=1, endPoint=7; printf(“始点ノード: %d 終端ノー: %d ”, startPoint , endPoint ); int startPoint=1, endPoint=7; BOOL CALLBACK DialogModifyLinkProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_COMMAND: switch (LOWORD(wParam)) {    case IDC_MODIFY_SHOW:             SetDlgItemInt(hWnd, IDC_MODIFY_NODE1, startPoint, FALSE);             SetDlgItemInt(hWnd, IDC_MODIFY_NODE2, endPoint, FALSE); return 1; : “ノード確認”ボタンが押された “ノード確認”ボタンが押されたのを きっかけに,各表示欄に表示する

ダイアログボックスの項目(Item)を整数(Int)として 書き込む関数                             書き込む関数 15 startPoint int変数 IDC_MODIFY_NODE1  SetDlgItemInt(hWnd, IDC_MODIFY_NODE1,                      startPoint, FALSE);

ダイアログボックスを用いたときの イベントメッセージの流れ リソースエディタで作成 DialogProc1 アプリケーション            イベントメッセージの流れ リソースエディタで作成 構成上の親子(owner)関係で 結ばれる ④ DialogBoxマクロを呼出し,動的に 1つのダイアログボックスを生成する. 同時にダイアログボックス用のイベントハンドラ関数と対応付ける ダイアログボックスのイベントハンドラ関数 DialogProc1 リソースID“IDD_DIALOG11” ハンドラ関数内の処理を実行 IDD_DIALOG11によって識別される DialogBoxのひな型(テンプレート) ⑤ 以後,生成されたダイアログボックス上での操作に関するイベントメッセージは親子関係をたどって送られる メインウィンドウ アプリケーション  hInstance メインウィンドウのイベントハンドラ関数  MainWndProc ② メニュー選択操作等によるWM_COMMANDメッセージ ①表示されたダイアログボックスの リソース(例えば,ボタン)を押した とき, WM_COMMANDメッセージを送信 ③ WM_COMMANDメッセージのメッセージ名に対応した処理内容(ダイアログボックスを表示する)をもつハンドラ関数を起動する メッセージ名 メッセーシ名゙に対応して起動すべき処理内容     Windowsシステム