「プログレスバーの中に文字が表示できるやつ」の編集履歴(バックアップ)一覧はこちら

プログレスバーの中に文字が表示できるやつ」(2010/05/31 (月) 14:38:10) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

#asciiart(blockquote){ Class HIRAI_PROGRESS Private hWnd As HWND hDC As HDC hMDC As HDC hBmp As HBITMAP rcc As RECT hPen As HPEN hBrs As HBRUSH max As Long min As Long cur As Long spo As Long Public Sub ~HIRAI_PROGRESS() DeleteObject(hBrs) DeleteObject(hPen) DeleteObject(hBmp) DeleteDC(hMDC) ReleaseDC(hWnd, hDC) End Sub Sub Set(hWnd2 As HWND) hWnd = hWnd2 GetClientRect(hWnd, rcc) hDC = GetDC(hWnd) hMDC = CreateCompatibleDC(hDC) hBmp = CreateCompatibleBitmap(hDC, rcc.right, rcc.bottom) hPen = CreatePen(PS_NULL, 0, 0) hBrs = CreateSolidBrush(RGB(0, 0 , &HFF)) SelectObject(hMDC, hBmp) SelectObject(hMDC, hPen) SelectObject(hMDC, hBrs) FillRect(hMDC, rcc, GetSysColorBrush(COLOR_3DFACE)) SetBkMode(hMDC, TRANSPARENT) SetTextColor(hMDC, &h00FFFFFF) max = 100 min = 0 cur = 0 spo = 1 End Sub Sub Step() cur = cur + spo If cur > max Then cur = max Draw() End Sub Sub Set(i As Long) cur = i If cur > max Then cur = max If cur < min Then cur = min Draw() End Sub Sub Draw() Dim par[555] As Byte FillRect(hMDC, rcc, GetSysColorBrush(COLOR_3DFACE)) Rectangle(hMDC, 0, 0, rcc.right*(cur/100), rcc.bottom) wsprintf(par, "%d%%", cur) DrawText(hMDC, par, -1, rcc, DT_CENTER or DT_SINGLELINE or DT_VCENTER) InvalidateRect(hWnd, ByVal 0, 1) BitBlt(hDC, 0, 0, rcc.right, rcc.bottom, hMDC, 0, 0, SRCCOPY) End Sub End Class } Set()でウインドウと関連付け。対象となるControlはイメージボックス。 Step()で1%進む Set()で好きなところ0-100に行く Drawで描写。

表示オプション

横に並べて表示:
変化行の前後のみ表示: