イベント イベント: マウスの操作、キーボードの操作、ファイル操作など システムやユーザーからの入力・出力のこと

Slides:



Advertisements
Similar presentations
わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 Windows メッセージを使いこな す -Windows 流オブジェクト指向 - とっちゃん 高萩 俊行 Microsoft MVP for Windows SDK 2005/ /09.
Advertisements

BREW を学ぶ 情報工学科1組 石原 第4 週目 Microsoft Visual Studio.NET 2003 を使って BREW アプリの作成手順を学ぶ.
特別支援教育で使える PowerPoint の活用法 研修 最低限必要なスキルはこれでバッチリ!! ICT 活用支援員 高松 崇.
情報アプリケーション1 2006 年 10 月 12 日 第四回資料 担当 重定 如彦. 目次 データの送信とフォーム クイズ CGI 複数のパーツのデータの分割方法 配列変数.
0 クイックスタートガイド|管理者編 スマートデバイスのビジネス活用を支援する法人向けファイル共有サービス.
情報基礎演習I(プログラミング) 第9回 6月22日 水曜5限 江草由佳
応用コース:ワープロを活用する WORD2000 1回目 基礎コースの復習(第1章と付録) 2回目 文字の入力(第2章と第4章)
コンピュータについて学ぶ必要性 ● 現代社会での重要性。 ● 小規模事業所では、最も若い人が最も頼りにされる。
2001年11月更新 2章 Windowプログラムの構成 Windowsプログラムおよび       PiasTkプログラムの基本構造.
【事例演習1】 CGプログラム基礎      解 説        “Windowsプログラムにおける      ダイアログボックスの作成方法”    
メール暗号化:秘密鍵・公開鍵の作成  作業手順 Windows メール(Vista).
ご使用の前に 使用可能なPC環境 Windows XP SP2 以上
情報基礎A 情報科学研究科 徳山 豪.
情報処理実習 第05回 Excelマクロ機能入門 操作マクロ入門.
PROCESS 14:一般情報(2) InstallShieldLecture
Netscape Communicator Eudora Microsoft Word
Microsoft PowerPoint98 Netscape Communicator 4.06[ja]
1.コンピュータと情報処理 p.20 第1章第1節 3.ソフトウェア ソフトウェア 基本ソフトウェア
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
Lync 会議 Lync 会議に参加する Lync 2013 クイック リファレンス Lync 会議のスケジュール
ファイルやフォルダを検索する ①「スタート」→「検索」→「ファイルとフォルダ」とクリックする。
計算技術研究会 C言語講座 第3回 Loops (for文 while文).
Digital Network And Communication
【事例演習2】               2001年11月更新      「最短経路探索 (1)」           その1      解 説    “最短ルート探索のアルゴリズム”
Netscape Communicator Eudora Microsoft Word
プログラミング教室 Tetrisの実装 K.Yonezawa.
ファイルシステムとコマンド.
Al-Mailのインストールと使い方 インストール –1 (pop-authの設定、Al-Mailのインストール用ファイルをダウンロード)
F5 を押すか、または [スライド ショー] > [最初から] をクリックして、コースを開始してください。
コンピュータについて学ぶ必要性 ● 現代社会での重要性。 ● 小規模事業所では、最も若い人が最も頼りにされる。
BlueBeanClientを用いた連携の概要
シグナル通信 普通の割込みとソフトウェア割込み ソフトウェア割込みとシグナル キーボードからのシグナル 例外 (exception)
情報コミュニケーション入門b 第6回 Part1 オペレーティングシステム入門
マイクロソフト Access を使ってみよう 第4回
3 Macintoshの基本操作(3) 3.1 エイリアス エイリアスを作る ファイルなどの分身となるファイル アイコンを選択
プログラミング演習3 第2回 GUIの復習.
1 Macの基本操作 1-5 文字入力(1/4)  (1)Windows風のキー設定
情報処理基礎 2006年 6月 22日.
Borland Delphi 6 でビジュアルプログラミング
DirectX勉強会 第5回.
EVENT プログラミングのスタイル 手続き型: ある決められた場所から開始され, その後は純粋に上から下に流れて行く方式. 実行したいことを, 順番に記述してゆく. 逐次処理形式コーディングの方法である。 今までの授業(情報処理2や3)で 行ってきたプログラミングの演習 bcc32やmake 手続き型.
ローカル変数とグローバル変数 ローカル変数  定義された関数内だけで使用できる変数 グローバル変数 プログラム全体で使用できる変数.
OpenGLを使ったプログラム作成 澤見研究室
Unreal Engine 4 のインストール 2017年 7月 金子邦彦.
プログラミング演習3 第2回 GUIの復習.
スマートデバイスのビジネス活用を支援する法人向けファイル共有サービス
すぐできるBOOK -基本設定編-.
情報コミュニケーション入門b 第2回 Part2 パソコンの基本操作 ~日本語入力まで
2019/2/24 情報処理 第13回.
Windows XP  ウィルスバスターインストール方法.
P2P方式と構成の一般化 負荷の分散、ゲームセッションのデザイン.
情報コミュニケーション入門b 第6回 Part1 オペレーティングシステム入門
スイッチを入れる前に… 講習を受けていない人は、まだスイッチを入れないこと。 まず講習を受けてセットアップを行ってください 注意.
情報コミュニケーション入門b 第2回 Part2 パソコンの基本操作 ~日本語入力まで
マイクロソフト Access を使ってみよう 第3回
プログラミングⅠ 平成30年10月15日 森田 彦.
OSが管理している、デフォルトの入出力装置 入力:stdin キーボード 出力:stdout モニタ(コマンドプロンプトの画面)
ファイルやフォルダを検索する ①「スタート」→「検索」とクリックする。 ②「表示項目」から適当なものを選択する。
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
表計算 Excel 演習 1.Excel を使ってみる.
手書き文字の自動認識アプリケーション 15K1013 坂本 倖輝
Windowsアプリケーション プログラミング
vc-2. Visual Studio C++ のデバッガー (Visual Studio C++ の実用知識を学ぶシリーズ)
情報基礎演習I(プログラミング) 第8回 6月8日 水曜5限 江草由佳
授業が始まる前に 諸注意 以下の人は2階の事務室へ行ってケーブルを借りてきて下さい。 Ethernetケーブルを持っていない
画面への描画 Graphics オブジェクト 紙 ペン Pen オブジェクト Brush オブジェクト 画面のピクセルをカプセル化
常設チャット トピック フィードを作成してアクティビティをフォローする Lync 2013 クイック リファレンス
WindowsグラフィックスとDirectX
第2回 開発環境とゲーム 05A1030 佐々木 和也.
printf・scanf・変数・四則演算
Presentation transcript:

