掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
SDKでステータスバーにプログレスバーを乗せるには? (ID:64704)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ちょっとやってみました。 ウィンドウプロシージャだけですが… LRESULT CALLBACK WindowFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { static HWND hStatus, hProgress; switch(message) { case WM_CREATE: { int sb_size[] = {180, 260, 480}; RECT rcStatus; hStatus = CreateWindowEx( 0, STATUSCLASSNAME, NULL, WS_CHILD | SBARS_SIZEGRIP | CCS_BOTTOM | WS_VISIBLE, 0, 0, 0, 0, hwnd, (HMENU)ID_STATUS, hInst, NULL); SendMessage(hStatus, SB_SETPARTS, (WPARAM)3, (LPARAM)sb_size); SendMessage(hStatus, SB_GETRECT, (WPARAM)0, (LPARAM)&rcStatus); hProgress = CreateWindowEx(0, PROGRESS_CLASS, NULL, WS_CHILD, rcStatus.left, rcStatus.top, rcStatus.right, rcStatus.bottom, hStatus, (HMENU)1, hInst, NULL); SendMessage(hProgress, PBM_SETRANGE, (WPARAM)0, (LPARAM)MAKELPARAM (0, 20)); SendMessage(hProgress, PBM_SETSTEP, (WPARAM)1, (LPARAM)0); } break; case WM_LBUTTONDOWN: { if(IsWindowVisible(hProgress)) { SendMessage(hProgress, PBM_STEPIT, 0, 0); } else { SendMessage(hProgress, PBM_SETPOS, (WPARAM)0, (LPARAM)0); ShowWindow(hProgress, SW_SHOW); } } break; case WM_RBUTTONDOWN: { ShowWindow(hProgress, SW_HIDE); } break; case WM_DESTROY: DestroyWindow(hProgress); DestroyWindow(hStatus); PostQuitMessage(0); break; default: return DefWindowProc(hwnd, message, wParam, lParam); break; } return 0; } クライアント領域で左クリックしていくとプログレスバーが進みます。 右クリックで非表示に。 メインウィンドウのリサイズに対応していなかったりしますが。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.