2014-10-23 8 views
0

C++ (Win32 API)에서 기본 응용 프로그램을 만들고 있습니다. 아래와 같이 나는있는 CreateWindow() 함수를 사용하여 버튼을 만들려고 :투명 배경이있는 C++ 버튼

button1 = CreateWindow("button", TEXT("Click Me!"), WS_TABSTOP | WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 100, 200, 70, 25, hwnd, (HMENU)NULL, NULL, NULL); 

문제는 당신이 여기에서 볼 수있는 버튼 주위에 흰색 테두리가 있다는 것입니다 : 나는에 노력 Link

가 이 코드로 투명하게 만들지 만 작동하지 않습니다.

case WM_CTLCOLORBTN:{ 
    HBRUSH hBrushbtn; 
    hBrushbtn = (HBRUSH)GetStockObject(NULL_BRUSH); 
    SetBkMode((HDC) wParam, TRANSPARENT); 
    return ((LRESULT)hBrushbtn); 
    break; 
} 

어떻게하면됩니까?

감사

답변

1

SetBkMode() 텍스트 렌더링 여기에 문제가되지이다, 투명인지 아닌지 여부에 영향을 미칩니다.

버튼의 DC에 대한 부모 컨트롤까지 WM_PRINTCLIENT까지 as I demonstrate here으로 설정해야합니다. (내 코드는 여전히 체크 박스, 그룹 박스, 라벨 등에서 투명 텍스트로 SetBkMode()을 호출하고, 푸시 버튼의 경우 비주얼 스타일을 사용하고 있다면 상관 없습니다).

+0

감사합니다. WM_PRINTCLIENT가 그 일을했습니다. –

관련 문제