개체를 선택할 때 사용자가 개체를 끌 때 문제가 있습니다. 덜 민감한 임계 값을 설정하기 위해 마우스 이벤트를 사용하는 여러 가지 방법을 시도했습니다. example.Windows 양식 응용 프로그램에서 끌기 임계 값을 변경하려면 어떻게합니까?
Piccolo 그래픽 엔진을 사용하고 있기 때문에 주로 작동하지 않습니다.
레지스트리를 통해이 작업을 수행 할 수 있지만 사용자 레지스트리 항목이 엉망이되고 싶지 않습니다.
대안은 SystemParametersInfo;
및 SPI_SETDRAGHEIGHT 및 SPI_SETDRAGWIDTH 매개 변수와 함께 pinvoke를 사용하는 것으로 보입니다. 나는 값이있는 uiAction
매개 변수를 알고
[DllImport("user32.dll", SetLastError = true)]
static extern bool SystemParametersInfo(int uiAction, int uiParam, IntPtr pvParam, int fWinIni);
그리고 내가 그것을 호출하는 방법을 알고
는
SPI_SETDRAGWIDTH = 0x004C
SPI_SETDRAGHEIGHT = 0x004D
uiParam
너비 또는 높이를 알고있다.
그 이상으로 저는 붙어 있습니다. 난 정말이 물건을 이해하지 못하고 마지막 두 매개 변수를 설정하는 방법에 관해서는 모르겠다.
C++ (?) 코드 here이 있습니다.
그러나 C 변종에 대한 지식과 C#으로 변환하는 것은 좋지 않습니다.
누군가 내 애플리케이션에서 드래그 끌기 임계 값을 설정하는 데 도움을 줄 수 있습니까?
필자는 Piccolo가 자체 끌어서 놓기 기능을 구현하고 있으며 자신의 라이브러리에 의존하기를 원한다면 Piccolo가 사용하는 임계 값에 구애받지 않을 것이라고 생각합니다. Piccolo는 레지스트리 설정을 통해 임계 값을 수정하지 못하게 할 수 있습니다. 설정이 구성 가능한지 다른 피콜로 사용자에게 질문 할 수 있습니다. – RogerN
@ RogerN 당신은 정확하고 드래그 처리기가 내 모든 노력을 무시하고 영향을 미치는 것처럼 보였습니다. 정말 내가 왜 pinvoke 경로를 가고 싶습니다 – ScruffyDuck
Pass IntPtr.Zero, 인수는이 설정에 사용되지 않습니다. 그리고 마지막 인자로 2를 사용하면 실행중인 모든 프로그램이 시스템 설정을 변경했다는 것을 알 수 있습니다. 그리고 네, 사용자는 당신을 싫어할 것입니다, 당신의 제거 프로그램이 신뢰할 수 있는지 확인하십시오. 소스를 변경하지 않으려는 경우 오픈 소스 소프트웨어를 사용하는 데 많은 포인트가 없습니다. –