none
cmfctoolbar에 추가한 cmfctoolbarcombobox의 사이즈를 프레임에 맞춰 넣으려고 합니다. RRS feed

  • 질문

  • 윈도우 탐색기와 닮음꼴의 프로그램을 만들고 있는데요.

    툴바에 넣은 combobox의 크기를 프레임에 맞추고 싶습니다.

    가령 윈도우 탐색기에서는 프레임의 크기를 줄이면 파일경로 부분만 프레임 크기에 맞춰 사이즈 크기가 바뀌는데요...

    이를 구현하려면 어떻게 해야 할까요?

    2016년 4월 25일 월요일 오전 6:06

모든 응답

  • 윈도우 사이즈가 변경되면 WM_SIZE 메시지가 발생합니다.

    콤보박스를 소유한 윈도우의 WM_SIZE 메시지 핸들러에서(MFC 에서는 OnSize 함수)

    변경된 윈도우 사이즈에 맞게 콤보박스 너비를 변경해주는 코드를 넣으시면 되겠네요.

    (MoveWindow 또는 SetWindowPos 함수 호출)

    2016년 4월 25일 월요일 오전 6:52
  • CMFCToolBarComboBoxButton 버튼에는 MoveWindow ,SetWindowPos 같은 함수를 찾을수 없었습니다.

    그리고 MyFrame::OnToolbarReset 에서 CMyMFCToolBarComboBoxButton을 생성할때를 제외하면, 해당 컨트롤 및 GetComboBox()등을 통하여 얻은 자식 컨트롤을 제어하려고 하면 엑세스 위반이 발생했다면서 문제가 발생하는데 이것을 해결하는데 애를 먹고 있습니다.

    OnToolbarReset에서 버튼을 생성할 때 이외에, 해당 CMyMFCToolBarComboBoxButton객체에 접근하기만 하면 엑세스 위반 문제가 발생하는 문제의 해결법을 알고 싶습니다!

    답변 감사합니다.

    2016년 4월 25일 월요일 오전 8:20