CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2018 开发者帮助

MFC 和无模式对话框

2024-5-18 16:58| 发布者: admin| 查看: 62| 评论: 0|原作者: admin|来自: AutoCAD

MFC 和无模式对话框

由于AutoCAD试图将焦点从其所有子窗口移开,因此无模式对话框具有特殊要求。无模式对话框将定期收到一条窗口消息,该消息在 adscodes.h 中定义为 1001。当您的对话框收到此消息时,它必须返回才能保持焦点。如果对此消息的响应为 (这也是默认值),则一旦用户将鼠标指针移出对话框窗口,对话框就会失去焦点。WM_ACAD_KEEPFOCUSTRUEFALSE

您可以使用对话框的消息映射和声明(如ON_MESSAGE()

BEGIN_MESSAGE_MAP(HelloDlg, CDialog)
    ON_COMMAND(IDCLOSE, OnClose)
    ON_COMMAND(IDC_DRAW_CIRCLE, OnDrawCircle)
    ON_MESSAGE(WM_ACAD_KEEPFOCUS, onAcadKeepFocus)
END_MESSAGE_MAP()

在此示例中,应用程序的对话框类为 ,它派生自 。将此条目添加到消息映射时,还必须为消息编写处理程序函数。假设您编写了一个名为 的函数,如果对话框要保留输入焦点,并且对话框愿意将焦点让给 AutoCAD,则返回该函数。此处提供了一个示例消息处理程序:HelloDlgCDialogkeepTheFocus()TRUEFALSE

afx_msg LONG HelloDlg::onAcadKeepFocus(UINT, LONG)
{
    return keepTheFocus() ? TRUE : FALSE;
}

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2024-12-15 22:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部