Windowsアプリケーション プログラミング 生命・情報等教育研究支援室 (電子・情報工学系) 中山 勝 プロセッサの設計と開発の実験装置群 実験装置全体の構成 Windowsアプリケーションの 基本構成 アプリケーションの動作の流れ メッセージ処理関数 ユーザーの操作 マウスやキーボードのイベント メッセージ メッセージ アプリケーションの WinMain関数 WindowsOS WinMain関数 Int APIENTRY WinMain( HINSTANCE hInstance, //プログラムの実体のハンドル HINSTANCE hPrevInstance, //Win32では常にNULL LPSTR lpCmdLine, //コマンドラインのポインタ int nCmdShow) //起動時のウインドウの状態 { 必要な全ての初期化作業及びメインウインドウの作成 送られてきたメッセージを取り出し、処理関数に渡す 終了処理 } WinMain関数内の処理 初期化 ウインドウクラスの登録 WNDCLASS構造体に値を セットしRegisterClass関数 で登録 メインウインドウの作成 CreateWindow関数で作成 メインウインドウの表示 ShowWindow関数で表示 メッセージの取得 メッセージ処理関数 に渡す メッセージ処理ループ NO 終了メッセージか? YES 終了処理 アプリケーションの動作の流れ メッセージ処理関数 ユーザーの操作 マウスやキーボードのイベント メッセージ メッセージ アプリケーションの WinMain関数 WindowsOS 代表的なメッセージ WM_CREATE(ウィンドウが作られるときに発生) WM_COMMAND(メニューが選択されたり、ボタンが押さ れたりしたときに発生) WM_SIZE(ウィンドウのサイズが変更されたときに発生) WM_CLOSE(閉じるボタンが押されたときに発生 ) WM_DESTROY(ウィンドウが破棄されたときに発生 ) WM_PAINT(ウィンドウ内の表示データに、再描画の必要 があるときに発生) メッセージ処理関数 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); } アプリケーションの処理 (実機でのデモンストレーション) アプリケーションの開発 (シリアル通信関連) シリアルポートの監視(1) WinMain関数 メッセージ処理 メッセージ イベント WindowsOS ユーザーの操作 メッセージ タイマーセット Run又はStopボタン の処理 タイマー破棄 タイマーの処理 メッセージ処理関数 Stopコマンド 1秒毎に監視 シリアルポート シリアルポートの監視(2) WinMain関数 メッセージ処理 メッセージ イベント WindowsOS ユーザーの操作 メッセージ スレッドの起動 Run又はStopボタン の処理 メッセージ処理関数 Stopコマンド シリアルポート シリアルポート監視スレッド 連続監視 シリアルポートの送受信 START オーバーラップ ポートのオープン 構造体を定義 オーバーラップでのポートのオープン その他の処理 スレッド起動 Stop応答 受信待ち スレッド起動 Run/Stop? No Yes Stop Stopコマンド発行 Stop応答 オーバーラップ構造体の 受信待ち イベント待ち Run or Stop Run Runコマンド発行 ボタン表示切替 ポート監視スレッド起動 ボタン表示切替 Stop処理 スレッド終了 むすび 今回発表のアプリケーションは、C言語と API(Application Programming Interface)関数で記 述されている。 VC++には、アプリケーション開発のため MFC(Microsoft Foundation Class)というクラス ライブラリが提供されている。これについて は、また次の機会に。
© Copyright 2024 ExpyDoc