Winapi를 사용하여 "예에 대한"버튼을 어떻게 만들 수 있습니까?

StackOverflow https://stackoverflow.com/questions/820633

  •  03-07-2019
  •  | 
  •  

문제

Winapi를 사용하는 C로 작성된 레거시 응용 프로그램이 있습니다. 몇 가지 대화 상자에 "예의 모든 것"버튼을 추가하고 싶습니다. 불행히도 기존 MessageBox 함수는 사용자 정의 버튼이나 버튼 캡션을 허용하지 않습니다.

그렇게하는 가장 좋은 방법은 무엇입니까? 사용자 정의 버튼을 쉽게 추가 할 수있는 매끄러운 해킹이 있습니까? 아니면 자신만의 MessageBox 교체를 만들어야합니까?

도움이 되었습니까?

해결책 4

우리는 단지 자신의 대화 상자 대체 리소스 템플릿을 작성한 다음 대화 상자 ()을 호출하고 반환 값을 확인했습니다.

참조: http://msdn.microsoft.com/library/ms644996(v=vs.85).aspx#modal_box

다른 팁

Windows 2000 이후 Winapi에는 다른 종류의 메시지 상자가 있습니다. SHMessageBoxCheck.

표준을 표시 할 수 있습니다 MB_OKCANCEL/MB_YESNO/MB_OK-유형 MessageBox 해당 경우 기본 옵션을 지정하여 다시 표시하지 않는 옵션이 있습니다.

어쩌면 당신이 찾고있는 것이 아니라 Windows UI와 상당히 일치합니다.

Vista에서 대부분의 쉘의 "예"대화 상자의 대부분은 실제로 이런 식으로 작동합니다. "예/아니오 모두에게"라는 추가 버튼이 없습니다. 대신 "모든 항목에서 선택한 작업을 수행"확인란이 있습니다.

그러나 문서의 메모는 저를 걱정합니다.

이 기능은 Microsoft Windows XP 및 Windows Server 2003을 통해 사용할 수 있습니다. 후속 버전의 Windows에서 변경되거나 사용할 수 없습니다.

비슷하게 만들기 위해 텍스트 포장을 처리해야 할 수도 있습니다. MessageBox. 또한 MessageBox 기본 GUI 글꼴과 비교하여 다른 글꼴을 사용합니다. 대화 상자가 나타날 때 소리를 재생하는 것을 잊지 마십시오 :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top