다음을 통해 공유


Rebar 컨트롤에 대한 정보

Rebar 컨트롤 자식 창에 대한 컨테이너 역할을 합니다. 하나 이상의밴드를 포함할 수 있으며 각 밴드는 그리퍼 막대, 비트맵, 텍스트 레이블 및 하나의 자식 창의 조합을 가질 수 있습니다. 애플리케이션은 자식 창(일반적으로 또 다른 컨트롤)을 리바 컨트롤 밴드(rebar control band)에 할당합니다. 리바 제어 띠의 위치를 동적으로 변경하면 리바 제어는 해당 띠에 할당된 자식 창의 크기와 위치를 관리합니다. 또한 애플리케이션은 대역에 대한 배경 비트맵을 지정할 수 있으며, rebar 컨트롤은 비트맵 위에 밴드의 자식 창을 표시합니다.

다음 스크린샷은 두 개의 밴드가 있는 철근 컨트롤을 보여 줍니다. 하나는 도구 모음을 포함하고 다른 하나는 콤보 상자를 포함합니다. 두 밴드 모두 이동 및 크기를 조정할 수 있는 그리퍼가 있습니다.

도구 모음이 포함된 밴드와 콤보 상자가 포함된 밴드가 있는 rebar 컨트롤을 보여 주는 대화 상자의 스크린샷

메모

rebar 컨트롤은 Comctl32.dll버전 4.70 이상에서 구현됩니다.

 

철근 밴드 및 자식 창문

애플리케이션은 RB_INSERTBANDRB_SETBANDINFO 메시지를 사용하여 rebar 밴드의 특성을 정의합니다. 이러한 메시지는 REBARBANDINFO 구조체의 주소를 lParam 매개 변수로 허용합니다. REBARBANDINFO 구조체 멤버는 지정된 밴드의 특성을 정의합니다. 밴드의 특성을 설정하려면 cbsize 멤버를 설정하여 구조체의 크기를 바이트 단위로 지정합니다. 그런 다음 fMask 멤버를 설정하여 애플리케이션이 채우고 있는 구조체 멤버를 나타냅니다.

자식 창을 밴드에 할당하려면 REBARBANDINFO 구조체의 fMask 멤버에 RBBIM_CHILD 플래그를 포함하고 hwndChild 멤버를 자식 창의 핸들로 설정합니다. 애플리케이션은 cxMinChildcyMinChild 멤버에서 자식 창의 최소 허용 너비와 높이를 설정할 수 있습니다.

리바 컨트롤이 파괴되면 그 안의 밴드에 할당된 모든 자식 창이 삭제됩니다. 컨트롤이 해당 밴드에 할당된 자식 창을 삭제하지 않도록 하려면 RB_DELETEBAND 메시지를 전송하여 밴드를 제거한 다음, RB_SETPARENT 메시지를 사용하여 부모를 다른 창으로 다시 설정한 후 철근 컨트롤을 삭제합니다.

Rebar 제어 사용자 인터페이스

RBBS_FIXEDSIZE 스타일을 사용하는 것을 제외하고 모든 리바 컨트롤 밴드는 크기를 조정할 수 있습니다. 컨트롤 내의 밴드 순서를 조정하거나 변경하려면 밴드의 그리퍼 막대를 클릭하고 끕니다. 리바 컨트롤은 자동으로 크기를 조정하고 해당 밴드에 할당된 자식 창의 위치를 재배치합니다. 또한 밴드 텍스트가 있는 경우 밴드 텍스트를 클릭하여 밴드 크기를 전환할 수 있습니다.

Rebar 컨트롤의 이미지 목록

애플리케이션이 rebar 컨트롤이 있는 이미지 목록을 사용하는 경우 컨트롤에 밴드를 추가하기 전에 RB_SETBARINFO 메시지를 보내야 합니다. 이 메시지는 REBARINFO 구조체의 주소를 lParam 매개 변수로 허용합니다. 메시지를 보내기 전에 cbSize 멤버를 구조체의 크기(바이트)로 설정하여 REBARINFO 구조를 준비합니다. 그런 다음, rebar 컨트롤이 밴드에 이미지를 표시하려면 fMask 멤버를 RBIM_IMAGELIST 플래그로 설정하고 이미지 목록 핸들을 himl 멤버에 할당합니다. rebar에서 밴드 이미지를 사용하지 않는 경우 fMask 0으로 설정합니다.

철근 제어 메시지 전달

rebar 컨트롤은 모든 WM_NOTIFY 창 메시지를 부모 창으로 전달합니다. 또한 rebar 컨트롤은 WM_CHARTOITEM, WM_COMMAND등의 대역에 할당된 창에서 전송된 모든 메시지를 전달합니다.