델마당에 콤보박스, 리스트 박스 등의 스크롤 바와 버튼 크기 변경하는 방법이 올라와있어서
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
이 코드만 동작시키면 되는데... 다른 것과 충돌할 만한 코드가 있는지...참;;