일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 티스토리
- 이지스퍼블리싱
- Programming
- tipssoft
- 알고리즘
- 김성엽
- 프로그래밍
- VS ERROR
- 지식나눔강좌
- 배열
- c
- 포인터
- Desktop
- Kotlin
- 백준
- Direct2D
- 리뷰
- Tips프로그래밍강좌
- c#
- Win32
- Visual Studio
- Tips강좌
- CS
- c++
- 함수
- 연산자
- doit코틀린프로그래밍
- Windows
- 문법
- Javascript
Archives
- Yesterday
- Today
- Total
F.R.I.D.A.Y.
사용자 정의 비클라이언트 영역 본문
반응형
C#에서 비클라이언트의 ownerdraw를 하려면WinApi가 필수일 듯.
https://docs.microsoft.com/ko-kr/windows/win32/gdi/nonclient-area
protected override void WndProc(ref Message Msg)
{
Rectangle rect;
switch (Msg.Msg)
{
case WinApi.Message.WM_NCACTIVE:
case WinApi.Message.WM_NCPAINT:
rect = new Rectangle(Location, Size);
IntPtr hdc = HDC.GetWindowDC(Msg.HWnd);
HDC.Rectangle(hdc, 0, 0, Width, 40);
Msg.WParam = (IntPtr)1;
return;
}
base.WndProc(ref Msg);
}
HDC는 WinAPI 중 HDC, Rectangle 등 GDI 관련 코드를 C#에서 사용할 수 있도록 작성한 클래스이며, Form의 WndProc를 오버라이드한다.
OwnerDrawing 되었다. 물론, 안 예쁘지만.. 우측 끝 부분에 닫기, 최대/최소 버튼이 그려지지 않고 숨겨져 있는데, 기능은 한다.
제목 높이도 수정할 수 있을 것으로 보인다. 대신, WinApi를 적절히 사용해야한다.
728x90
반응형
'DEV > .Net' 카테고리의 다른 글
관리자 권한의 프로그램 시작 프로그램 등록 (0) | 2022.06.02 |
---|---|
C# metroUI caption 이동 (0) | 2022.05.01 |
C#에서 WinAPI 호출 시 유의할 점 (0) | 2022.04.29 |
WinAPI 보호된 메모리를 읽거나 쓰려고 했습니다. (0) | 2022.04.06 |
C# - 접근제한자 (0) | 2021.05.30 |
Comments