다음을 통해 공유


ControlStyles 열거형

정의

컨트롤의 스타일과 동작을 지정합니다.

이 열거형은 멤버 값의 비트 조합을 지원합니다.

public enum class ControlStyles
[System.Flags]
public enum ControlStyles
[<System.Flags>]
type ControlStyles = 
Public Enum ControlStyles
상속
ControlStyles
특성

필드

Name Description
ContainerControl 1

이 경우 true컨트롤은 컨테이너와 유사한 컨트롤입니다.

UserPaint 2

이 경우 true컨트롤은 운영 체제가 아닌 자체를 그립니다. Paint 이 경우 false이벤트가 발생하지 않습니다. 이 스타일은 .에서 Control파생된 클래스에만 적용됩니다.

Opaque 4

이면 true컨트롤이 불투명하게 그려지고 배경이 그려지지 않습니다.

ResizeRedraw 16

이 경우 true컨트롤의 크기가 조정될 때 다시 그려집니다.

FixedWidth 32

이 경우 true자동 크기 조정 시 컨트롤의 너비가 고정됩니다. 예를 들어 레이아웃 작업에서 새 Font컨트롤을 수용하도록 컨트롤의 크기를 조정하려고 하면 컨트롤은 Width 변경되지 않은 상태로 유지됩니다.

FixedHeight 64

이 경우 true자동 크기 조정 시 컨트롤의 높이가 고정되어 있습니다. 예를 들어 레이아웃 작업에서 새 Font컨트롤을 수용하도록 컨트롤의 크기를 조정하려고 하면 컨트롤은 Height 변경되지 않은 상태로 유지됩니다.

StandardClick 256

이 경우 true컨트롤은 표준 Click 동작을 구현합니다.

Selectable 512

이면 true컨트롤이 포커스를 받을 수 있습니다.

UserMouse 1024

컨트롤이 자체 마우스 처리를 수행하고 마우스 이벤트가 운영 체제에서 처리되지 않는 경우 true

SupportsTransparentBackColor 2048

이 경우 true컨트롤은 투명도를 BackColor 시뮬레이트하기 위해 알파 구성 요소가 255보다 작은 값을 허용합니다. 투명도는 비트가 설정 true 되고 부모 컨트롤이 파생Control된 경우에만 UserPaint 시뮬레이트됩니다.

StandardDoubleClick 4096

이 경우 true컨트롤은 표준 DoubleClick 동작을 구현합니다. 비트가 .로 설정true되지 않은 경우 StandardClick 이 스타일은 무시됩니다.

AllPaintingInWmPaint 8192

이 경우 true컨트롤은 깜박임을 줄이기 위해 창 메시지 WM_ERASEBKGND 무시합니다. 이 스타일은 비트가 .로 설정된 true경우에만 UserPaint 적용해야 합니다.

CacheText 16384

이 경우 true컨트롤은 필요할 때마다 텍스트 복사본을 가져오 Handle 지 않고 유지합니다. 이 스타일의 기본값은 .입니다 false. 이 동작은 성능을 향상시키지만 텍스트를 동기화된 상태로 유지하기가 어렵습니다.

EnableNotifyMessage 32768

이 경우 true컨트롤WndProc(Message)OnNotifyMessage(Message) 전송된 모든 메시지에 대해 메서드가 호출됩니다. 이 스타일의 기본값은 .입니다 false. EnableNotifyMessage 는 부분 신뢰에서 작동하지 않습니다.

DoubleBuffer 65536

true퍼에서 그리기를 수행하고 완료되면 결과가 화면에 출력됩니다. 이중 버퍼링은 컨트롤의 다시 그리기로 인한 깜박임을 방지합니다. 로 설정한 DoubleBuffertrue경우 설정 UserPaintAllPaintingInWmPaint 설정해야 true합니다.

OptimizedDoubleBuffer 131072

이 경우 true컨트롤이 화면에 직접 그리는 것이 아니라 버퍼에 먼저 그려져 깜박임을 줄일 수 있습니다. 이 속성을 true설정 하는 경우도 설정 AllPaintingInWmPaint 해야 합니다 true.

UseTextForAccessibility 262144

컨트롤 Text 의 속성 값(설정된 경우)이 컨트롤의 기본 활성 접근성 이름 및 바로 가기 키를 결정하도록 지정합니다.

ApplyThemingImplicitly 524288

특정 UI 관련 색 모드(어두운 모드/밝은 모드)의 경우 컨트롤이 적절한 테마를 자동으로 적용하도록 옵트인할 수 있습니다. 특히 시스템 관리 스크롤 막대를 활용하는 컨트롤은 이 설정의 이점을 활용할 수 있습니다. 이 설정을 사용하면 일부 win32 컨트롤 테마 렌더러가 특정 테마에 대해 비활성 상태가 됩니다.

예제

다음 예제에서는 이벤트를 사용하는 ControlStyles 방법을 보여 줍니다 StyleChanged .

private:
   // Set the 'FixedHeight' and 'FixedWidth' styles to false.
   void MyForm_Load( Object^ /*sender*/, EventArgs^ /*e*/ )
   {
      this->SetStyle( ControlStyles::FixedHeight, false );
      this->SetStyle( ControlStyles::FixedWidth, false );
   }

   void RegisterEventHandler()
   {
      this->StyleChanged += gcnew EventHandler( this, &MyForm::MyForm_StyleChanged );
   }

   // Handle the 'StyleChanged' event for the 'Form'.
   void MyForm_StyleChanged( Object^ /*sender*/, EventArgs^ /*e*/ )
   {
      MessageBox::Show( "The style releated to the 'Form' has been changed" );
   }
