Q&A

  • 컴보박스 중에..이미지 들어가는..거..-.-;
안녕하셔요..영원한 델초보 어린왕자입니다.



컴보박스중에요..

스트링앞에 이미지 넣을수 있는 컴보 박스 없나여?



예를 들면..익스플로러의 주소창 같은..컴보박스..



대부분 OpenDialog의 디렉토리창도 이미지가 나오잖아요..



혹시 구현하는 방법 있나여?



갈켜주셔여..

1  COMMENTS
  • Profile
    kuma 2001.06.21 05:28
    간단한 샘플파일을 올리려고 했는데 파일을 올릴수가 없군요...

    여기에 직접샘플소스를 올릴께요..

    {--------------------------------------------------------------------

    ComnboBox Style -> csOwnerDrawVariable ( 높이 가변 )

    or

    csOwnerDrawFixed ( 높이 고정 )

    Event -> OnDrawItem

    --------------------------------------------------------------------}

    procedure

    TForm1.CBDrawItem

    (

    Control: TWinControl;

    Index: Integer;

    Rect: TRect;

    State: TOwnerDrawState

    );

    var

    Bit: TBitMap;

    begin

    with CB.Canvas do

    begin

    FillRect( Rect );

    {}

    BIt := TBitMap.Create;

    try

    Bit.LoadFromFile( 'a.bmp' );

    { 대충해서 그림이 짤릴거에요 }

    BitBlt( Handle,

    Rect.Left,

    Rect.Top,

    15,

    15,

    Bit.Canvas.Handle,

    0,

    0,

    SRCCOPY );

    finally

    Bit.Free;

    end;

    {}

    (*-------------------------------------------------

    다른 방법으로는

    imagelst를 이용하는 방법( 미리 imagelist에 저장 )

    {}--{} : ImageList1.Draw( CB.Canvas,

    Rect.Left,

    Rect.Top,

    ImageIndex{imagelist index},

    True );

    --------------------------------------------------*)

    TextOut(Rect.Left+17,Rect.Top,CB.Items[Index]);

    end;



    end;



    procedure

    TForm1.Button1Click

    (

    Sender: TObject

    );

    begin

    CB.Items.Add( 'aaa' );

    end;

    그럼 수고하세요....





    어린왕자 wrote:

    > 안녕하셔요..영원한 델초보 어린왕자입니다.

    >

    > 컴보박스중에요..

    > 스트링앞에 이미지 넣을수 있는 컴보 박스 없나여?

    >

    > 예를 들면..익스플로러의 주소창 같은..컴보박스..

    >

    > 대부분 OpenDialog의 디렉토리창도 이미지가 나오잖아요..

    >

    > 혹시 구현하는 방법 있나여?

    >

    > 갈켜주셔여..