2010-07-19 6 views
1

프로그래밍 방식으로 창의 스크롤 막대를 이동하려고합니다. 내가 먼저 보내고있다 : 다음스크롤 막대 이동 SetScrollPos 및 SendMessage

SetScrollPos(handle, 1, position, true); 

하고 다음으로 :

SendMessage(handle, 0x0115, wparam, new IntPtr(0)); 

WPARAM가 올바른지. spy ++를 통해 검사 할 때 위의 코드와 스크롤을 보내는 것과 실제로 스크롤하는 것의 유일한 차이는 실제 스크롤에서 메시지 중첩 수준은 1이지만 여기서는 0입니다. 하지만 떨어져, 모든 다른 속성과 동일, WM_VSCROLL, 핸들, 위치, wparam 등. 그러나 프로그래밍 방식의 스크롤 막대를 이동하지 않습니다. 무엇이 잘못하고 있는지에 대한 제안 사항 ???

P.S : C# 응용 프로그램에서이 작업을 시도 중 톤!

EDIT : 내가 SB_BOTTOM을 wparam으로 전달할 때 스크롤 끝까지 올바르게 이동합니다.

답변

1

수동으로 메시지를 보내는 대신 SetScrollInfo 함수를 사용하는 것이 더 좋습니다.

+0

SetScrollInfo를 시도했지만 저에게 맞지 않습니다. SendMessage는 저음으로 SB_THUMBPOSITION을 사용하고 wparam에서 하이픈으로 위치를 전송하려고하는 경우를 제외하고 모든 경우에 사용할 수 있습니다. – kambamsu

+0

나는이 함수가 WinApi 및 100 % 작동하기 때문에 잘못된 p/Invoke를 SetScrollInfo에 사용하거나 잘못 사용했다고 생각합니다. 그것으로 놀아 보거나 SetScrollInfo 및 사용 예제에 대한 p/invoke 인터페이스를 표시하십시오. – arbiter