2012-06-21 5 views
6

내 winform에 도움말 버튼을 추가 할 수 있지만 maxmimize 및 minimize 버튼을 유지할 수 있지만 Windows 표준은 도움말 버튼을 표시하지 않도록 설정하는 것입니다. .도움말 버튼을 추가하지만 최대화 및 최소화 유지

비슷한 질문이 이미 있습니다 : How to include help '?' in title bar of winform - 하지만, 질문을 사람이 도움을 표시하고자하는 2 개 버튼을 제거 만족이다 질문한다.

저기에 내가 최대, 최소 및 닫기 버튼을 동시에 가질 수 있습니까?

감사합니다.

+1

예,하지만 그 대답을 읽었습니까? 제목 표시 줄을 스스로 다시 만들어야한다는 것을 암시합니다. 그렇게 작은 이익을 위해 많은 일이 있습니다. – LarsTech

+0

@LarsTech - 나는 국경을 완전히 recoding하지 않는 방법이 있기를 바랐다. – Axxelsian

답변

6

Windows는이 두 가지를 모두 표시하는 것을 지원하지 않습니다. 해결 방법은 동일한 작업을 트리거하는 고유 한 단추를 제공하는 것입니다. 오른쪽 상단 모서리 가까이에 놓으십시오. 표준 도움말 버튼처럼 WM_SYSCOMMAND 메시지를 보내서이 작업을 트리거합니다. 좋아요 :

private void Help_Click(object sender, EventArgs e) { 
     Help.Capture = false; 
     SendMessage(this.Handle, WM_SYSCOMMAND, (IntPtr)SC_CONTEXTHELP, IntPtr.Zero); 
    } 

    private const int WM_SYSCOMMAND = 0x112; 
    private const int SC_CONTEXTHELP = 0xf180; 
    [System.Runtime.InteropServices.DllImport("user32.dll")] 
    private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp); 

버튼 이름이 "도움말"이라고 가정합니다.

+0

동일한 작업을 트리거하기 위해 만드는 버튼을 사용할 수 있다는 것을 알지 못했습니다. 감사. – Axxelsian

+0

실제로, Windows는 최신 버전의 Word를 열어 볼 수있는 것처럼 두 가지를 모두 지원하는 것처럼 보입니다. 실제로, 그들은 심지어 리본 제어를 위해 다른 버튼을 거기에 넣습니다. 어떤 이유로 Windows Forms에서 제대로 지원되지 않습니다 ... – glopes

+2

Office 응용 프로그램은 표준 Windows 창 프레임이 아닌 사용자 지정 프레임을 사용합니다. 제품에 대해 수백 명의 프로그래머가 작업 할 때 할 수있는 좋은 일. –

1

이렇게하는 한 가지 방법은 나만의 테두리를 그리는 것입니다.

FormBorderStyle = None 

이제 자막 영역을 구성하십시오. 드래그 크기 조정 이벤트, 둥근 모서리를 원한다면 투명성 등을 처리해야하기 때문에 사소하지 않습니다.

관련 문제