2009-07-09 2 views
0

응용 프로그램의 창 위치를 확인하려고합니다. SetWindowPos() 특정 크기로 특정 위치에 창 위치를 설정할 것이라고 알아요. 이 정보를 검색하고 싶지만 거기에 몇 가지 부정적인 값이 있음을 알았습니다. 이 값을 레지스트리에 저장하고 다음 인스턴스에로드하면 크기와 배치 정보를 정확하게 복제 할 수 없습니다. 이것은 심지어 가장 먼저 사용되는 기능입니다.MFC : GetWindowRect 사용법

감사합니다.

답변

3

창 위치뿐 아니라 창 상태 (최소화, 최대화 등)가있는 WINDOWPLACEMENT 구조를 얻으려면 GetWindowPlacement 메서드를 호출해야합니다.

차례로이 값을 위치 값과 함께 레지스트리에 저장하고 레지스트리에서 값을 읽을 때 창의 상태를 설정해야합니다.

+0

처음으로 WINDOWPLACEMENT 구조체를 설정할 때이 구조체의 길이 요소를 설정하는 방법을 알지 못합니다. 이 경우이 요소에 대해 수행해야 할 작업 (다른 요소와 유사 함)은 무엇입니까? – stanigator

+0

왜이 사실을 알지 못했습니까? sizeof (wp)를 사용하여 얻을 수있는 바이트의 구조체 길이입니다. 여기서 wp는 WINDOWPLACEMENT 구조체 변수입니다. – casperOne

2

예, GetWindowRect는 원하는 기능입니다. 음수 값은 창이 기본 모니터의 위 또는 왼쪽에있는 다중 모니터 시스템에서만 가능해야합니다.

SetWindowPos는 윈도우의 부모 윈도우를 기준으로 위치를 설정하므로 호출하기 전에 좌표를 조정해야합니다.