코드.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | // 주모니터의 가로 세로 픽셀수. int screen_x = GetSystemMetrics(SM_CXSCREEN); int screen_y = GetSystemMetrics(SM_CYSCREEN); // 주모니터의 작업표시줄 제외한 영역 rect CRect rect_workarea; ::SystemParametersInfo(SPI_GETWORKAREA, 0, &rect_workarea, 0); // 작업표시줄 영역 구하기, 윈도우타이틀 Shell_TrayWnd임. HWND hWnd_TrayWnd = ::FindWindow(_T("Shell_TrayWnd"), NULL); CRect rect_TrayWnd; ::GetWindowRect(hWnd_TrayWnd,&rect_TrayWnd); // 작업표시줄의 트레이Notify 영역구하기. 윈도우 타이틀 TrayNotifyWnd 임. HWND hWnd_TrayNotifyWnd = ::FindWindowEx(hWnd_TrayWnd,NULL,_T("TrayNotifyWnd"), NULL); CRect rect_TrayNotifyWnd; ::GetWindowRect(hWnd_TrayNotifyWnd, &rect_TrayNotifyWnd); // 출력하기. CString cst_xy; cst_xy.Format(_T(" screen_x=%d, screen_y=%d \n workarea_right=%d, workarea_bottom=%d \n TrayWnd_left=%d, TrayWnd_top=%d, TrayWnd_right=%d, TrayWnd_bottom=%d \n TrayNofifyWnd_left=%d, TrayNotifyWnd_top=%d, TrayNofifyWnd_right=%d, TrayNotifyWnd_bottom=%d"), screen_x, screen_y, rect_workarea.right, rect_workarea.bottom, rect_TrayWnd.left, rect_TrayWnd.top, rect_TrayWnd.right, rect_TrayWnd.bottom, rect_TrayNotifyWnd.left, rect_TrayNotifyWnd.top, rect_TrayNotifyWnd.right,rect_TrayNotifyWnd.bottom); AfxMessageBox(cst_xy); |
Shell_TrayWnd : 아래 노랑색 부분(시작 메뉴있는 왼쪽끝까지) , TrayNotifyWnd : 아래 파랑색 부분.
결과 1.
환경 : win10, 64bit. 화면해상도 1920x1080, 모니터 6개 .
(주 모니터 정보만 확보됨.)
결과 2.
환경 : win7, 64bit, 화면해상도 1280x1024 , 모니터1개 .
///752.
'VisualStudio.C++.C# > 코딩팁,함수활용,단편' 카테고리의 다른 글
VC++. 대화상자 윈도우 좌표 지정하기. (0) | 2016.04.20 |
---|---|
VC++. 다중 모니터 , 화면 좌표 기준 . GetWindowRect (0) | 2016.04.20 |
VC++. 프로젝트 리소스에 비트맵 추가. (0) | 2016.04.19 |
MFC. CFileFind - 파일 찾기 나열 하기. (0) | 2016.04.17 |
USB HID 라이브러리. hid.lib, hidsdi.h, hidpi.h, hidusage.h (0) | 2016.04.04 |
댓글