CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

MFC 和无模式对话框

2023-1-1 03:12| 发布者: admin| 查看: 702| 评论: 0|来自: AutoCAD

由于 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 )

GMT+8, 2024-5-19 15:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部