Presentation is loading. Please wait.

Presentation is loading. Please wait.

Windowsアプリケーション プログラミング

Similar presentations


Presentation on theme: "Windowsアプリケーション プログラミング"— Presentation transcript:

1 Windowsアプリケーション プログラミング
Windowsアプリケーション  プログラミング 生命・情報等教育研究支援室 (電子・情報工学系) 中山 勝

2 プロセッサの設計と開発の実験装置群

3 実験装置全体の構成

4 Windowsアプリケーションの 基本構成

5 アプリケーションの動作の流れ メッセージ処理関数 アプリケーションの WinMain関数 WindowsOS ユーザーの操作
マウスやキーボードのイベント メッセージ

6 WinMain関数 Int APIENTRY WinMain( HINSTANCE hInstance, //プログラムの実体のハンドル
HINSTANCE hPrevInstance, //Win32では常にNULL LPSTR lpCmdLine, //コマンドラインのポインタ int nCmdShow) //起動時のウインドウの状態 必要な全ての初期化作業及びメインウインドウの作成 送られてきたメッセージを取り出し、処理関数に渡す 終了処理

7 WinMain関数内の処理 初期化 ウインドウクラスの登録 メインウインドウの作成 メインウインドウの表示 メッセージの取得
終了メッセージか? 終了処理 YES NO WNDCLASS構造体に値をセットしRegisterClass関数で登録 CreateWindow関数で作成 ShowWindow関数で表示 メッセージ処理関数 に渡す メッセージ処理ループ

8 アプリケーションの動作の流れ メッセージ処理関数 アプリケーションの WinMain関数 WindowsOS ユーザーの操作
マウスやキーボードのイベント メッセージ

9 代表的なメッセージ WM_CREATE(ウィンドウが作られるときに発生)
WM_COMMAND(メニューが選択されたり、ボタンが押されたりしたときに発生) WM_SIZE(ウィンドウのサイズが変更されたときに発生) WM_CLOSE(閉じるボタンが押されたときに発生 ) WM_DESTROY(ウィンドウが破棄されたときに発生 ) WM_PAINT(ウィンドウ内の表示データに、再描画の必要があるときに発生)

10 メッセージ処理関数 LRESULT CALLBACK WndProc(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam){ switch(message){     ・  case WM_DESTROY: PostQuitMessage(0);/*終了メッセージの発行*/ break; default: return(DefWindowProc(hWnd,message,wParam,lParam)); } return(0L);

11 アプリケーションの処理 (実機でのデモンストレーション)

12 アプリケーションの開発 (シリアル通信関連)

13 シリアルポートの監視(1) WinMain関数 WindowsOS メッセージ処理 ユーザーの操作 Run又はStopボタン タイマーの処理
メッセージ処理関数 タイマーの処理 シリアルポート Run又はStopボタン の処理 イベント メッセージ タイマーセット タイマー破棄 1秒毎に監視 Stopコマンド

14 シリアルポートの監視(2) WinMain関数 WindowsOS メッセージ処理 ユーザーの操作 Run又はStopボタン
メッセージ処理関数 シリアルポート監視スレッド シリアルポート Run又はStopボタン の処理 イベント メッセージ 連続監視 Stopコマンド スレッドの起動

15 シリアルポートの送受信 START オーバーラップでのポートのオープン ポートのオープン スレッド起動 Stop応答 受信待ち
構造体を定義 ポートのオープン スレッド起動 Stop応答 受信待ち オーバーラップ構造体の イベント待ち Run/Stop? その他の処理 スレッド起動 Stop応答 受信待ち No Yes Run or Stop Stop Run Stopコマンド発行 Runコマンド発行 ボタン表示切替 ボタン表示切替 Stop処理 ポート監視スレッド起動 スレッド終了

16 むすび   今回発表のアプリケーションは、C言語とAPI(Application Programming Interface)関数で記述されている。   VC++には、アプリケーション開発のためMFC(Microsoft Foundation Class)というクラスライブラリが提供されている。これについては、また次の機会に。


Download ppt "Windowsアプリケーション プログラミング"

Similar presentations


Ads by Google