Q&A

  • 이벤트 발생시 폼이 나타나게...
안녕하십니까..

여기서 많은 도움을 받고 있습니다.

나름대로 많이 뒤져보고 이리저리 해보았지만, 잘 안되서 질문드립니다.



프로그램이 실행중에 어떤 이벤트가 일어나면(특정시간이라든지 등등) 비록

사용자가 다른 프로그램을 사용중이더라도 해당 프로그램이 focus를 갖고

가장 앞으로 나오게 하고 싶습니다.



메신저 프로그램등이 메세지가 왔을때 폼을 만들고 그 폼이 가장 앞으로

나오게 하는것과 비슷한 기능입니다.



부탁드리겠습니다. 감사합니다.

7  COMMENTS
  • Profile
    나그네 2001.08.10 03:09
    허접스러운 방법이지만....FormStyle 프로퍼티를 이용하시면 어떨까요?

    특정이벤트에서 FormStyle을

    focus 주고fsStayOnTop 했다가 fsNormal로 바꿔주면

    포커스 가있고 맨위로 올라와 있어요 그리고 뭐 다른 폼 클릭하면 다시 뒤로 가구요..

    timer해서 했는데..이상하게 맨처음은 안 되고 두번째부터는 잘 되네요..



    너무 허접 스러운가요?



    강두헌 wrote:

    > 안녕하십니까..

    > 여기서 많은 도움을 받고 있습니다.

    > 나름대로 많이 뒤져보고 이리저리 해보았지만, 잘 안되서 질문드립니다.

    >

    > 프로그램이 실행중에 어떤 이벤트가 일어나면(특정시간이라든지 등등) 비록

    > 사용자가 다른 프로그램을 사용중이더라도 해당 프로그램이 focus를 갖고

    > 가장 앞으로 나오게 하고 싶습니다.

    >

    > 메신저 프로그램등이 메세지가 왔을때 폼을 만들고 그 폼이 가장 앞으로

    > 나오게 하는것과 비슷한 기능입니다.

    >

    > 부탁드리겠습니다. 감사합니다.

  • Profile
    대마왕 2001.06.09 02:07
    Form Style을 stayontop으로 해보시죠..



    강두헌 wrote:

    > 안녕하십니까..

    > 여기서 많은 도움을 받고 있습니다.

    > 나름대로 많이 뒤져보고 이리저리 해보았지만, 잘 안되서 질문드립니다.

    >

    > 프로그램이 실행중에 어떤 이벤트가 일어나면(특정시간이라든지 등등) 비록

    > 사용자가 다른 프로그램을 사용중이더라도 해당 프로그램이 focus를 갖고

    > 가장 앞으로 나오게 하고 싶습니다.

    >

    > 메신저 프로그램등이 메세지가 왔을때 폼을 만들고 그 폼이 가장 앞으로

    > 나오게 하는것과 비슷한 기능입니다.

    >

    > 부탁드리겠습니다. 감사합니다.

  • Profile
    강두헌 2001.06.09 02:33
    stayontop으로 하면

    당연히 늘 앞에 나와 있으니.. 문제가 되구요..

    최소화 시켜 놓으면, 실제 이벤트가 일어났을때 앞에 나오지 않아요..

    다른 방법 부탁 드립니다.







    대마왕 wrote:

    > Form Style을 stayontop으로 해보시죠..

    >

    > 강두헌 wrote:

    > > 안녕하십니까..

    > > 여기서 많은 도움을 받고 있습니다.

    > > 나름대로 많이 뒤져보고 이리저리 해보았지만, 잘 안되서 질문드립니다.

    > >

    > > 프로그램이 실행중에 어떤 이벤트가 일어나면(특정시간이라든지 등등) 비록

    > > 사용자가 다른 프로그램을 사용중이더라도 해당 프로그램이 focus를 갖고

    > > 가장 앞으로 나오게 하고 싶습니다.

    > >

    > > 메신저 프로그램등이 메세지가 왔을때 폼을 만들고 그 폼이 가장 앞으로

    > > 나오게 하는것과 비슷한 기능입니다.

    > >

    > > 부탁드리겠습니다. 감사합니다.

  • Profile
    대마왕 2001.06.09 02:45
    SetWindowPos(Handle,HWND_TOPMOST,left,Top,Width,Height,SWP_SHOWWINDOW);

    ->폼을 최상위로..



    SetWindowPos(Handle,HWND_NoTOPMOST,left,Top,Width,Height,SWP_SHOWWINDOW);

    ->해제하기









    강두헌 wrote:

    > stayontop으로 하면

    > 당연히 늘 앞에 나와 있으니.. 문제가 되구요..

    > 최소화 시켜 놓으면, 실제 이벤트가 일어났을때 앞에 나오지 않아요..

    > 다른 방법 부탁 드립니다.

    >

    >

    >

    > 대마왕 wrote:

    > > Form Style을 stayontop으로 해보시죠..

    > >

    > > 강두헌 wrote:

    > > > 안녕하십니까..

    > > > 여기서 많은 도움을 받고 있습니다.

    > > > 나름대로 많이 뒤져보고 이리저리 해보았지만, 잘 안되서 질문드립니다.

    > > >

    > > > 프로그램이 실행중에 어떤 이벤트가 일어나면(특정시간이라든지 등등) 비록

    > > > 사용자가 다른 프로그램을 사용중이더라도 해당 프로그램이 focus를 갖고

    > > > 가장 앞으로 나오게 하고 싶습니다.

    > > >

    > > > 메신저 프로그램등이 메세지가 왔을때 폼을 만들고 그 폼이 가장 앞으로

    > > > 나오게 하는것과 비슷한 기능입니다.

    > > >

    > > > 부탁드리겠습니다. 감사합니다.

  • Profile
    강두헌 2001.06.09 03:11
    대마왕 wrote:

    > SetWindowPos(Handle,HWND_TOPMOST,left,Top,Width,Height,SWP_SHOWWINDOW);

    > ->폼을 최상위로..

    >

    > SetWindowPos(Handle,HWND_NoTOPMOST,left,Top,Width,Height,SWP_SHOWWINDOW);

    > ->해제하기

    >

    >

    >

    >

    > 강두헌 wrote:

    > > stayontop으로 하면

    > > 당연히 늘 앞에 나와 있으니.. 문제가 되구요..

    > > 최소화 시켜 놓으면, 실제 이벤트가 일어났을때 앞에 나오지 않아요..

    > > 다른 방법 부탁 드립니다.

    > >

    > >

    > >

    > > 대마왕 wrote:

    > > > Form Style을 stayontop으로 해보시죠..

    > > >

    > > > 강두헌 wrote:

    > > > > 안녕하십니까..

    > > > > 여기서 많은 도움을 받고 있습니다.

    > > > > 나름대로 많이 뒤져보고 이리저리 해보았지만, 잘 안되서 질문드립니다.

    > > > >

    > > > > 프로그램이 실행중에 어떤 이벤트가 일어나면(특정시간이라든지 등등) 비록

    > > > > 사용자가 다른 프로그램을 사용중이더라도 해당 프로그램이 focus를 갖고

    > > > > 가장 앞으로 나오게 하고 싶습니다.

    > > > >

    > > > > 메신저 프로그램등이 메세지가 왔을때 폼을 만들고 그 폼이 가장 앞으로

    > > > > 나오게 하는것과 비슷한 기능입니다.

    > > > >

    > > > > 부탁드리겠습니다. 감사합니다.

  • Profile
    김지엽 2001.06.09 00:32
    해당폼이름.showmodal로 안되나요?



    강두헌 wrote:

    > 안녕하십니까..

    > 여기서 많은 도움을 받고 있습니다.

    > 나름대로 많이 뒤져보고 이리저리 해보았지만, 잘 안되서 질문드립니다.

    >

    > 프로그램이 실행중에 어떤 이벤트가 일어나면(특정시간이라든지 등등) 비록

    > 사용자가 다른 프로그램을 사용중이더라도 해당 프로그램이 focus를 갖고

    > 가장 앞으로 나오게 하고 싶습니다.

    >

    > 메신저 프로그램등이 메세지가 왔을때 폼을 만들고 그 폼이 가장 앞으로

    > 나오게 하는것과 비슷한 기능입니다.

    >

    > 부탁드리겠습니다. 감사합니다.

  • Profile
    강두헌 2001.06.09 01:08
    음.. 저 나름대로 자세히 설명한다구 했는데.. 설명이 충분하지 못한 모양입니다.



    어떤 프로그램이 실행중이구요. 사용자는 그 프로그램을 사용하지 않는 상황입니다.

    그냥 background로 실행중이지요. 이때 예를들면, 어떤 시간이 되면, 그 프로그램이

    맨 앞으로 나와서 사용자의 focus를 받는 거지요.



    제가 해본 방법은

    ShowWindow(handle, SW_RESTORE);

    SendMessage( Handle, WM_ACTIVATE, SC_RESTORE, 0 );



    뭐 그밖에 이것저것 해 보았지만, 그걸 여기 다 쓰기는 추잡스러워서..



    감사합니다.









    김지엽 wrote:

    > 해당폼이름.showmodal로 안되나요?

    >

    > 강두헌 wrote:

    > > 안녕하십니까..

    > > 여기서 많은 도움을 받고 있습니다.

    > > 나름대로 많이 뒤져보고 이리저리 해보았지만, 잘 안되서 질문드립니다.

    > >

    > > 프로그램이 실행중에 어떤 이벤트가 일어나면(특정시간이라든지 등등) 비록

    > > 사용자가 다른 프로그램을 사용중이더라도 해당 프로그램이 focus를 갖고

    > > 가장 앞으로 나오게 하고 싶습니다.

    > >

    > > 메신저 프로그램등이 메세지가 왔을때 폼을 만들고 그 폼이 가장 앞으로

    > > 나오게 하는것과 비슷한 기능입니다.

    > >

    > > 부탁드리겠습니다. 감사합니다.