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
[52904] Re:[자답] Minimize 실행 시 Title bar 잔상 남는 문제
고래 [] 2115 읽음    2008-03-26 22:14
자답입니다.

정상적으로 Title bar 잔상이 안남는 건 확인했는데

왜 정상동작 하는지는 감이 안잡히네요 -_-;

아무래도 ShowWindow( Handle, SW_MINIMIZE ); 가 제대로 동작하도록 해주는 것 같긴한데 ..

음..

1. FormCreate에 다음 코드를 넣어 줍니다.

ShowWindow( Application->Handle, SW_HIDE);
SetWindowLong(Application->Handle, GWL_EXSTYLE,
            GetWindowLong(Application->Handle, GWL_EXSTYLE) & !WS_EX_APPWINDOW | WS_EX_TOOLWINDOW);
ShowWindow(Application->Handle, SW_SHOW);


2. CreateParams 이라는 함수를 생성합니다.

void __fastcall TfrmMain::CreateParams( TCreateParams &Params )
{
    TForm::CreateParams(Params);
    Params.ExStyle = Params.ExStyle & !WS_EX_TOOLWINDOW | WS_EX_APPWINDOW;
}
//---------------------------------------------------------------------------


3. Main 헤더파일에 선언

void  __fastcall CreateParams( TCreateParams &Params );


4. 최소화, 최소화에서 Restore 이벤트 잡아서 처리해줍니다.
    WM_SYSCOMMAND 이벤트 입니다.

void __fastcall TfrmMain::OnSysCommand( TMessage &Msg )
{
    switch( Msg.WParam )
    {
        case SC_MINIMIZE:           
        {
            ShowWindow( Handle, SW_MINIMIZE );
            return;
        }

        case SC_RESTORE:
        {
            ShowWindow(Handle, SW_RESTORE);
            return;
        }
    }
}

TForm::Dispatch(&Msg);
}
//---------------------------------------------------------------------------


고래 님이 쓰신 글 :
: C++ Builder 6.0 사용중에 있습니다.
:
: C++ Builder에서 빈 프로젝트를 만든다음에 (無 코딩)
:
: 실행파일 하나만 가지고
:
: VISTA Basic 테마 윈도우에서 실행시킨 다음에요
:
: '최소화' 버튼.. Minimize 버튼을 클릭하면
:
: Title bar 잔상이 남는문제가 발생하는데요
:
: 이게 났다가 안났다가 그래요
:
: 이 문제가 xp, vista 에어로 테마에서는 전혀 문제가 나지 않고 VISTA Basic 테마에서만 문제가 나는데..
:
: 뭔가 이유가 있을까요?
:
: C++ Builder 만의 무언가..
:
: 빈 프로젝트의 BorderStyle은 bsSingle 이구요..
:
: Width, Height가 크면 클수록 잘 납니다.
:
:
: 이런 문제가 발생해서 해본 방법으로
:
: 최소화 이벤트 잡아서 그때 바탕화면 다시 그려주고.. 그래도
:
: 발생 빈도는 줄어도 잔상이 남는건 여전한데요..
:
: 음..
:
: 최소화 후에 바탕화면 다시 그려주는걸 수행하면
:
: 잔상이 남은 화면에서 사라지는게 눈으로 보여서요
:
: 그게 좀 이상하네요
:
: Form 최소화 시 Title bar 잔상이 왜 남는걸까요
:
: Title bar 위로 한줄이 남아버립니다.
:
: 조언 부탁 드립니다.

+ -

관련 글 리스트
52899 Minimize 실행 시 Title bar 잔상 남는 문제 고래 1348 2008/03/26
52904     Re:[자답] Minimize 실행 시 Title bar 잔상 남는 문제 고래 2115 2008/03/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.