イベント イベント: マウスの操作、キーボードの操作、ファイル操作など システムやユーザーからの入力・出力のこと Windowsは、イベントに応じて動作するOS イベントドリブン Windowsのアプリケーションもイベントドリブン

メッセージ 発生したイベントをWindowsやアプリケーションに伝える時に、イベントの内容を表すデータをメッセージという。 メッセージには、 マウスが動かされたことを知らせるメッセージ、 窓が閉じられてその部分を描画しなおすことをしらせるメッセージ  などがある。

メッセージの発生 キーボードが操作されたりマウスが動作したときなどのイベントが発生したとき、そのイベントをあらわすメッセージが発生する。 アプリケーションの起動や終了、窓の移動などもイベントであり、やはりメッセージが発生する。 キーボードやマウスの操作に関しては、それらの装置を扱うドライバプログラムが、Windowsに対してメッセージを発生する。

メッセージ処理1 メッセージはまず、Windowsが受け取る。 Windowsは受け取ったメッセージの内容を確認する。 内容がシステム関連の場合はそのまま処理を実行する。 内容がアプリケーション向けの場合は、 そのアプリケーションにメッセージを転送する。

メッセージ処理2 例:マウスが動作中のアプリケーションのボタン1の上にあるときにクリックされた場合 1.マウスの座標とクリックされたことを伝えるメッセージがマウスドライバから発生 2.Windowsがメッセージをうけとる。 3.Windowsはマウスの座標と自分の管理情報から、マウスがクリックされたアプリケーションを特定 4.メッセージをアプリケーションに転送する。 5.アプリケーションはメッセージを受けて、ボタン1がクリックされたことを知る。 6アプリケーションはボタン1がクリックされたときのイベントハンドラを実行する。

