저 코드 쓸 필요없이 폼의 FormStyle을 fsStayOnTop로 지정해주고, Dock에 StayOnTop 옵션을 true로 설정해주면 되네요..
ㅇㅇ 님이 쓰신 글 :
:
: while(1)
: {
: HWND hForeground;
: DWORD id, foreground_id;
:
: hForeground = GetForegroundWindow();
: if (hForeground != FormMain->Handle)
: {
: foreground_id = GetWindowThreadProcessId(hForeground, NULL);
: id = GetWindowThreadProcessId(FormMain->Handle, NULL);
: if (AttachThreadInput(id, foreground_id, TRUE))
: {
: BringWindowToTop(FormMain->Handle);
: AttachThreadInput(id, foreground_id, FALSE);
: }
:
: }
: }
:
:
: 현재 위에 있는 코드를 사용해서 도커를 맨 위에 위치하도록 하고 있습니다..
: FormStyle을 fsStayOnTop으로 설정하는 방식으로 하면 도커가 항상 맨 위에 위치하기는 하는데, 프로그램이 활성화 상태임에도 불구하고 DockItem이 활성화가 안되더라구요..
: 그래서 이 방식을 썼는데. 위에 있는 코드를 사용하면 도커가 띄워져 있는 상태에서 다른 프로그램을 활성화해서 사용할 경우 제약이 있네요..도커때문에 다른 프로그램 버튼 클릭했을 때 가끔 클릭이 안먹거나 그런거요..
:
: 제가 구현하고 싶은건 이건데요
: 1. 도커가 항상 맨 앞에 위치할 것
: 2. 맨 앞에 위치되어 있어도 다른 프로그램을 활성화 하여 사용할 수 있을 것
: 3. 도커가 활성화된 상태에서는 DockItem이 활성화 될 것
:
: 어떤 방식으로 구현하는게 좋을지 조언 부탁드립니다ㅠㅠ 도커 컴포넌트는 TMS의 advsmoothdock을 사용하고 있습니다.
|