问题标签 [c++builder-2007]
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++ - 使用 SwapMouseButton( TRUE ); 允许右键单击拖动窗口
我需要以某种方式允许使用右键单击拖动选项移动窗口。我通过一些我不太喜欢但它有效的狡猾代码完成了这项工作。
目前我正在捕获 WM_NCRBUTTONDOWN 消息并设置一个布尔值来表示我处于移动模式,并在收到 WM_NCRBUTTONUP 时重置此变量。在移动模式下,我正在检查 WMNCMouseMove 并自己移动表单。由于跟上快速鼠标移动的速度很慢,我还设置了一个计时器来使用 GetCursorPos 来做同样的事情。
我最近发现了 SwapMouseButton 功能,这正是我想要的。然而有一个但是!我需要有条件地交换它,并且只有当用户右键单击窗口的 CAPTION 区域时。
因此,当我收到 WM_NCRBUTTONDOWN 并在 WM_NCRBUTTONUP 上重置时,我会交换鼠标按钮。但是,如果 WM_NCRBUTTONUP 从未重置它,这将适用于后续点击。我认为这是因为单击事件已经发生,所以交换太晚了,这就是为什么它适用于随后的右键单击而不是导致鼠标交换的右键单击和拖动!
任何人都可以看到解决这个问题的方法。请记住,我需要左键单击功能来关闭、最小化、最大化按钮等。右键单击 onyl 进行移动!
请帮忙!!!!!
谢谢,乔
c++builder - Borland Builder 2007 子 VCL 控件和 WindowProc 方法
我设法覆盖了一个控件 WindowProc 函数,以确定比 Builder 支持的事件更多的事件(即双击鼠标中键等。)
问题是当我覆盖说子组件 WindowProc 时,父组件仍然会收到事件。
就我而言,我有一个面板,其中有一个以它为父的按钮。该按钮遮盖了面板的一部分,但是当单击该按钮时,父级(面板)也获得了事件(尚未测试按钮是否也获得了事件,但想看看是否有人首先对此有解决方案)。
有什么方法可以以编程方式阻止父母接收事件,或者确定事件是否针对孩子而不是父母。
我会遇到的问题是,如果用户按下按钮,面板事件和按钮事件将被触发。
请任何建议将不胜感激。
乔
代码示例:请注意,Panel 和 Button 派生自 ConfigComponent 类,这是 m_kOldComponentWndMethod 和 ComponentWndProc 方法所在的位置。
覆盖面板
覆盖按钮
Component Wnd Proc 方法(此处出现两次,一次用于面板,一次用于按钮)
谢谢,乔
menu - 将主菜单项重新用作弹出菜单
我有一个带有主菜单的表单的应用程序。现在我想显示一个弹出菜单(MPopup),其中包含其子菜单(MEdit)之一中项目的精确副本:
如何在无需管理冗余项目的情况下填充弹出菜单?所有有问题的菜单都是静态的,没有动态的人口。
系统信息:RAD Studio 2007 (C++ Builder)
c++ - 使用 SetWindowsHookEx 的 C++ 仅适用于添加到其中的奇怪 vcl 代码。在 BCB2009
我在使用 SetWindowsHookEx 时遇到了一个奇怪的情况
我有一个 bcb 2009 项目,上面有一个表格和一个备忘录。
在创建中,我们加载 Dll 并将函数处理程序附加到两侧。
这个想法是,当按下键盘时,备忘录框中会出现一条消息,而当鼠标事件发生时,备忘录框中会出现其他文本。
奇怪的是,当我从调试信息中清除代码时,它停止工作。这意味着钩子被触发了一次,然后就结束了。在调试中,我使用了一些 VCL TStringList 将 key stokes 数据记录到磁盘。使用该代码我终于通过添加检测到
[代码]
对于每个钩子函数(键盘、鼠标),代码都可以再次工作。
我必须这样做的代码有什么问题?
这是我 15 年来第一次制作 dll。所以它可以是创建 dll 或导出函数的真正基础。
欢迎提出任何建议。
问候
合资公司
一些新的附加信息:
[已解决]我的目标是嵌入式win XP。我的应用程序创建了一个错误,该错误会通过 Windows 关闭资源管理器。并且该钩子在 xp 中不能全局工作,而只能在本地工作。但它正在我的开发平台上运行 win 7 x64 全局键入和鼠标在记事本中导致应用程序中的消息。[解决] 将WH_KEYBOARD修改为WH_KEYBOARD_LL,鼠标从WH_MOUSE修改为WH_MOUSE_LL,解决了Windows XP嵌入式接收键鼠问题。
dll 和应用程序都没有运行时库或包。
DLL 代码
[代码]
这是应用程序。
[代码cpp]
和表格标题
[代码]
c++builder - TcxMaskEdit for password field
I have a EditText declarated as TcxMaskEdit
for password field and when I write on it the characters show as *****
but I want that sometimes show the characters, but I don´t find the method for that.
c++ - 如何区分终止程序的不同方式?
我正在使用 C++Builder 2007 为 Windows 编写程序。
当我的程序关闭时,它的行为应该会有所不同,具体取决于它的关闭方式:
- 用户单击应用程序窗口的“X”:返回应用程序的用户登录。
- 程序通过 TaskManager 终止:然后在那里终止程序。这一点尤其重要,因为程序不能阻止 Windows 关闭。
得到一个 OR 另一个很容易:实现一个TForm::OnClose()
orOnCloseQuery()
来处理事件。但是,两者都没有告诉我导致事件的原因。是否有另一种方法可以知道实际导致关闭事件的原因?
c++ - TStringList C++ 生成器访问冲突
我试图访问 a 中的特定项目,前提TStringList
是它们存在。
为什么这会给我带来访问冲突,我该如何解决?
c++ - Codegear C++ Builder 2007 是否有协议缓冲区绑定?
根据我几年前阅读此线程的理解,有人曾经让 Protocol Buffers 与 Codegear C++ Builder 2007 一起工作
https://groups.google.com/forum/?fromgroups=#!topic/protobuf/YapO_DqFVvc
上述 Builder 2007 版本的 protobuf 的作者将其上传到了第 3 方 URL,但是指向它的链接似乎早已失效,从讨论和 Protocol Buffers 2.5.0 的当前状态来看,修复/更改从未从 protobuf 分叉或合并到主干中。
更新:
当将 protoc.exe (2.5.0) 生成的代码用于任一示例 .proto 文件时,C++ Builder 2007 会抱怨许多问题,包括 google::internal 命名空间中名称的“重复条目”(例如as google::internal::kEmptyString
- 它还抱怨std::hash
基于容器,这memset
是一个无法识别的符号。
c++ - 在 C++Builder 中显示#include 层次结构
我在使用其他人的代码时遇到问题,似乎是乱序包含的头文件。(例如,我遇到了重新定义错误,其中一些甚至在同一个文件中!)查看 C++Builder 编译器正在使用的#include 树会很有用,类似于 Visual Studio 的 -showIncludes 标志。有没有这样的功能;如果是这样,我该如何访问它?我专门使用 C++Builder 2007。
delphi - TXSDateTime - 意外结果 = C++ Builder 2007
这是一些代码:
我希望 ...AsDateTime 和 ...AsUTCDateTime 行返回不同的结果。但他们没有。在这两种情况下,结果都是:
2019 年 6 月 4 日 10:08:19
HourOffset 是 1,所以 AsUTCDateTime 不应该返回 11:08:19 作为时间部分吗?还是我误解了这些功能的工作原理?