目标:通过键盘上的上下左右键控制picture控件的移动
方法:重写PreTranslateMessage(MSG* pMsg)函数
具体实现如下:(IDC_STATIC_PIC是picture控件的ID号)
BOOL CxxxDlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN)
{
switch (pMsg->wParam)
{
case VK_UP:
{
CRect test;
GetDlgItem(IDC_STATIC_PIC)->GetWindowRect(&test);
ScreenToClient(&test);
//test.TopLeft().y -= 10;
//GetDlgItem(IDC_STATIC_PIC)->MoveWindow(&test);
GetDlgItem(IDC_STATIC_PIC)->SetWindowPos(NULL, test.left, test.top - 5, test.Width(), test.Height(), SWP_SHOWWINDOW);
break;
}
case VK_DOWN:
{
CRect test;
GetDlgItem(IDC_STATIC_PIC)->GetWindowRect(&test);//获取控件的屏幕坐标
ScreenToClient(&test);
GetDlgItem(IDC_STATIC_PIC)->Set