정말 감사합니다!!! ㅇㅁㅇ!!!
너무 고마워요ㅎㅎㅎ
장성호 님이 쓰신 글 :
: C++Builder에서는 프로젝트 이름과 똑같은 cpp파일이 있죠
: Project1.bpr 에서는 Project1.cpp
:
: 이 프로젝트.cpp에 WinMain이 있는것은 아실테구요
: C++Builder의 WinMain은 대게 다음과 같은 형태로 되어있습니다.
:
:
: #include
: #pragma hdrstop
: //---------------------------------------------------------------------------
: USEFORM("Unit1.cpp", Form1);
: //---------------------------------------------------------------------------
: WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
: {
: try
: {
: Application->Initialize();
:
: //Form1이 생성되어서 Application->MainForm으로 할당됨
: Application->CreateForm(__classid(TForm1), &Form1);
:
: //메인폼을 Show한후에
: // PeekMessage , TranslateMessage , DispatchMessage 등을 계속반복함..
: Application->Run();
: }
: catch (Exception &exception)
: {
: Application->ShowException(&exception);
: }
: catch (...)
: {
: try
: {
: throw Exception("");
: }
: catch (Exception &exception)
: {
: Application->ShowException(&exception);
: }
: }
: return 0;
: }
:
:
: 그러데 일반적으로 WinMain에는 메세지큐에서 메세지를 가져와서(GetMessage)
: Despatch해주는 구분이 있는데 C++Builder WinMain에는 없지 않습니까?
:
: VCL에서는 이 구분이 Application 객체 안에 있습니다.
: 즉
Application->Run 함수안으로 쫓아가보면 그런 작업을 하는곳이 있습니다.
:
: 맨처음에 MainForm이 생성되었을때는 Visible=false이지만
: Application->Run함수에서 MainForm을 Show해주기때문에 그런 것입니다.
:
:
: 만약 MainForm을 Show되게 하고 싶지 않다면
:
: Application->Run을 호출하기 전에
: Application->ShowMainForm=false;를 해주면 Application->Run에서 메인폼을 Show하지 않습니다.
:
:
: WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
: {
: try
: {
: Application->Initialize();
: Application->CreateForm(__classid(TForm1), &Form1);
: Application->ShowMainForm=false; //이렇게..
: Application->Run();
: }
: catch (Exception &exception)
: {
: Application->ShowException(&exception);
: }
: ...
: }
:
:
:
: 그럼..
:
: S시온스S 님이 쓰신 글 :
: : 우선적으로 폼 보면 처음에 Visible이 false로 돼 있더라고요.
: :
: : 그래서 Visible을 체크해보니까. 처음 시작할때는 false인데
: :
: : WinMain들어가고나서 약 1초정도 지나니까 true로 바뀌더라고요;
: :
: :
: : 이거 자동 true 안되게할려면 어떻게해야하죠?