이전에 Graphics 개체의 DrawImage 메서드를 사용한 적이 있는 경우 이 호출은 매우 익숙해야 합니다 . 이는 원본과 대상 모두에 적용됩니다. 마지막으로 원본 장치 컨텍스트와 데이터가 복사되는 왼쪽 위 모서리와 데이터를 복사하는 방법을 자세히 설명하는 플래그를 전달합니다. .NET 컨트롤을 "수동으로" 그리는 일반적인 방법은 ControlPaint 클래스를 사용하는 것입니다. ControlPaint에는 일반적인 .NET 컨트롤을 그래픽 표면에 그릴 수 있는 정적 함수가 있습니다. 예를 들어 ControlPaint.DrawButton단추는 단추를 그립니다. 그래서 우리가 BitBlt를 사용할 수 있도록, 우리는 필요 2 장치 컨텍스트 (발음하기 어려운 아닌가요?) 이를 만들려면 먼저 그래픽 오브젝트가 필요하며, 예를 들어 그림 상자를 사용할 수 있는 모든 오브젝트에서 비트맵 함수를 사용하여 비트맵을 컨트롤에 빠르게 렌더링할 수 있습니다. 이를 위해 관리되는 대안인 Graphics.DrawImage()보다 훨씬 빠릅니다. 아래 예제 코드를 참조하십시오. 그런 다음 원하는 이미지를 반환하는 함수를 호출하기만 하면 됩니다. 개발자는 여러 가지 방법으로 이미지를 처리할 수 있습니다. 또 다른 점은 이미지를 다시 화면으로 그려 .NET 컨트롤의 그래픽을 처리하는 방법을 열어 줄 수 있다는 것입니다. 이전 섹션의 약간의 변형으로 GetForegroundWindow API 호출을 사용하여 활성 창의 핸들을 얻을 수 있습니다.
관리 코드에서 GDI와 관련된 토론 포럼 및 뉴스 그룹에 대한 가장 자주 묻는 질문 중 하나는 BitBlt의 사용과 관련이 있습니다. 개발자가 응용 프로그램에서 스프라이트와 스크롤 형식 작업을 구현하려고 하기 때문입니까? BitBlt 함수를 사용하려는 경우 이 함수가 수행하는 작업을 알고 있을 것입니다. 그러나 미숙한 경우이 함수는 한 장치 컨텍스트에서 다른 장치 컨텍스트에서 픽셀의 사각형에 해당하는 색상 데이터의 비트 블록 전송을 수행한다고 설명해야합니다. 그것은 다음과 같이 정의됩니다 : bool BitBlt (HDC hdcDest, //handle to 대상 장치 컨텍스트 int nXdest, //x-좌측 상단 모서리 int nYdest, //y-좌표의 대상 좌측 왼쪽 모서리 intnWidth, //x)의 대상 직사각형 intnHeight, //height of destination 직사각형 HDC HDCSrc, //hnadle 소스 장치 컨텍스트 int nXSrc, //x-소스 왼쪽 상단 모서리 int nYSrc의 조정, //y-조정 소스 왼쪽 상단 모서리 DWORD dwRop //래스터 작업 코드; BitBlt에 대한 자세한 내용은 GDI SDK 설명서에서 확인할 수 있습니다. 그냥 그것을 찾기 위해 MSDN의 인덱스에 "BitBlt"를 입력합니다. 먼저 DllImportAttribute 클래스를 사용하여 BitBlt 메서드와 Gdi32.dll 라이브러리를 가져와야 합니다. [System.Runtime.InteropServices.DllImportAttribute ("Gdi32.dll"] 공공 정적 외각 불 BitBlt (intPtr hdcdest, int nYdest, int nAdest, int nWidth, int nHeight, IntPtr hdcrc, int nXsrc, int nXrc, int nYSrc, System.Int32 dr. 이제 우리는 BitBlt를 호출합니다.
Published by: gianni57
Comments are closed.