我在编一个为自定义工具栏按钮自动复位的消息响应函数;采用模拟鼠标左键单击的方法触发windows消息,编译过程中总是出错,请大家指点指点~~在线等~~~~LRESULT CTransAM_NewView::OnRiseAllResetMsg(WPARAM   wParam,   LPARAM   lParam) 
{
HWND handMain = ::FindWindowEx(NULL,NULL,NULL,_T("cript1"));
HWND handToolbar = ::FindWindowEx(handMain,NULL,_T("ToolbarWindow32"),NULL);
SendMessage(GetDlgItem(ID_BUTTON_RISEALL,handToolbar),WM_LBUTTONDOWN);
return 0;
} 出错提示:
error C2664: 'void __thiscall CWnd::GetDlgItem(int,struct HWND__ ** ) const' : cannot convert parameter 2 from 'struct HWND__ *' to 'struct HWND__ ** '
    Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

解决方案 »

  1.   

    SendMessage(GetDlgItem(ID_BUTTON_RISEALL,handToolbar)->m_hWnd,WM_LBUTTONDOWN);
      

  2.   

    错了,你是相获取其它窗口的对象,这样写HWND handToolbar = ::FindWindowEx(handMain,NULL,_T("ToolbarWindow32"),NULL);::SendMessage(::GetDlgItem(handToolbar,ID_BUTTON_RISEALL),WM_LBUTTONDOWN,(WPARAM)0,(LPARAM)0);发送消息我感觉也不对,呵呵应该发送WM_COMMAND 消息WM_COMMAND,(WPARAM)ID_BUTTON_RISEALL,(LPARAM)handToolBar);你试一试
      

  3.   

    按照syy64(太平洋) 兄说的,又增加了一条错误:
    left of '->m_hWnd' must point to class/struct/union按照Saimen(向两星冲一把) 说的调试错误消失:
    ::SendMessage(::GetDlgItem(handToolbar,ID_BUTTON_RISEALL),WM_LBUTTONDOWN,(WPARAM)0,(LPARAM)0);但是ID_BUTTON_RISEALL按钮没什么反应,消息似乎没有响应,是不是紧接着还要再加一个左键弹起命令?
    (无论怎么说,调试错误解决,加分先)