Q&A

  • framergn함수 사용하기..에디트 컴포넌트 제작중..
안녕하세요.

RoundRect모양의 에디트박스 컴포넌트를 만들고 있는데요.

RoundRect모양의 에디트 박스 테두리에 선을 그을려고 하거든요..

물론 RoundRect형으로 그려야겠죠..

  GetWindowRect( Handle, MyRect );
  Dc  := GetWindowDc( Handle );
  WRgn:= CreateRoundRectRgn( 0, 0, ClientWidth - 5  , ClientHeight - 5 , 10, 10 );
  GetWindowRgn( Handle, wRgn );
  OffSetRgn( WRgn, -MyRect.Left, -MyRect.Top );
  Try
    Pen:= CreatePen( PS_Solid, 1, ColorToRgb( ClBlue ) );
    Brush:= CreateSolidBrush( ColorToRgb( ClBlue ) );
    SelectObject( Dc, Pen );
    SelectObject( Dc, Brush );
    FrameRgn( Dc, WRgn, Brush, 1, 1 );
  Finally
    DeleteObject( WRgn );
    DeleteObject( Pen  );
    DeleteObject( Brush );
    ReleaseDc( Handle, Dc );
  end;

이게 하나의 지가 만든 프로시져인데 Wm_NcPaint 메세지를 가로채서 거기다

가 넣어줬습니다. 그런데 테두리는 전혀 안보이더군요..-.-;;

아마 OffsetRgn함수로 어케 움직여줘야 할 거 같은데..에고 ..--;;

고수님들 가르침 부탁드립니당..
0  COMMENTS