|
답변 감사히 잘 보았습니다.
Offset 에 대해 조금만 덧붙여 봅니다.
옵션으로 들어가 있는 X와 Y는 MessageDlgPos의 센터값이 아니라 Left와 Top값입니다.
그래서 MessageDlgPos의 정확한 Width와 Height를 아시면 X와 Y값을 구하실 수 있습니다.
만약 MessageDlgPos의 Width를 W, Height를 H라고 한다면
X = Form1->Left + (Form1->Width - W) / 2;
Y = Form1->Top + (Form1->Height - H) / 2;
저의 경우, MessageDlgPos의 Width = 360, Height = 100 정도였습니다.
감사합니다.
성낙현 님이 쓰신 글 :
: ShowMessage에서는 켑션이나 출력위치를 조정할수 없습니다. (내가 알기론.. -.-a)
:
: 출력위치를 임의 지정 하시려면..
:
: MessageDlgPos를 사용하시면 됩니다.
:
: MessagePos(메세지, 박스타입, 출력버튼, 도움말 컨텍스트, X 좌표, Y 좌표);
:
: 사용예는 다음과 같습니다.
:
: MessageDlgPos("Are you there?",mtError, TMsgDlgButtons() << mbYes << mbNo, 0, 10, 10);
:
: 이넘을 폼의 가운데로 표시할려면 현재 폼의 위치를 계산해서 X, Y 입력해 주면 되겠지용..
:
: 폼의 가운데를 알아내는 공식..
:
: X = Form1->Left + (Form1->Width / 2);
: Y = Form1->Top + (Form1->Height / 2);
:
: 그러나.. 위의 값 그대로 대입 하게되면 폼이 가운데로 안가요.. -.-; 해보시면 압니다.
:
: 결국.. 적당히 오프셋을 줘야 하는데.. 허허..
:
: X = X - XOffSet;
: Y = Y - YOffSet;
:
: 암튼 그렇습니다..
:
: 근데.. 요넘도 단점이 하나 있는데 켑션내용을 변경할수 없다는점 입니다.
:
: 켑션을 바꿀수 있는 유일한 박스는 Application->MessageBox 인데.. 이넘역시 위치 지정이 안됩니다.
:
: 결국 위치지정과 켑션도 마음데로 바꿀수 있는 대화상자는 없단 이야기군요.. ^^a
:
: VCL로 함 만들어 볼까요? -.-;
:
: 움.. 만들면 꽤 유용하긴 할듯 하네요..
:
: 병아리 님이 쓰신 글 :
: : 안녕하세요!
: : 오늘도 여전히질문만하는병아리입니다..
: : 다이얼로그메세지를 출력했을때 화면중앙에 나타나는데요..
: : 이것을 폼중앙에 나타나게할려면 어떻게해야하나요?
: : 시원한 답변 부탁드립니다...
: : 빌더 넘잼있음..... ㅎㅎㅎ
: : 그럼 모두모두 좋은날되세요..
: :
|