C# 메모리 Graphics 객체
틀림없이 대부분의 네티즌들이 QQ, MSN 등 채팅 프로그램을 사용한 적이 있을 것이다. 그들의 인터페이스는 상당히 화려하다. 특히 네티즌들이 인터넷에 접속하고 메시지 알림을 할 때 화면의 오른쪽 아래에서 떠다니는 창이 천천히 올라온다. 아름다우면서도 인성화된 것이다. 프로그래머로서 즐길 때 우리는 이것이 도대체 어떻게 실현된 것이냐고 묻지 않을 수 없다.본고는 C# 메모리Graphics 대상을 이용하여
Background Bitmap 함수는 먼저 창 배경 이미지를 Background Bitmap 변수에 저장한 다음 이 비트맵 이미지의 윤곽과 투명색에 따라 Region을 만듭니다. BitmapTo Region은 Bitmap에서 Region으로 전환하는 데 사용되며, 프로그램은 이 Region을 창의 Region 속성에 값을 지불하여 불규칙한 창을 만듭니다.
public void SetBackgroundBitmap(Image image, Color transparencyColor)
- protected override void OnPaintBackground(PaintEventArgs e)
- {
- Graphics grfx = e.Graphics;
- grfx.PageUnit = GraphicsUnit.Pixel;
- Graphics offScreenGraphics;
- Bitmap offscreenBitmap;
- offscreenBitmap = new Bitmap(BackgroundBitmap.Width, BackgroundBitmap.Height);
- offScreenGraphics = Graphics.FromImage(offscreenBitmap);
- if (BackgroundBitmap != null)
- {
- offScreenGraphics.DrawImage(BackgroundBitmap, 0, 0,
BackgroundBitmap.Width, BackgroundBitmap.Height);
- }
- DrawText(offScreenGraphics);
- grfx.DrawImage(offscreenBitmap, 0, 0);
- }
상기 코드는 먼저 창에 그려진 표면의Graphics를 되돌려주고 변수grfx에 저장한 다음에 C#메모리Graphics 대상인offScreenGraphics와 메모리비트맵 대상인offscreenBitmap을 만들고 메모리비트맵 대상의 인용을 offScreenGraphics에 지불한다. 이렇게 하면offScreenGraphics에 대한 모든 그리기 작업도offscreenBitmap에 동시에 작용한다.알림 창의 표면에 그려야 하는 배경 그림 Background Bitmap을 C# 메모리 Graphics 대상에 그립니다. DrawText 함수는 텍스트의 크기와 범위에 따라 Graphics를 호출합니다.DrawString은 창의 특정 영역에 텍스트를 표시합니다.마지막으로Graphics를 호출합니다.DrawImage는 메모리에 그려진 그림을 알림 창 표면에 표시합니다.우리는 창의 마우스 조작을 포획해야 한다. 세 가지 조작이 여기서 진행된다. 첫째, 드래그 창 조작 처리, 둘째, 알림 창의 닫기 조작 처리, 내용 영역의 클릭 조작이다.세 가지 작업 모두 마우스의 현재 위치와 각 Rectangle 영역의 포함 관계를 검사해야 하며, 특정 영역에 떨어지면 다음과 같이 처리됩니다.
- private void TaskbarForm_MouseDown(object sender, MouseEventArgs e)
- {
- if (e.Button == MouseButtons.Left)
- {
- if (TitlebarRectangle.Contains(e.Location)) //
- {
- ReleaseCapture(); //
- SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
- // ( )
- }
- if (CloseBtnRectangle.Contains(e.Location)) // Close
- {
- this.Hide();
- currentTop = 1;
- }
- if (ContentRectangle.Contains(e.Location )) //
- {
- System.Diagnostics.Process.Start("http://www.Rithia.com");
- }
- }
- }
이 프로그램은 알림 창의 표시, 머무르기, 숨기기 작업을 잘 할 수 있고 간단한 스킨케어 메커니즘을 갖추고 있으며 이중 버퍼 그리기 기술을 사용한 후 창의 그리기가 매끄럽고 깜빡거리지 않도록 할 수 있다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java/PDF에서 이미지 바꾸기우리 모두 알다시피 PDF는 편집하기 어려운 일종의 문서 형식입니다. 그러나 다른 사람으로부터 PDF 문서를 받을 때 문서의 이미지를 새 이미지로 바꾸는 등 약간의 수정이 필요할 수 있습니다. 이 문서에서는 Java...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.