Я хотел бы нарисовать красную границу для кнопки РЕДАКТИРОВАТЬ или Нажать кнопку в C ++ Win32 API.НЕТ MFC Пожалуйста.Я получил это далеко.Рисует черную границу, но большинство, если не все hButtonDC, hButtonBitmap не объявлены.
PAINTSTRUCT ps;
HDC hdc;
HBRUSH hBrush;
BeginPaint(hwndButton2, &ps);
// Create memory DC to contain hButtonBitmap
hButtonDC = CreateCompatibleDC(ps.hdc);
hButtonBitmap = SelectObject(hButtonDC, hButtonBitmap);
// Create second memory DC where the button borders will be drawn and select into this DC an empty bitmap with the
// size of the button bitmap
hMemDC = CreateCompatibleDC(ps.hdc);
hBitmap = CreateCompatibleBitmap(ps.hdc, ps.rcPaint.right, ps.rcPaint.bottom);
hBitmap = SelectObject(hMemDC, hBitmap);
// Copy hButtonDC into hMemDC
BitBlt(hMemDC, 0, 0, ps.rcPaint.right, ps.rcPaint.bottom, hButtonDC, 0, 0, SRCCOPY);
// Paint the button borders with black pixels (1 pixel width)
PatBlt(hMemDC, 0, 0, ps.rcPaint.right - 1, 1, BLACKNESS);
PatBlt(hMemDC, ps.rcPaint.right - 1, 0, 1, ps.rcPaint.bottom, BLACKNESS);
PatBlt(hMemDC, 0, ps.rcPaint.bottom - 1, ps.rcPaint.right , 1, BLACKNESS);
PatBlt(hMemDC, 0, 0, 1, ps.rcPaint.bottom - 1, BLACKNESS);
// Paint the button with drawn borders to its window DC, ps.hdc .
BitBlt(ps.hdc, 0, 0, ps.rcPaint.right, ps.rcPaint.bottom, hMemDC, 0, 0, SRCCOPY);
// Delete hBitmap e hMemDC
DeleteObject(SelectObject(hMemDC, hBitmap));
DeleteDC(hMemDC);
// Delete hButtonDC
SelectObject(hButtonDC, hButtonBitmap);
DeleteDC(hButtonDC);
EndPaint(hWnd, &ps);