MFC中CDialog和AfxMessageBox的DoModal()函数的问题 [英] question on DoModal() function of CDialog and AfxMessageBox in MFC

查看:97
本文介绍了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 ^ ]

了解其工作原理



如果您声明从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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