728x90
DrawEdge은 Window에 4각형 모양의 테두리를 그리는 함수 입니다.
Declare Function DrawEdge Lib "user32" Alias "DrawEdge" (ByVal hdc As Integer, ByRef qrc As RECT, ByVal edge As Integer, ByVal grfFlags As Integer) As Integer
- VB.NET 선언
[DllImport("user32")]
public static extern int DrawEdge(int hdc, ref RECT qrc, int edge, int grfFlags);
- C# 선언
DrawEdge의 첫번째 인수는 테두리를 그릴 Window창이나 화면의 Device Context를 기술합니다.
[Windows API for .NET] - GetDC - Window및 Control의 Device Context 구하기
[Windows API for .NET] - GetWindowDC - 현재 Windows화면의 Device Context 구하기
두번째 인수로는 테두리를 그릴 위치와 크기를 지정하는 RECT구조체를 전달해야 합니다. 이 구조체선언은 만일 테두리를 왼쪽 10부터 가로 100까지 위쪽 10부터 세로 100까지 그려낼려면 다음과 같이 선언될 수 있습니다.
Public Structure RECT
Public left As Integer
Public top As Integer
Public right As Integer
Public bottom As Integer
End Structure
Dim norRECT As RECT
norRECT.left = 10
norRECT.top = 10
norRECT.right = 100
norRECT.bottom = 100
- VB.NET
public struct RECT{
public int left;
public int top;
public int right;
public int bottom;
}
RECT norRECT = default(RECT);
norRECT.left = 10;
norRECT.top = 10;
norRECT.right = 100;
norRECT.bottom = 100;
- C#
DrawEdge의 세번째 함수는 테두리의 형태를 지정하는 부분으로 다음과 같은 상수를 사용할 수 있습니다.
상수 | 값(VB/C#) | 설명 |
BDR_RAISEDINNER | 4 | 안쪽 테두리 표현 |
BDR_SUNKENINNER | 8 | 안쪽 테두리 표현 |
VB.NET은 &H로 C#은 0x로 16진수를 표시합니다.
마지막 인수는 테두리를 그리는 형태를 지정하는 것으로 다음 상수를 사용할 수 있습니다.
상수 | 값 | 설명 |
BF_ADJUST | 2000 | 빈공간 |
BF_BOTTOM | 8 | 하단 테두리 |
BF_BOTTOMLEFT | 8, 1 | 하단, 왼쪽 테두리 |
BF_BOTTOMRIGHT | 8, 4 | 하단, 오른쪽 테두리 |
BF_DIAGONAL | 10 | 대각선형 |
BF_DIAGONAL_ENDBOTTOMLEFT | 10, 8, 1 | 대각선형(상단오른쪽부터 하단왼쪽) |
BF_DIAGONAL_ENDBOTTOMRIGHT | 10, 8, 4 | 대각선형(상단왼쪽부터 하단오른쪽) |
BF_DIAGONAL_ENDTOPLEFT | 10, 2, 1 | 대각선형(하단오른쪽부터 상단왼쪽) |
BF_DIAGONAL_ENDTOPRIGHT | 10, 2, 4 | 대각선형(하단왼쪽부터 상단오른쪽) |
BF_FLAT | 4000 | 평면 |
BF_LEFT | 1 | 왼쪽 테두리 |
BF_MIDDLE | 800 | 내부를 채움 |
BF_MONO | 8000 | 1차원 |
BF_RECT | 1, 2, 4, 8 | 사각형 테두리 |
BF_RIGHT | 4 | 오른쪽 테두리 |
BF_SOFT | 1000 | BOTTON형 |
BF_TOP | 2 | 상단 테두리 |
BF_TOPLEFT | 2, 1 | 왼쪽, 상단 테두리 |
BF_TOPRIGHT | 2, 4 | 오른쪽, 상단 테두리 |
Comma는 or단위 처리입니다.
상위 인수를 토대로 Form위에 테두리를 그리면 DrawEdge함수는 다음과 같이 호출될 수 있습니다.
DrawEdge(GetDC(Me.Handle), norRECT, &H1, &H1 Or &H2 Or &H4 Or &H8)
- VB.NET 호출
DrawEdge(GetDC((int)this.Handle), ref norRECT, 0x1, 0x1 | 0x2 | 0x4 | 0x8);
- C# 호출
728x90
'.NET > Windows API for .NET' 카테고리의 다른 글
MoveWindow - 지정한 Window의 위치및 크기 변환 (0) | 2019.08.06 |
---|---|
SetForegroundWindow - 작업 Window설정 (0) | 2019.08.05 |
LineTo - Line 그리기 (0) | 2019.08.05 |
IsIconic - Window의 최소화 여부 판단 (0) | 2019.08.05 |
GetWindow - 지정한 Window와의 관계 Window찾기 (0) | 2019.08.05 |