Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# lPram和wParam每次的含义和上下文是什么?我正在使用来自C的PostMessageAPI#_C#_Winforms_Visual Studio 2010_Winapi_User Controls - Fatal编程技术网

C# lPram和wParam每次的含义和上下文是什么?我正在使用来自C的PostMessageAPI#

C# lPram和wParam每次的含义和上下文是什么?我正在使用来自C的PostMessageAPI#,c#,winforms,visual-studio-2010,winapi,user-controls,C#,Winforms,Visual Studio 2010,Winapi,User Controls,我正在将消息从其他进程转发到一些实际进程控件(这个其他进程在挂接之后模拟了该实际进程的所有控件)。我需要从这些模拟控件将所有单击转发到实际控件 出于这个原因,我正在使用PostMessageAPI 除了lParam和wParam之外,我对PostMessage的所有参数都很清楚。 对于这些包含wParam和lparam的PostMessage,我需要传递什么实际值 现在我正在使用CheckedListBox,在它的ItemChecked事件中,我需要将这个选中的项目传递给实际的CheckedLi

我正在将消息从其他进程转发到一些实际进程控件(这个其他进程在挂接之后模拟了该实际进程的所有控件)。我需要从这些模拟控件将所有单击转发到实际控件

出于这个原因,我正在使用PostMessageAPI

除了lParam和wParam之外,我对PostMessage的所有参数都很清楚。 对于这些包含wParam和lparam的PostMessage,我需要传递什么实际值

现在我正在使用CheckedListBox,在它的ItemChecked事件中,我需要将这个选中的项目传递给实际的CheckedListBox,这些项目包含在其他进程上钩住和绘制的控件的实际进程中

代码: 现在,对于每个控件上的每次单击(在本例中为CheckedListBox,对于所有其他控件),我们需要为wParam和lParam传递什么值,以实现从一个进程到另一个进程的精确单击和精确消息传递(即从模拟进程到实际进程的模拟控件)

问候
Usman

名称
wParam
lParam
的意思是“字参数”和“长参数”,是Win16的保留值,当时这些参数实际上是2字节和4字节值,尽管在Win32中它们都是4字节整数值。所需的确切值特定于您发送的消息。您必须在Win32 API文档中查找消息才能找到答案,例如:

在这种情况下,幸运的是,这两个参数都不必是复杂的结构,因此只需使用&和来构造适当的32位值
    CheckedListBox ListBoxCh;

    ListBoxCh.ItemCheck+=new ItemCheckEventHandler(TAKOCheckedListBox_ItemCheck);

    public void TestCheckedListBox_ItemCheck(Object sender, ItemCheckEventArgs a_Args)
    {
        PostMessage(hWnd,(int)Win32.WindowMessages.WM_LBUTTONDOWN,(IntPtr)0,(IntPtr)0); ?? 
        PostMessage(hWnd, (int)Win32.WindowMessages.WM_LBUTTONUP, (IntPtr)0, (IntPtr)0); ??
    }