C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[20535] Re:Re:Re:[질문] Tab은 처리했는데 다른데가...
유영인.Chris [cuperido] 1214 읽음    2002-07-30 16:11
TabSheet1->Brush->Color = clBlack;

이런식으로 해주시면, 탭 시트의 컬러가 변경됩니다.

그리고, PageControl 라인을 원하지 않으신다면, 쉽게 하시는 방법은 Style 프로퍼티를 tsButtons 같은 것으로 바꾸고, Shape 컴포넌트를 TabSheet에 맞춰서 넣으시는 방법이 있고, 그렇지 않으면 아래 방법처럼 다시 그려주는 방법이 있습니다.


Unfortunately, the PageControl does not support Custom Draw. You can, however,
subclass the PageControl and manually paint over the edge in the subclass
procedure. Here's an example...

// in header...
    Controls::TWndMethod OldPageControlWP;
    void __fastcall NewPageControlWP(TMessage &Msg);

// in source...
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
    OldPageControlWP = PageControl1->WindowProc;
    PageControl1->WindowProc = NewPageControlWP;
}

void __fastcall TForm1::NewPageControlWP(TMessage &Msg)
{
    if (Msg.Msg == WM_DESTROY)
        PageControl1->WindowProc = OldPageControlWP;

    OldPageControlWP(Msg);

    if (Msg.Msg == WM_PAINT)
    {
      HDC Hdc = GetDC(PageControl1->Handle);
        HPEN HPen = CreatePen(PS_SOLID, 5, ColorToRGB(PageControl1->Brush->Color));
        HPEN HOldPen = SelectObject(Hdc, HPen);

        POINT P[] = {{0, 0},
                     {PageControl1->Width, 0},
                     {PageControl1->Width, PageControl1->Height},
                     {0, PageControl1->Height},
                     {0, 0}};
        Polyline(Hdc, P, 5);

        SelectObject(Hdc, HOldPen);
        DeleteObject(HPen);
        ReleaseDC(PageControl1->Handle, Hdc);
    }
}


Good luck.

--------------------------------------
Damon Chandler


박상용 님이 쓰신 글 :
:
: 아.. Canvas를 써서 지지고 볶아도 안되네여...
:
: 어떤 식으로 테두리와 페이지의 색을 변경할수 있나여?
:
: 구체적인 답변을 귀찮으시겠지만 부탁드립니다. ㅡㅡ; __; 꾸벅...
:
:
: 유영인.Chris 님이 쓰신 글 :
: : PageControl은 Canvas를 가지고 있습니다. OnDrawTab 같은 이벤트에서, 탭을 그릴때 마다 탭도 바꿔 주실 수 있으며, OnChange 같은 이벤트에서 각각의 색상도 칠할 수 있습니다.
: :
: : 아, 그리고.. PageControl의 OwnerDraw 프로퍼티를 True로 해주셔야 합니다.
: :
: :
: : 박상용 님이 쓰신 글 :
: : : 별의 별 방법을 써도 안되네여...
: : :
: : : 게시판에 답이 있긴 한데.. 이해를 못해서여.. ^^
: : :
: : : 그럼 답변 부탁드리겠습니다.
: : :
: : : pagecontrol에 color를 입히고 싶습니다.
: : :
: : : 글구 sheet도 색을 다르게 지정할수 있는지 여쭙고 싶습니다.
: : :
: : : 그럼 수거하세요 모두들..

+ -

관련 글 리스트
20418 [질문] pagecontrol에 색깔 입히는 방법이 모가 있을까요? 박상용 1287 2002/07/26
20478     Re:[질문] pagecontrol에 색깔 입히는 방법이 모가 있을까요? 유영인.Chris 1289 2002/07/29
20533         Re:Re:[질문] Tab은 처리했는데 다른데가... 박상용 996 2002/07/30
20535             Re:Re:Re:[질문] Tab은 처리했는데 다른데가... 유영인.Chris 1214 2002/07/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.