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
[19212] Re:DrawCaption이 잘 안됩니다.
유영인.Chris [cuperido] 1528 읽음    2002-06-10 10:44
BorderStyle이 지정하는건, Form의 BorderStyle 프로퍼티를 지시하는것 같네요. 만약, 기본적으로 나와있는 타이틀바가 있다면, 그걸 덧붙여 칠할 수는 없습니다. 그 아래로 바로 위치하게 되지요.

그렇기 때문에, 만약 두개 이상의 폼을 활성화 시키고 싶으시다면, 각 폼의 BorderStyle 을 전부 bsNone으로 해놓고, 캡션바를 직접 그려내는 방법이 있습니다.

아래 소스를 해당 Form1 의 캡션을 다시 그려내는 예제인데, bsNone이 아니면, 타이틀바가 두개가 그려지는 현상을 보실 수 있으실껍니다.


HDC dc = GetDC(Form1->Handle);

DrawCaption(Form1->Handle, dc,
   &Bounds(0, 0, Width, GetSystemMetrics(SM_CYCAPTION)),
   DC_ACTIVE | DC_TEXT);

ReleaseDC(Form1->Handle, dc);


굳이 활성화 시키시려는 이유는 잘 모르겠지만, 어쨌든 복잡한 방법입니다. 직접 이벤트를 잡으셔서 타이틀바를 그려주시고 계산을 해주셔야 할 문제인것 같네요.


주병윤 님이 쓰신 글 :
: MDI application에서 콘트롤바에 도구바를 올려놓고 도구바의 DragKind=dkDock, DragMode=dmAutomatic으로 해 놓으면 도구바를 도킹하여 쓸 수 있습니다. 이때 도구바를 클릭하여 child form을 제어하고 싶습니다. 하지만 도구바를 선택하면 메인폼이 비활성화되고 또 child 폼들도 다 비활성화되더군요.
: 그래서 도킹된 도구바윈도우를 선택하는순간 억지로 메인폼을 포커스시켰습니다.
: 하지만 도킹된 도구바윈도우가 비활성화되어 캡션바 색깔이 비활성화된 색으로 바뀌는데 이것을 활성화된것처럼 하기 위해 SDK의 DrawCaption함수를 이용하여보려고 했습니다. 그런데 잘 안되네요. 어디가 문제인지 잘 모르겠습니다.
: 포럼에 올라온글을 읽어보니깐 DrawCaption함수를 쓰기전에 윈도우의 BorderStyle을 bsNone으로 하라고 했는데 tool bar의 property를 아무리 뒤져봐도 BorderStyle이 없네요.
: 그리고 DC_ACTIVE를 쓰면  활성화된 폼의 색깔로 칠해준다고 하는데 그게 잘 안되네요.
: 며칠째 고생하고 있습니다. 코드를 올려놓을테니 답변부탁드립니다.
:
:
:
: void __fastcall TMainForm::ToolBar1MouseDown(TObject *Sender,
:       TMouseButton Button, TShiftState Shift, int X, int Y)
: {
:   SetFocus(); //메인폼 포커싱
:
:   HDC dc = GetDC(ToolBar1->Handle);
:   RECT r;
:   r.left = 0;
:   r.top = -20;
:   r.right = 300;
:   r.bottom = 0;  //ToolBar1의 left,top,right,bottom은 0,0,300,30임
:   HWND hw2 = ToolBar1->Handle;
:
:   DrawCaption(hw2, dc, &r,
:    DC_ACTIVE |
:    DC_TEXT |
:    DC_ICON |
:    DC_INBUTTON |
:    DC_SMALLCAP
:   );
:
:   ReleaseDC(hw2,dc);
: }
:

+ -

관련 글 리스트
19170 DrawCaption이 잘 안됩니다. 주병윤 1621 2002/06/07
19212     Re:DrawCaption이 잘 안됩니다. 유영인.Chris 1528 2002/06/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.