|
폼클래스가 제공하는 기능에 오류가 있다면 당연히 win32 api 함수를 직접 호출해서 구해야 합니다.
int width = GetSystemMetrics(SM_CXSCREEN);
int height = GetSystemMetrics(SM_CYSCREEN);
함수 정도가 될듯 합니다.
금목암[손효철] 님이 쓰신 글 :
: 김흐린 님이 쓰신 글 :
: : 윈도우10 해상도 3840 x 2160(권장) 으로 사용중입니다.
: : 현재 모니터 환경의 해상도를 받아오는 간단한 문제 인데
: : Screen->Width, Screen->Height 따위의 얘기입니다..
: :
: : c++builder6 작업중에 이걸이용해서 하니 이상하게 결과값이 작게 나오더라구요
: :
: : 혹시나해서 다른버젼에서도 테스트를 해보았는데
: : 코드는 동일합니다 아래와같이 간단하게 해상도를 출력하게끔 하고
: :
: : __fastcall TForm1::TForm1(TComponent* Owner)
: : : TForm(Owner)
: : {
: : memo_log->Lines->Add(AnsiString(Screen->Width) +" x " + AnsiString(Screen->Height));
: : }
: :
: : c++builder6 와 10.1에서 각각 테스트해보았습니다.
: :
: : 현재 3840x2160 사용중인데
: : c++builder6에서는 2560 x 1440 으로 결과값이나옵니다.
: : c++builder10.1에서는 3840 x 2160으로 정상값이 출력됩니다.
: :
: : 이게혹시나 뭔가 설정상의 문제나 (c++builder6에서) 그런게있나싶어
: : 해상도를 1920 x 1080으로 바꾼뒤에 다시 테스트해보니
: :
: : c++builder6 와 c++builder 10.1 양쪽에서 모두 1920 x 1080으로 정상값이 출력됩니다.
: :
: :
: : 종합하자면 c++builder6에서는 2560x1440 이상의 해상도가 정상적으로 잡히지 않는다는얘기인데..
: : 혹시 제가 모르는 설정이나 놓친부분이 있을까요...
: : ===========================
: c++builder6 나왔을때 os가 그런 해상도 지원하는 그래픽카드 가 없었습니다
: 그러니 언어도 파라메터를 한계 잡아둔것 같습니다
: 있는지 없는지도 모르는 해상도 카드까지 파라메터로 잡아두진 않았겟죠
: 그리고 윈도우 api도 마찬가지로 계속 발전해서 일부는 이전과 달라졌습니다
:
:
:
: :
|