掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
アプリケーションの終了方法について (ID:58122)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
1つ教えていただきたい事があります。 以下のプログラムはクライアント領域のみのウィンドウを生成し、 「クライアント領域にファイルから読み込んだ画像を10秒間表示」 を繰り返すものです。 ウィンドウ上でクリックするとプログラムが終了するようにしています。 質問内容:今の状況はクリックをすると10秒間の表示を待ってから終了する ようになっていますが、10秒間待たなくても即座に終了するようにしたいと 考えています。 どのような方法をとったらよいか教えていただけないでしょうか。 #include<windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); void PicBaseFileName (HWND); //ファイル名を設定 void PicBaseFileLoad (HWND, LPCSTR fname); //ファイルを読み込み //メイン------------------------------------------------------ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, int nCmdShow) { //■ウインドウの設定 HWND hwnd, hwndBase; MSG msg; WNDCLASS winc; winc.style = CS_HREDRAW | CS_VREDRAW; winc.lpfnWndProc = WndProc; winc.cbClsExtra = winc.cbWndExtra = 0; winc.hInstance = hInstance; winc.hIcon = LoadIcon (NULL, IDI_APPLICATION); winc.hCursor = LoadCursor (NULL, IDC_ARROW); winc.hbrBackground = (HBRUSH) GetStockObject (BLACK_BRUSH); winc.lpszMenuName = NULL; winc.lpszClassName = "FormMain"; if (!RegisterClass (&winc)) return 0; hwnd = CreateWindow ("FormMain", NULL, WS_POPUP, 0, 0, 500, 200, NULL, NULL, hInstance, NULL); ShowWindow (hwnd, SW_SHOW); //■マウスの非表示 ShowCursor (0); //■画像ファイルの読込 PicBaseFileName (hwndBase); //■ウィンドウ上でクリックされたら終了処理 while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg);DispatchMessage (&msg); } return 0; } //マウスによる終了処理----------------------------------------- LRESULT CALLBACK WndProc (HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) { switch (msg) { PostQuitMessage (0); } return 0; case WM_LBUTTONDOWN: PostQuitMessage (0); return 0; //■左クリックで終了 return DefWindowProc (hwnd, msg, wp, lp); } //ファイルから画像読込&表示----------------------------------- void PicBaseFileLoad (HWND hwndBase, LPCSTR fname) { //■宣言 HDC HBITMAP hbitmap1, hbitmap2; HDC hdc Base1, hdcBuff1; BITMAP bmData; //■画像読込 //-----------ファイルから読込 hdcBase1 = GetDC (hwndBase); //クライアント領域DC作成取得 hbitmap1 = (HBITMAP) LoadImage (0, fname, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_LOADFROMFILE); hdcBuff1 = CreateCompatibleDC (hdcBase1);//メモリDC作成 SelectObject (hdcBuff1, hbitmap1); //メモリDCとBMP 関連づけ BitBlt (hdcBase1, 0, 0, x2, y2, hdcBuff1, 0, 0, SRCCOPY); Sleep(1000); //-----------メモリの解放 DeleteDC (hdcBuff1); DeleteObject (hbitmap1); ReleaseDC (hwndBase, hdcBase1); } //画像ファイル名取得-------------------------------------------- void PicBaseFileName (HWND hwndBase) { PicBaseFileLoad (hwndBase, "temp1.bmp"); PicBaseFileLoad (hwndBase, "temp2.bmp"); }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.