如何编写基于对话框的使用 ATL ActiveX 控件
1个回答
展开全部
此步骤是必需仅用于 Visual C++ 5.0 和更早版本。
如果您想要处理 tab 键切换功能和其他导航键正确重写 IOleInPlaceActiveObjectImpl::TranslateAccelerator。
STDMETHOD(TranslateAccelerator)(MSG *pMsg)
{
if ( ( pMsg->message < WM_KEYFIRST
|| pMsg->message > WM_KEYLAST )
&& ( pMsg->message < WM_MOUSEFIRST
|| pMsg->message > WM_MOUSELAST ) )
return S_FALSE;
return ( IsDialogMessage( m_hWnd, pMsg ) ) ? S_OK : S_FALSE;
}
这取决于如何您创建控件需要 m_bWindowOnly 变量中设置为 1 以强制非无窗口控件的控件的构造函数。
CMyDlgCtrl()
{
m_bWindowOnly = 1;
}
如果您想要处理 tab 键切换功能和其他导航键正确重写 IOleInPlaceActiveObjectImpl::TranslateAccelerator。
STDMETHOD(TranslateAccelerator)(MSG *pMsg)
{
if ( ( pMsg->message < WM_KEYFIRST
|| pMsg->message > WM_KEYLAST )
&& ( pMsg->message < WM_MOUSEFIRST
|| pMsg->message > WM_MOUSELAST ) )
return S_FALSE;
return ( IsDialogMessage( m_hWnd, pMsg ) ) ? S_OK : S_FALSE;
}
这取决于如何您创建控件需要 m_bWindowOnly 变量中设置为 1 以强制非无窗口控件的控件的构造函数。
CMyDlgCtrl()
{
m_bWindowOnly = 1;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询