// Set the 'FixedHeight' and 'FixedWidth' styles to false.
private void MyForm_Load(object sender, EventArgs e)
{
   this.SetStyle(ControlStyles.FixedHeight, false);
   this.SetStyle(ControlStyles.FixedWidth, false);
}

private void RegisterEventHandler()
{
   this.StyleChanged += new EventHandler(MyForm_StyleChanged);
}

// Handle the 'StyleChanged' event for the 'Form'.
private void MyForm_StyleChanged(object sender, EventArgs e)
{
   MessageBox.Show("The style releated to the 'Form' has been changed");
}
' Set the 'FixedHeight' and 'FixedWidth' styles to false.
Private Sub MyForm_Load(sender As Object, e As EventArgs)
   Me.SetStyle(ControlStyles.FixedHeight, False)
   Me.SetStyle(ControlStyles.FixedWidth, False)
End Sub

Private Sub RegisterEventHandler()
   AddHandler Me.StyleChanged, AddressOf MyForm_StyleChanged
End Sub

' Handle the 'StyleChanged' event for the 'Form'.
Private Sub MyForm_StyleChanged(sender As Object, e As EventArgs)
   MessageBox.Show("The style releated to the 'Form' has been changed")
End Sub

설명

컨트롤은 다양한 속성 및 메서드에서 이 열거형을 사용하여 기능을 지정합니다. 컨트롤은 메서드를 호출 SetStyle 하고 적절한 ControlStyles 비트(또는 비트) 및 부울 값을 전달하여 비트를 설정하여 스타일을 사용하도록 설정할 수 있습니다. 예를 들어 다음 Visual Basic 코드 줄은 이중 버퍼링을 사용하도록 설정합니다.

myControl.SetStyle(UserPaint Or AllPaintingInWmPaint Or DoubleBuffer, True)

AllPaintingInWmPaint 비트가 설정된 true경우 창 메시지 WM_ERASEBKGND 무시되고 창 메시지 WM_PAINT 직접 메서드와 OnPaint 메서드가 모두 OnPaintBackground 호출됩니다. 이는 일반적으로 다른 컨트롤이 WM_ERASEBKGND 창 메시지를 컨트롤로 보내지 않는 한 깜박임을 줄입니다. WM_ERASEBKGRND 창 메시지를 보내 SupportsTransparentBackColor와 유사한 의사 투명 효과를 얻을 수 있습니다. 예를 들어 평평한 모양으로 ToolBar 이 작업을 수행합니다.

이중 버퍼링을 완전히 사용하도록 설정하려면 OptimizedDoubleBuffer 및 AllPaintingInWmPaint 비트를 .로 설정할 수 있습니다 true. 그러나 동일한 결과를 생성하는 이중 버퍼링을 사용하도록 설정하는 기본 방법은 컨트롤의 DoubleBuffered 속성을 로 설정하는 것입니다 true.

SupportsTransparentBackColor 비트가 설정 true되고 BackColor 알파 구성 요소가 255 OnPaintBackground 보다 작은 색으로 설정된 경우 부모 컨트롤에 배경을 그리도록 요청하여 투명도를 시뮬레이션합니다. 이것은 진정한 투명성이 아닙니다.

메모

컨트롤과 부모 사이에 다른 컨트롤이 있는 경우 현재 컨트롤은 가운데에 컨트롤을 표시하지 않습니다.

UserMouse 비트가 설정된 true경우 다음 메서드는 여전히 호출Control.OnMouseDown됩니다. , Control.OnMouseUp, Control.OnMouseEnter, Control.OnMouseMoveControl.OnMouseHover, Control.OnMouseLeaveControl.OnMouseWheel.

컨트롤을 클릭하면 StandardClick 비트가 메서드로 trueControl.OnClick 설정되고 이벤트가 발생합니다 Control.Click . 컨트롤을 두 번 클릭하고 StandardClick 및 StandardDoubleClick 비트가 모두 설정 true되면 클릭이 이벤트에 전달됩니다 DoubleClick . 그런 다음 메서드가 Control.OnDoubleClick 호출되고 이벤트가 발생합니다 Control.DoubleClick . 그러나 컨트롤은 StandardClick 및 StandardDoubleClick 비트 값에 관계없이 직접 호출하거나 OnDoubleClick 호출 OnClick 할 수 있습니다. 컨트롤 클릭 및 두 번 클릭 동작에 대한 자세한 내용은 항목 및 Control.DoubleClick 항목을 참조 Control.Click 하세요.

UseTextForAccessibility 비트가 설정되고 컨트롤의 Text 속성에 값이 있는 경우 해당 컨트롤의 Text 속성 값에 따라 컨트롤의 기본 활성 접근성 이름 및 바로 가기 키가 결정됩니다. 그렇지 않으면 이전 Label 컨트롤의 텍스트가 대신 사용됩니다. 이 스타일은 기본적으로 설정됩니다. 이러한 컨트롤의 속성이 활성 접근성에서 사용되지 않도록 Text 이 스타일과 ComboBox같은 TextBox 특정 기본 제공 컨트롤 형식을 다시 설정합니다.

적용 대상

추가 정보