アプリケーションでの メッセージ処理1 Windowsのアプリケーション WinMain関数の内部にメッセージループという部分を持っている。 また、メッセージを処理するためのウィンドウプロシージャという関数を持っている。 Windowsからのメッセージは、各アプリケーションのWinMain関数におくられる。

アプリケーションでの メッセージ処理2 メッセージループ の例:    メッセージループ の例: while (GetMessage(&msg,NULL,0,0))     {         TranslateMessage(&msg);         DispatchMessage(&msg);     }     return msg.wParam;

GetMessage()関数 アプリケーションは、キューという箱をもっており、この箱にWindowsからメッセージが送られてくる。メッセージはFIFO(先入れ先だし)で処理される。 GetMessage()関数は、このキューをのぞいてメッセージを確認する。メッセージがなければ、新しいメッセージが届くまで待つ。メッセージがある場合や届いた時は、それをチェックする。 そのメッセージの内容が、アプリケーションの終了であれば、このループを抜けてアプリケーションを終わる。 それ以外のメッセージノ場合は、ループを続ける。

TranslateMessage()関数

DispatchMessage()関数 DispatchMessage()関数は、受け取ったメッセージを、メッセージを処理するためのウィンドウプロシージャという関数に送る。

ウィンドウプロシージャ アプリケーションに届いたメッセージを処理する関数。窓ごとにある。 例: LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {         switch(msg)         {         case WM_DESTROY:             PostQuitMessage(0);             break;         default:             return DefWindowProc(hWnd, msg, wParam, lParam);         }         return 0L; }

ウィンドウプロシージャ msgにはDispatchMessage()関数で メッセージループから送られたメッセージが 入る。 LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {         switch(msg)         {         case WM_DESTROY:             PostQuitMessage(0);             break;         default:             return DefWindowProc(hWnd, msg, wParam, lParam);         }         return 0L; } msgにはDispatchMessage()関数で メッセージループから送られたメッセージが 入る。

ウィンドウプロシージャ LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {         switch(msg)         {         case WM_DESTROY:             PostQuitMessage(0);             break;         default:             return DefWindowProc(hWnd, msg, wParam, lParam);         }         return 0L; } msgの内容がWM_DESTROY(終了ボタンを押した時のメッセージ)の場合、 PostQuitMessage関数をつかって、WM_QUITメッセージが発行される。 このメッセージがメッセージループで受け取られて、アプリケーションの終了が開始される。

ウィンドウプロシージャ その他のメッセージについては、DefWindowProc()関数で標準的な処理をしている。 LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {         switch(msg)         {         case WM_DESTROY:             PostQuitMessage(0);             break;         default:             return DefWindowProc(hWnd, msg, wParam, lParam);         }         return 0L; } その他のメッセージについては、DefWindowProc()関数で標準的な処理をしている。

ウィンドウプロシージャ BCBの場合 BCBではメッセージ処理をユーザーには見せずにカプセル化してある。 イベントハンドラはヘッダーファイルに自動的に登録される。 登録された時に、対応したメッセージとそのメッセージに対する項目が隠されたウィンドウプロシージャに自動的に記述される。そして、メッセージループはApplication->Run()関数の中で実装されており、ユーザーには見えない。

IE WORD Windows キーボードドライバ マウスドライバ