본문 바로가기

C, C++, C#/MFC

mfc 다이얼로그 크기 변경 위치 이동

반응형

mfc 다이얼로그 크기 변경 위치 멤버변수 이동?? 정도로 설명 하면 될거같아요!

예를들어.... 힘들게 모두 만들었는데... 갑자기 에디트를 크게 해달라 하거나... 쨋든... 그런 요구를 받을 때가 생기기때문에!! 나름 유용하지 않을까 싶습니다.

CDialogExS.h, CDialogExS.cpp 파일은 첨부합니다.(소스에도 나름대로 엄청 상세히 설명을 작성 했습니다)

DialogExS.cpp
다운로드
DialogExS.h
다운로드

 

 

----------------------------------결과----------------------------------

                    

----------------------------------------------------------------------

이렇게 다이얼로그 크기 변경시 설정 값에 따라서 버튼 및  Static의 위치가 바뀌거나 크기가 커졌습니다.

이렇게 다이얼로그 크기가 변함에 따라서 다이얼로그 별로 다 크기 계산해서 원하는 위치 이동하고 사이즈도 크게해줘야 되는게 너무 

번거로워서 만들게 됬습니다.(사진으로 한번에 이해가 가실지...)

(※ 다이얼로그 크기가 바뀌면 버튼이 따라서 움직입니다)

 

반응형

 

1. 일단 다이얼로그에있는 버튼, Static등등을 멤버변수를 설정 해줘야합니다!!(멤버변수는 만들 줄 아시죠..?) 파란네모

2. 다이얼로그 속성에서 Border속성을 크기를 바꿀 수 있게  Resizing으로 바꿔줍니다.(빨간네모)

 

3. 위에서 만든 멤버변수가 .h에 추가 된 걸 보실수 있습니다.(도구에서 우측마우스 누른 후 멤버 추가 해줬습니다.)

4. 상위에 DialogExS.h를 include시켜줍니다.

 

5. .cpp파일로 이동후 ctrl+H를 눌른 후 CDialogEx -> CDialogExS 모두 변경!!

 

6. .cpp파일에서 OnInitDialog() 가서 

CreateMemberSize(3);

SetMoveMember(&m_staticA, MV_UP_DOWN);

SetMoveMember(&m_btn1, MV_LEFT_RIGHT);

SetMoveMember(&m_btn2, SIZE_ALL);

추가해줍니다.

 

CreateMemberSize - 내가 움직을 멤버변수의 갯수 입니다.

SetMoveMember - 내가 움직일 멤버변수의 "주소", "어떻게 변경 될 지"를 정해줍니다.

 

실행 후 다이얼로그 사이즈를 바꿔보면 다들 잘 따라오죠???

※ 설명이 매우 미흡했네요... 혹시 물어보실 말씀이 있으시면 댓글 남겨주세요!!

 

사실 노가다가 매우 귀찮아서.. 시간 여유 있을떄 만들어 봤어요

 

모두의 칼퇴를 바랍니다.

반응형