C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[634] ComboBox의 버튼 크기 늘리기
허정주 [tinydew4] 8463 읽음    2007-03-17 18:00
델마당에 콤보박스, 리스트 박스 등의 스크롤 바와 버튼 크기 변경하는 방법이 올라와있어서
C++ 코드로 바꿔봤습니다. 조금의 수정도~
수정내용은 이전 크기를 반환하여 복구가 가능하도록 하였습니다.
(변환하고 종료하면 복구가 안되어 매우 난감합니다;;)

사용은
// 기본값 기억용 변수
TSize DefSize;

// 크기 변경 코드 (폰트 크기에 비례하게 설정했습니다.)
// Width, Height 가 같을 시 Height 값을 입력하지 않거나 -1로 설정하면 Width 로 참조하게되있습니다.
DefSize = ResizeScrollButton( Font->Size << 1 );

// 크기 복구 코드, 기억 해 놓은 값으로 변환
ResizeScrollButton( DefSize.cx, DefSize.cy );


TSize __fastcall ResizeScrollButton( const int &ScrollWidth, const int &ScrollHeight = -1 )
{
    #define SIZE_NCM 340

    TSize Before;
    TNonClientMetrics NonClient;

    try
    {
        NonClient.cbSize = SIZE_NCM;
        ::SystemParametersInfo( SPI_GETNONCLIENTMETRICS, SIZE_NCM, &NonClient, 0 );
        Before.cx = NonClient.iScrollWidth;
        Before.cy = NonClient.iScrollHeight;

        NonClient.iScrollWidth = ScrollWidth;
        NonClient.iScrollHeight = ( ScrollHeight >= 0 ? ScrollHeight : ScrollWidth );
        ::SystemParametersInfo( SPI_SETNONCLIENTMETRICS, SIZE_NCM, &NonClient, SPIF_SENDCHANGE );
    }
    __finally
    {
        ::LockWindowUpdate( NULL );
    }

    return Before;
}



참조글 : http://www.delmadang.com/cwb-bin/CrazyWWWBoard.exe?db=dmdlec3&mode=read&num=4596&page=1&backdepth=1
허정주 [tinydew4]   2007-03-17 18:00 X
기존 프로젝트에 추가 시켜봤는데 동작하지 않는군요-_-;;; 매우 난감
이 코드만 동작시키면 되는데... 다른 것과 충돌할 만한 코드가 있는지...참;;

+ -

관련 글 리스트
634 ComboBox의 버튼 크기 늘리기 허정주 8463 2007/03/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.