2009-11-17 6 views
0

이 질문에 단어를 쓰는 방법에 대해 잘 모르기 때문에 문제를 설명하려고합니다.시스템의 가시 해상도를 확인하는 방법

내 VB 6 프로그램은 다시로드 할 때 기본 위치를 가질 수 있도록 레지스트리에 화면의 위치를 ​​저장합니다. 이 예상대로 작동하지만 문제가 발생했습니다. 나는 2 대의 모니터로 컴퓨터를 셋업했다. 두 번째 모니터를 뽑았을 때 그 다음날 창을 두 번째 화면으로 끌었습니다. 프로그램을로드 할 때마다 독에 표시되지만 양식 자체는 표시되지 않습니다.

두 번째 모니터의 공간에 숨어있는 것으로 나타났습니다 (또는 두 번째 모니터가 있어야 함). 이제 처음에는 두 번째 모니터를 연결하여 다시 잡았지만 나타나지 않았습니다. 모니터 설정은 주 모니터 (1)가 새 모니터 (2)의 왼쪽에 있도록 설정되었습니다. 나는 (1)의 왼쪽으로 (2)를 끌어 올려야했다. 그리고 나는 그것을 주 창으로 다시 끌 수 있었고 모든 것이 잘 동작했다. 나는 각 모니터 번호의 해상도가 그 자체에 비례한다고 생각했기 때문에 이것을 언급한다. 다중 모니터가 거대한 좌표 평면입니까?

내가 알고 싶은 것은 레지스트리 (Form.left 및 Form.top)에서 위치 번호를 가져 와서 시스템에서 사용할 수있는 것과 대조하여이를 확인하는 방법입니다. 이것은 큰 문제는 아니지만 고객에게 "로드 중입니다.하지만 찾을 수 없습니다."라는 질문을 받게 할 것입니다. 가능한 경우 이러한 전화를 피하고 싶습니다.

는 질문에 당신에게별로 모든

답변

0

VB에 대해 모르겠지만 원시 Win32 API를 호출하여 문제를 처리 할 수 ​​있습니다.

GetSystemMetrics (SM_CMONITORS)는 "실제"모니터와 의사 디스플레이 모니터를 구별해야하는 경우 모니터 수를 반환하거나 EnumDisplayMonitors()로 열거 할 수 있습니다.

MonitorFromPoint() 또는 MonitorFromRect() 또는 MonitorFromWindow()를 사용하여 지정된 지점에서 모니터를 식별 한 다음 GetMonitorInfo()를 사용하여 해당 모니터에 대한 가상 화면 좌표를 비롯한 정보를 반환하십시오. 그런 다음 원하는 모니터에 창을 배치 할 수 있습니다.

어떻게 두 번째 모니터가 없거나 전원이 꺼 졌는지 확실하게 감지하는 방법을 모르겠습니다. 설치 API (!)를 사용하면 SetupDiEnumDeviceInfo()를 사용하여 모니터 장치를 열거 할 수 있으며 SetupDiGetDeviceRegistryProperty()를 사용하여 각 전원 상태와 같은 정보를 검색 할 수 있습니다.

0

답변 감사하지만, 그들이 부딪 경우 유사한 미래의 문제 또는 고객과의 거래에 도움이 될 수.

작업 표시 줄 단추를 마우스 오른쪽 단추로 클릭하거나 Windows 7에서 Aero Peek 미리보기를 마우스 오른쪽 단추로 클릭하면 옵션이 표시됩니다. 그것을 클릭 한 다음 화살표 키 중 하나를 눌러도 상관 없습니다. 그 후 창은 움직일 수있는 모드가 될 것이고, 마우스와 움직 이기만하면됩니다. 화면에 돌아와서 제목 표시 줄을 드래그하는 것처럼 행동하게됩니다.

+0

예, 나는 그 이동 옵션이 ​​어떻게 작동하는지 정확하게 궁금해하고있었습니다. 양식을 끌기 위해 그것을 사용하려고했습니다. 정말로 일하지 않았다. 나는 뭔가를 놓친 것 같았다. 팁 주셔서 감사합니다. –

관련 문제