问题标签 [cedit]
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.
c++ - 如何捕捉 EM_SHOWBALLOONTIP CEdit 消息?
我正在尝试在函数中捕获CEdit EM_SHOWBALLOONTIP
消息。PreTranslateMessage
有人可以告诉我该怎么做吗?谢谢你
winapi - MFC:如何保存和恢复 CEditView 滚动位置以便正确滚动内容?
需要为选项卡控件做一个工作,我想保存然后恢复CEditView
内容。我所做的如下所示,当滚动条和位置回到正确的位置时,编辑控件的实际内容不会滚动(它在左上角,就像它从未滚动过一样)。我试过RedrawWindow()
了,没有用。我一直主要处理水平滚动条,我只需单击水平条,内容就会跳转到它应该在的位置。
我错过了什么或者让它发挥作用的诀窍是什么?
蒂亚!!
c++ - MFC:动态创建的 CEdit 没有动画并且不会改变外观
有谁知道为什么我动态创建的 CEdit 不像在对话框编辑器中创建的 CEdit 控件那样设置动画?
将光标悬停在控件上时,框架的颜色不会改变(在正常情况下,灰色会略有变化) - 选中时,框架的颜色也不会改变(应该是蓝色)。
这是它通常看起来的示例: 聚焦时的蓝色边框
这是我的 CEdit 控件的截图: 我的 CEdit 控件(没有发生任何事情)
我的目标是根据具体情况添加看起来与原始控件完全相同的动态 CEdit 控件(例如大小、外观、行为......)。我已经尝试了一些事情,但找不到该死的原因。
有人可以帮我弄这个吗?
mfc - MFC,是否有任何方便的方法可以在其成员函数中获取编辑框的内容?
我正在通过继承CEdit
基于 MFC 的新类来自定义编辑框。我想在它的成员函数中访问它的内容(文本)。我想知道是否有比调用 public 函数更方便/更安全/更快的方式来读写字符串GetWindowText()
?
c++ - 在对话框中挂钩 EN_CHANGE 以继承 CEDIT
我有自己的 CEDIT 子类,如下所示:
我通过
在这个子类中挂钩并在DoDataExchange
程序中对它进行子类化DDX_control
ON_CHAR
ON_CHANGE
(MyEdit::OnChar, MyEdit::OnChange).
我在父对话框中也需要钩子ON_CHANGE
事件,但是使用子类它不起作用。
这里有某种方式如何手动从 MyEdit::OnChange
消息发送到对话框?
c++ - 如果使用 DDX_Text,则来自 CEdit 值验证的用户子类类
我有自己的类(CMyEdit
)从CEdit
自己的验证过程中继承。
我挂钩事件ON_CHAR
并ON_UPDATE
验证用户输入。
如果输入有效,CMyEdit::isOk
则属性切换为true
。CMyEdit
在每次更改 EditBox 内容期间确认有效性。
对话可以通过 确认有效性CMyEdit::isOk
。
我已经覆盖CEdit::SetWindowText()
但是如果 dialog 使用DDX_Text
,则没有方法正在运行(也没有EN_CHANGE
,也没有SetWindowText)
.
同样的问题是,当用户从剪贴板 ( WM_PASTE
) 中输入值时。
如何挂钩编辑框内容的这种变化?
fonts - CEdit SetFont 总是创建一个 GDI HFONT 句柄,即使是共享字体
在我们的 C++/MFC MDI 应用程序中,每个 MDI 客户端窗口都包含一个基于 CDialog 的窗体,该窗体可以包含非常多的控件,甚至数百个。我们注意到我们用完 GDI 句柄的速度相对较快(Windows 限制为每个进程 10000 个)。
主要问题是我们在几乎每个控件上设置的字体。通常具有相同属性的字体用于多个控件,例如 Arial 11,因此我们现在共享字体,并带有内部引用计数。
这有所帮助,但是 CEdit 的行为与其他控件不同。将相同的共享字体句柄传递给多个 CEdit 时,每个 CEdit 的 GDI 句柄数仍会增加 1。
m_font 是一个共享的 CFont 实例并声明为 CDialog 成员。
在每次迭代中,即使将相同的字体实例传递给 SetFont,dwCount 也会增加。好像 CEdit 创建了字体的影子副本。
甚至 pEdit->SetFont(NULL) 也会增加 gdi 句柄的数量!
使用其他控件类型,例如 CStatic,一切都很好。
它也与 comctl32.dll 的版本有关,使用 6.0 版本时行为可重现:
如果省略该行,则使用 comctl32.dll 5.8,句柄数不会增加。
我们有机会解决这个问题吗?
c++ - 如何拒绝退出 CEdit
我已将 CEdit 类(CMyEdit)子类化,并且我正在通过 ON_CHAR 消息不断验证用户输入。ON_CHAR 过程将 CMyEdit.isOK 成员变量设置为 true 或 false。当值不正确(.isOk = false)时,有什么方法可以拒绝退出编辑框?我不想让用户例如转到其他编辑框或其他对话框。
谢谢。
c++ - 从子类控件 (CEDIT) 向父窗口发送消息
我对CEdit
控件 ( CCheckeEdit
) 进行了子类化。
我需要捕捉ON_CHANGE
这个类并将消息发送到对话框(EN_CHANGE
也可以在对话框中捕捉)。
在 subclassedCCheckeEdit
中,我遵循了钩子程序:
在对话框中我有:
但CProjMfcDlg::OnEnChangeEdit()
不会处理(我在那里有断点)。
我究竟做错了什么?
OnEnChange
上述程序是完整的。是的,我使用 MFC 反射:
c++ - MFC:如何在 CEdit 中添加清除按钮?
我需要在CEdit
控件中添加一个清除按钮,如下所示:
我使用CMFCEditBrowseCtrl
了,如本文所述:
MFC Feature Pack -CMFCEditBrowseCtrl
。
但问题是它在高像素密度的显示器上显示一个非常小的图标:
我试图设置一个大图标,但按钮仍然很窄:
你能建议一些解决方案吗?