MFC中CDialog和AfxMessageBox的DoModal()函数的问题 [英] question on DoModal() function of CDialog and AfxMessageBox in MFC
本文介绍了MFC中CDialog和AfxMessageBox的DoModal()函数的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
此代码失败
AfxMessageBox(_T("Test")));
因为它没有得到焦点.
我有一个模态CDialog
当我按"Esc KEY"时,将关闭模式对话框
非常感谢您
Hi,
This code fail
AfxMessageBox(_T("Test"));
Because it does not receive the focus.
I have a modal CDialog
When i press "Esc KEY" closes the modal dialog
thank you very much
推荐答案
我解决了这个问题.我改变了
lr = pMsgHook-> WindowProc(msg,wp,lp);
为此一个
lr = CallWindowProc(pOldWndProc,hwnd,msg,wp,lp);
而且效果很好
thx u
I solved the problem. I changed it
lr = pMsgHook->WindowProc(msg, wp, lp);
for this one
lr = CallWindowProc( pOldWndProc, hwnd, msg, wp, lp);
and it works perfectly
thx u
我正在使用
"EZSkin-用于构建可换肤应用程序的原始框架" EZSkin-用于构建可换肤应用程序的原始框架 [ ^ ]
看来问题在于此代码"EZSkin"声明了HookProcedure
pMsgHook-> m_pOldWndProc =
(WNDPROC)SetWindowLong(hwnd,GWL_WNDPROC,(DWORD)HookWndProc);
我正在阅读这篇文章
http://xfgr.com/?u=pz1z8ocodeprojectb0iczvKBczvcppczvdMsgBoxz6axx3com u = pz1z8ocodeprojectb0iczvKBczvcppczvdMsgBoxz6axx3nPageFlowx1wFluid"target =" _ blank"title =" New Window> ^ ]
了解其工作原理
如果您声明从CDialog AfxMessageBox派生的类没有失败并且具有焦点,如果您声明从cezdialog AfxMessageBox派生的类失败并且没有焦点
I am using
"EZSkin - A Primitive Framework for building skinnable apps" EZSkin - A Primitive Framework for building skinnable apps[^]
It seems that the problem is this code "EZSkin" declare a HookProcedure
pMsgHook->m_pOldWndProc =
(WNDPROC)SetWindowLong(hwnd, GWL_WNDPROC, (DWORD)HookWndProc);
I am reading this article
http://xfgr.com/?u=pz1z8ocodeprojectb0iczvKBczvcppczvdMsgBoxz6axx3nPageFlowx1wFluid[^]
to understand how it works
if you declare a class derived from CDialog AfxMessageBox not fail and it has the focus, if you declare a class derived from cezdialog AfxMessageBox fail and it hasnt the focus
这篇关于MFC中CDialog和AfxMessageBox的DoModal()函数的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文