问题标签 [onkillfocus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2052 浏览

c++ - MFC 中的 OnKillFocus() 覆盖在奇数时间触发

我需要知道我的窗口何时失去输入焦点,所以我重载了 CWnd 的 OnKillFocus() 方法。

但是,当我关注另一个应用程序(alt+tab),甚至最小化窗口时,它不会调用此方法。但是当我将其从最小化中恢复时,它确实会调用该方法。这些是它触发此方法的预期时间吗?

0 投票
1 回答
2411 浏览

c++ - 在 Windows 7 上 SetCurSel 之后的 MFC CComboBox OnKillFocus/ShowDropDown

您可能知道 CComboBox(DropDownList 样式)只有在您不让它对其内容进行自动排序时才能通过键入正确选择。这是我的意思的一个例子:你输入A然后B。如果它没有自动排序,它将首先选择下一个以A开头的条目,然后选择下一个以B开头的条目。如果它被排序,它将选择下一个条目与 A 然后下一个以 AB 开头。

我有一个继承自 CComboBox 的类,它的内容没有按内置排序机制排序。我想要一个正确的按类型选​​择的行为,所以我自己实现了。我通过使用 SetCurSel 选择条目,然后将 CBN_SELCHANGE 消息发送到父窗口。

在 Windows XP 上,这工作得非常好。我们现在使用的是 Windows 7,现在出现以下问题:如果我使用鼠标打开下拉列表,通过键入来选择一个条目,然后使用 Tab 跳转到下一个控件,开始时选择的值是自动重新选择。

如果我覆盖 OnKillFocus 并执行以下操作:

它通常可以工作,但是有一段时间旧的选择值仍然会闪现,这很丑陋。

如果我不调用 CComboBox::OnKillFocus() 正确的条目仍然被选中,但组合框仍然被下拉。

所以我的下一个尝试是手动调用 SetDropDown(FALSE)(在 OnKillFocus() 中没有其他内容),但问题又出现了。

所以我的猜测是,如果您打开下拉列表,则当前选择会在内部存储。调用 SetCurSel 不会更新此内部值。而且,如果您标记出该内部值,则会再次重新选择。

有什么想法可以解决这个问题吗?

0 投票
3 回答
1041 浏览

c++ - Notify CDialog-Window when selecting another window

I got a dialog-based MFC-Tool that is supposed to show the title of a window of another application in a messagebox when i click on it. My Problem is that the WM_KILLFOCUS doesn't work here. Maybe I'm doing it wrong. I do the following:

#xA;

Any idea what's wrong?

0 投票
1 回答
1162 浏览

c++ - MFC组合框killfocus不起作用

我有一个对话框,里面有几个comboboxes 作为成员变量。控制向导让我combobox为消息的 es创建处理程序CBN_KILLFOCUS。例如,自动调用一个这样的处理程序

我的期望是只要我退出它就会调用这个处理程序。但它没有被调用。

0 投票
2 回答
88 浏览

visual-c++ - MFC编辑框修改连

我想要修改 MFCedit 框的事件,即当我尝试写入或删除任何字母时。

我得到了关于杀死焦点的事件,但这不是必需的。

我在修改编辑框的内容时想要事件。