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을 사용하고 있습니다.
|