int x = 5;
int y = 10;
y = y << 16;
int coord = x | y;
NativeMethods.SendMessage(hwnd, WM_LBUTTONDOWN, new IntPtr(0), new IntPtr(coord));
NativeMethods.SendMessage(hwnd, WM_LBUTTONUP, new IntPtr(0), new IntPtr(coord));使用上面的代码(ref: MSDN),我能够在外部应用程序的datagridview中选择一行。我想知道如何将ctrl-a和ctrl-c发送到同一个datagridview。
我仍然在尝试连接为什么x和y变量被初始化为5,10,以及为什么y左移16,然后|与x一起。
发布于 2010-08-22 06:19:34
这样如何:
SendMessage( hwnd, WM_KEYDOWN, VK_CTRL, 0 );
SendMessage( hwnd, WM_KEYDOWN, 0x43, 0 );
// Ctrl and C keys are both pressed.
SendMessage( hwnd, WM_KEYUP, 0x43, 0 );
SendMessage( hwnd, WM_KEYUP, VK_CTRL, 0 );0x43是C键(请参见http://msdn.microsoft.com/en-us/library/dd375731(v=VS.85).aspx
编辑:如果它不工作,尝试发送WM_COPY,这应该是一个更好的主意。
SendMessage( hwnd, WM_COPY, 0, 0 );发布于 2010-08-22 23:44:04
你可能真的需要。注意,这不是C++子类化。
这种技术将消息从特定的窗口过程(WndProc)发送到另一个WndProc,从而实现您想要的结果。
一旦设置好,它就能正常工作。MSDN对此信息的介绍很少,因此将上面的链接作为教程。
更多信息:
Subclassing Controls - MSDN
ActiveX Controls: Subclassing a Windows Control
** Subclassing Windows Forms Controls可能是最相关的。
发布于 2010-08-23 07:04:02
"Windows Hooking“的其他链接。这是一种在外部应用程序中挂钩或捕获消息和事件的技术。
Hooking
EasyHook
MSDN Hooks很好的概述。
HTH
https://stackoverflow.com/questions/3539190
复制相似问题