我已经基于TcustomControl创建了自己的图形组件。
控件首先绘制边框区域,然后绘制文本信息,然后在控件的整个宽度和高度设置一个矩形剪辑区域,然后绘制图形。
定义剪辑区域,以便绘制的图形不会侵占边框区域并破坏文本信息。
在绘制过程结束时,使用
删除剪辑区域selectcliprgn(handle,0);
DeleteObject(HClip);
这一切都很有问题,问题是,当我向控件分配上下文菜单时(按下鼠标右键时选择),菜单仅在光标位于被剪裁的区域内时出现。当我右键单击边框区域时,将显示组件父控件上下文菜单。
为什么剪辑区域会影响显示哪个上下文菜单以及如何阻止它发生?