개발자 '쑥말고인절미'

[에러] MFC Dialog Create 함수 호출 시 에러 발생 본문

STUDY/C++ & MFC

[에러] MFC Dialog Create 함수 호출 시 에러 발생

쑥말고인절미 2022. 6. 22. 09:58

회사 업무를 시작하려고 하니 시작부터 문제가 발생했다. 작성한 코드라고는 겨우 4줄뿐이었다. 디버그모드로 돌려서 어디서 에러가 나는가 했더니 뭐 생각도 못한 부분에서 아래와 같이 에러가 발생하고 있었는데 나는 저 부분에 값을 추가해준 적이 없다. 정말 단순히 Dialog Create() 메소드만 호출했을 뿐이었다... 소스가 잘못된건가 한참 살펴봤지만 정답은 다른 곳에 있었다.

에러화면

아래 참고한 링크의 내용을 보고 내가 추가한 다이얼로그와 기존에 있던 다이얼로그의 속성을 비교하면서 다른 곳이 있는지 찾아보게 되었고 Style 부분에서 다른 것을 발견할 수 있었다. 기존 다이얼록그에는 Style이 Child로 되어 있었고 내가 추가한 다이얼로그는 Popup으로 되어 있었다. Popup으로 되어 있던 부분을 Child로 변경해주고 나니 에러가 말끔히 사라졌다.

기존에 있던 다이얼로그
내가 추가한 다이얼로그

찾아보니 Style속성의 Overlapped와 Popup은 부모를 벗어나 새로운 다이얼로그를 띄우고 Child는 버튼처럼 하나의 컨트롤로 인식되어 부모 내부에 종속하게 된다. 보통 Popup과 Child를 많이 사용한다는데 Popup은 윈도우 전체화면을 활용할 수 있고, Child는 부모 다이얼로그 내부에서만 움직일 수 있다고 한다. 나는 부모 다이얼로그 안에서 작동하는 다이얼로그를 구현중이었기 때문에 Child 속성이 맞는 것이었다.


참고링크

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sdragoon&logNo=150034008176 

 

MFC에서 Dialog의 Create함수 호출시 실패하는 경우..

작업중인 프로그램에 새로운 기능이 필요하여 Dialog를 추가할 일이 생겼다. 그래서 열심히 Dialog 디자...

blog.naver.com

https://zadd.tistory.com/8

 

[MFC] 다이얼로그 Style 속성 (Overlapped, Popup, Child) 차이

다이얼로그를 생성한 후에 Style 속성을 보면 다음과 같이 3가지의 속성이 있다. (Overlapped, Popup, Child) Overlapped 와 Popup은 부모를 벗어나 새로운 다이얼로그를 띄운다. 다이얼로그를 띄울 때 차이점

zadd.tistory.com