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
[71750] SetWindowLong 하는데 생기는 문제에 도와주세요
SetWindowLong [] 3310 읽음    2014-09-16 13:54
1.png 501.2KB 첨부 파일 그림 1
안녕하세요. SetWindowLong 하는 부분에서 다음과 같은 현상이 생기는데 이 부분을 해결 할 수 있는 방법이 없을까요?

일단 구현
=============================================
form1, form2, form3 각 3개의 폼을  생성하고, form1 에서 form2 를 Show해서 띄웁니다.
그리고 form2  에서 form3 를 ShowModal로 띄웁니다.


form1 코드 >
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
	Form2->Show();
}
//---------------------------------------------------------------------------




form2 코드 >
TForm2 * Form2;

// ---------------------------------------------------------------------------
__fastcall TForm2::TForm2( TComponent * Owner )
	: TForm( Owner )
{
	LONG wndStyle;

	wndStyle = GetWindowLong( Handle, GWL_EXSTYLE /* GWL_HWNDPARENT */ ); // 현재 스타일
	wndStyle = wndStyle | WS_EX_APPWINDOW; // 추가
	SetWindowLong( Handle, GWL_EXSTYLE, wndStyle );
}

// ---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click( TObject * Sender )
{
	Form3->ShowModal( );
}
// ----------------------------------------------------------------------------



여기서 문제는

[1.png] 첨부 파일 그림 1
첨부 파일 그림 1 처럼

작업 표시줄에서 form1에서 form2를 띄우면 modalless이기때문에 각 2개 폼을 각각 컨트롤 할수 있습니다.

여기서 form3 를 form2 보다 작은 사이즈로 창이 떴을때

form3이 활성화 되면서 나머지 ( form1 , form2 ) 2개 폼은 비활성화 되면서 선택 할 수 없게 됩니다.

즉 form2를 전체 화면 하게 된 상태에서 form3를 오픈하고 작업 표시줄의 form2를 클릭하게 되면

그 이후 form3에 대한 접근을 할 수가 없게 되네요( form2 뒤로 빠져버리니 )

form1을 눌르면 form3가 활성화 되고

form2를 누르면 form2가 활성화 되니

원래 생각은 form2를 누르면 form3가 활성화 되면서 움직여야 되지 않을까요?

방법을 모르겠네요

쉽게 해결할 수 있는 방법이 없을까요?

부탁 드립니다.


+ -

관련 글 리스트
71750 SetWindowLong 하는데 생기는 문제에 도와주세요 SetWindowLong 3310 2014/09/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.