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; } |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 22:07
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.