내가 네이티브 윈도우 서브 클래 싱하고있어 (콤보 상자의 편집 컨트롤을 ...)C#에서는 WIN32 WndProc에 대한 IntPtr이 있습니다. 호출 구문은 무엇입니까?
oldWndProc = SetWindowLong에 (HandleOfCbEditControl, GWL_WNDPROC, newWndProc);
내 서브 클래스 wndproc에서 이와 같은 코드를 사용 하겠지만, oldWndProc을 호출하는 구문을 이해할 수는 없습니다.
int MyWndProc(int Msg, int wParam, int lParam)
{
if (Msg.m == something I'm interested in...)
{
return something special
}
else
{
return result of call to oldWndProc <<<< What does this look like?***
}
}
EDIT :이 질문에서 "서브 클래 싱"이란 단어는 C#이 아니라 WIN32 API 의미를 나타냅니다. 여기에 서브 클래 싱한다고해서 .NET 기본 클래스 비헤이비어를 재정의하는 것이 아닙니다. WIN32가 Windows 현재 콜백 대신 함수 포인터를 호출하도록하는 것을 의미합니다. C#의 상속과는 아무런 관련이 없습니다.
기본 proc을 호출하기 전에 그는 oldWndProc가 가리키는 이전 사용자 proc를 호출하려고합니다. –
int, uint 및 IntPtr이 모두 동일하다는 정보를 보내 주셔서 감사합니다. 나는 당신의 코멘트를 읽기 전에 주위에 걸음으로 그것을 배웠지 만, 당신의 의견은 내가 옳은 일을하고 있다고 위로하고 있습니다. –
사실, 저는 전화 WIN32 함수 CallWindowProc –