VC怎么在线程中定义或得到主窗口句柄
VC如何在线程中定义或得到主窗口句柄
我在线程中使用::SendMessage(hwnd, WM_COMMAND, MAKEWPARAM(ID_AutPictureFILE_OPEN, 0), NULL);使发消息某个菜单响应
结果报错了:error C2065: “hwnd”: 未声明的标识符
是什么原因??
帮帮忙!
------解决方案--------------------
可以通过传参啊,比如this指针,然后强制转换一下
------解决方案--------------------
创建线程的时候将HWND窗口句柄作为线程函数的参数传递给线程
------解决方案--------------------
把主窗口句柄先保存,备用
------解决方案--------------------
::SendMessage(AfxGetMainWnd()->GetSafeHwnd(), WM_COMMAND, MAKEWPARAM(ID_AutPictureFILE_OPEN, 0), NULL);
你这个方法我没实验过。
SendMessage一通知主窗体,我都用自定义消息的.
在消息映射中
#define MSG_NEW_MENU 40010
ON_MESSAGE(MSG_NEW_MENU,OnDeal)
发送方法:
::SendMessage(AfxGetMainWnd()->GetSafeHwnd(), MSG_NEW_MENU, NULL, NULL);
MainFrame中代码:
LRESULT CMainFrame::OnDeal( WPARAM wp,LPARAM lp )
{
//你菜单触发函数(因为在主窗体中的,所以函数能直接调用)
}
这种方法肯定行。
上面种我没实验过。
------解决方案--------------------
AfxGetMainWnd()->GetSafeHwnd()
我在线程中使用::SendMessage(hwnd, WM_COMMAND, MAKEWPARAM(ID_AutPictureFILE_OPEN, 0), NULL);使发消息某个菜单响应
结果报错了:error C2065: “hwnd”: 未声明的标识符
是什么原因??
帮帮忙!
------解决方案--------------------
可以通过传参啊,比如this指针,然后强制转换一下
------解决方案--------------------
创建线程的时候将HWND窗口句柄作为线程函数的参数传递给线程
------解决方案--------------------
把主窗口句柄先保存,备用
------解决方案--------------------
::SendMessage(AfxGetMainWnd()->GetSafeHwnd(), WM_COMMAND, MAKEWPARAM(ID_AutPictureFILE_OPEN, 0), NULL);
你这个方法我没实验过。
SendMessage一通知主窗体,我都用自定义消息的.
在消息映射中
#define MSG_NEW_MENU 40010
ON_MESSAGE(MSG_NEW_MENU,OnDeal)
发送方法:
::SendMessage(AfxGetMainWnd()->GetSafeHwnd(), MSG_NEW_MENU, NULL, NULL);
MainFrame中代码:
LRESULT CMainFrame::OnDeal( WPARAM wp,LPARAM lp )
{
//你菜单触发函数(因为在主窗体中的,所以函数能直接调用)
}
这种方法肯定行。
上面种我没实验过。
------解决方案--------------------
AfxGetMainWnd()->GetSafeHwnd()