请问怎样用SendMessage向一个控件发送VK_RIGHT消息

时间:2022-01-22 19:45:04
在粘贴一个图片后学要点击VK_RIGHT才能进行追加粘贴,我想模拟完成这个事件

14 个解决方案

#1


你看看它的VK_RIGHT对应于什么函数,在什么地方截获VK_RIGHT,然后向该地方发一个消息,消息码
wParam为VK_RIGHT即可

#2


我用
SendMessage(this->GetSafeHwnd(),WM_KEYDOWN, VK_RIGHT, 0);
SendMessage(this->GetSafeHwnd(),WM_KEYUP, VK_RIGHT, 0);
都不行

#3


gz

#4


VK_RIGHT好像是右方向的箭头的虚拟键

#5



void CDddDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
MessageBox("fan",0,MB_OK);
if(nChar==VK_RIGHT)
MessageBox("VK_RIGHT",0,MB_OK);


}

void CDddDlg::OnButton1() 
{
::SendMessage(this->m_hWnd,WM_KEYDOWN,VK_RIGHT,0);
}

#6


up

#7


如果还不会,你就实际点一下,同时用spy捕获消息,然后按照捕获的格式和数值发送。

#8


this->GetSafeHwnd() 
^^^^
是不是this 指针不是要响应事件的控件窗体指针

#9


你的hWnd一定要为你所要响应VK_RIGHT的窗口句柄

#10


向右:
CEdit *pEdit =(CEdit *) GetDlgItem(IDC_EDIT1);
pEdit->SendMessage(WM_KEYDOWN,VK_RIGHT,0);
pEdit->SetFocus();

#11


感谢各位!
消息时发出了,但是右方向键没有用。我还是要单击右方向键才能把光标移到图片的后面。是不是选用VK_RIGHT不对?
我写的
previewForm.SetFocus();
::SendMessage(previewForm.GetSafeHwnd(),WM_KEYDOWN,VK_RIGHT,0);

#12


我用的是一个IE控件。previewForm.Image(file)可以加载一个图片,在IE控件中点击右方向键,就可以用previewForm.Image(file)在图片后面增加一幅,否则就覆盖原来的。

#13


猜测:可能处理右方向键的窗体并不是previewForm。

#14


增加PostMessage就可以了。

#1


你看看它的VK_RIGHT对应于什么函数,在什么地方截获VK_RIGHT,然后向该地方发一个消息,消息码
wParam为VK_RIGHT即可

#2


我用
SendMessage(this->GetSafeHwnd(),WM_KEYDOWN, VK_RIGHT, 0);
SendMessage(this->GetSafeHwnd(),WM_KEYUP, VK_RIGHT, 0);
都不行

#3


gz

#4


VK_RIGHT好像是右方向的箭头的虚拟键

#5



void CDddDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
MessageBox("fan",0,MB_OK);
if(nChar==VK_RIGHT)
MessageBox("VK_RIGHT",0,MB_OK);


}

void CDddDlg::OnButton1() 
{
::SendMessage(this->m_hWnd,WM_KEYDOWN,VK_RIGHT,0);
}

#6


up

#7


如果还不会,你就实际点一下,同时用spy捕获消息,然后按照捕获的格式和数值发送。

#8


this->GetSafeHwnd() 
^^^^
是不是this 指针不是要响应事件的控件窗体指针

#9


你的hWnd一定要为你所要响应VK_RIGHT的窗口句柄

#10


向右:
CEdit *pEdit =(CEdit *) GetDlgItem(IDC_EDIT1);
pEdit->SendMessage(WM_KEYDOWN,VK_RIGHT,0);
pEdit->SetFocus();

#11


感谢各位!
消息时发出了,但是右方向键没有用。我还是要单击右方向键才能把光标移到图片的后面。是不是选用VK_RIGHT不对?
我写的
previewForm.SetFocus();
::SendMessage(previewForm.GetSafeHwnd(),WM_KEYDOWN,VK_RIGHT,0);

#12


我用的是一个IE控件。previewForm.Image(file)可以加载一个图片,在IE控件中点击右方向键,就可以用previewForm.Image(file)在图片后面增加一幅,否则就覆盖原来的。

#13


猜测:可能处理右方向键的窗体并不是previewForm。

#14


增加PostMessage就可以了。