cadmfc非模态对话框没有焦点

cadmfc非模态对话框没有焦点,第1张

MFC非模态对话框不具有焦点,因为它在一个被称为“消息队列”的消息过程中工作,所以它永远不会有焦点。但是,可以通过调用将消息发送到消息队列的SetActiveWindow函数来改变活动窗口,以便将焦点设置到对话框上。

这是设置焦点和去除焦点的方法:

void SetFocus(BOOL bFocus = TRUE)

  {

     if(bFocus)

     {

        ::PostMessage(m_Edit.m_hWnd,WM_SETFOCUS, (WPARAM)m_Edit.m_hWnd, 0)

        ::PostMessage(m_Edit.m_hWnd,WM_ACTIVATE, WA_ACTIVE, 0)

     }

     else

     {

        ::PostMessage(m_Edit.m_hWnd,WM_KILLFOCUS, 0, 0)

     }

  }

启动方法不对或启动参数设置错误,具体要看你的代码细节处理。

调用外部程序有多种方法,WinExec ShellExecute CreateProcess 三种常用方法都有不同的使用细节。

另外,两个独立程序,和非模态对话框没什么关系吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/6385505.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-21
下一篇 2023-03-21

发表评论

登录后才能评论

评论列表(0条)

保存