Q&A

  • MessageBox를 최상위로 하려면?
일반 폼 말고 메세지박스를 최상위로 하고 싶은데

어떻게 해야 할까요?

2  COMMENTS
  • Profile
    서경철 2000.02.21 20:09
    서경철 wrote:

    > 일반 폼 말고 메세지박스를 최상위로 하고 싶은데

    > 어떻게 해야 할까요?



    procedure TForm1.Button1Click(Sender: TObject);

    var

    FWHndle: HWnd;



    begin

    MessageBox(Handle, Pchar('최상위'),

    'FILE ERROR', MB_OK+MB_ICONSTOP);

    FWHndle := GetForegroundWindow;

    SetWindowPos(FWHndle, HWND_TOPMOST, // 폼을 최상위로...

    Left, Top, Width, Height,

    SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);

    end;



    이렇게 하니깐 되긴 하는데 제가 해결하려고 했던 문제는 해결이 안되더군요 -.-



  • Profile
    서경철 2000.02.21 20:20
    헉, 위에분의 말을 듣고 해보니 정말 자동으로 최상위가 되네요.

    위에 해놓은건 뭘 해놓은건지 모르겠습니다 -.-;;



    제가 겪은 문제는 프로그램이 실행되면서 Tmplete 파일을 읽게 해놨는데,

    그게 파일을 못찾으면 메세지 박스가 뜨게 되어 있는데,

    스플래쉬폼이 뜨고 메인폼이 생성되면서 파일을 못찾았을경우 그 메세지박스가

    뜨는데 그게 스플레쉬폼 뒤에 뜨거든요.

    (스플래쉬는 메인폼이 생성된후에 사라지게 해놨거든요)

    그래서 메세지박스는 스플래쉬 뒤에 생겨있고 메세지박스를 클릭안하면 스플래쉬도

    안사라지고 메인프로그램도 안뜨는 문제가 생겨서..

    (어거지로 클릭하면 되는데 일반사용자가 못할수 있으므로..)

    임시방편으로 해놓긴 했는데, 스플래쉬위에 메세지박스가 뜨게하는 방법이 있으면 좋겠네요.