草庐IT

custom-painting

全部标签

c++ - Boost Spirit Qi Re-Establish skipping with custom skip 语法

到目前为止,我有一个语法一直在使用标准的boost::spirit::ascii::space/boost::spirit::ascii::space_type船长。我有一些使用船长的规则和一些不使用的规则,比如qi::rule(),ascii::space_type>expression;qi::rule()>term;当我在跳跃式非终结符(如expression)内部使用非跳跃式非终结符(如term)时,一切都像我期望的那样工作-空格只在内部起作用term非终结符。此外,到目前为止,我一直很好地包括在不使用qi::skip重新建立跳过的非终端内部使用skipper的非终端,例如in

c++ custom UI ToolKit -- 跨平台抽象层的选项

作为跨平台文本编辑器SublimeText2的粉丝,我一直在研究它的开发方式。开发人员注意到它是99%的c++和一些用于linux的GTK,并且它使用他称之为“SublimeGUI”的自定义UI工具包。这是来自开发者的引述SublimeText2itselfusesacustomUItoolkit.Therearealotofappswherethismaynotmakesense,butit'snotsuchanunreasonablechoiceforSublimeText,whereIalwaysknewthatalotoftheUIcontrolsweregoingtohave

c++ - 使用 BeginPaint/EndPain 而不是 GetDC/ReleaseDC 来响应 WM_PAINT 消息有什么特别之处吗?

可以使用GetDC/ReleaseDC在窗口客户区绘制。但是为了响应WM_PAINT消息,必须使用BeginPaint/EndPaint。这有什么特别的吗? 最佳答案 当窗口的一部分需要更新时,会发出WM_PAINT消息。通过指定BeginPaint/EndPaint(),您告诉gdi您实际上正在做那项工作。如果您不为指定区域调用BeginPaint(),WM_PAINT消息将一直生成,直到有人实际更新它为止。函数给你一个DC,就是因为方便。在内部BeginPaint()/EndPaint()可能调用GetDC()/ReleaseD

c++ - QtPainter 错误 Paint 设备返回引擎 ==0,类型 3,Painter 未激活

我正在尝试绘制图像的某些点,但我不知道为什么它不起作用。我定义了一个QImage,我想修改一些点。QImage*cou=newQImage(height,largeur,QImage::Format_Mono);cou->fill(1);QPainter*fig=newQPainter(cou);for(i=0;idrawPoint(floor(propa[i]),nbmax[i]);}当我执行我获得的代码时QPainter::begin:Paintdevicereturnedengine==0,type:3并在以下行中:QPainter::drawPoints:Painternota

Windows 输入法 : custom Korean virtual keyboard

我在使用韩语WindowsIME时遇到问题。我正在为一款嵌入式软件设计虚拟(屏幕/软件)键盘。我依赖WindowsIME,它似乎适用于日语和中文。如果我使用的是物理键盘,它也可以完美地处理韩语。但是当我单击虚拟键盘按钮时,鼠标事件似乎会干扰IME,基本上只是取消合成。每次单击鼠标按钮时都会触发WM_IME_ENDCOMPOSITION消息。结果,我只能得到单独的韩语符号,而无法将它们组合成单词。有人知道管理这种效果的方法吗?默认的Windows软件键盘如何绕过它?由于一系列原因,我们无法在我们的产品中使用默认的Windows软键盘,需要设计我们自己的软键盘。谢谢。

c++ - Windows 中 Paint 事件中的异常和访问冲突

执行一些新代码后,我的C++应用程序开始表现异常(屏幕更新不正确或不完整,有时根本没有屏幕更新)。一段时间后,我们发现新代码导致了访问冲突。奇怪的是,该应用程序只是继续运行(但屏幕更新不正确)。起初我们认为问题是由“try-catch(...)”构造引起的(由一个过度活跃的前同事放置在那里),但几个小时后(仔细检查调用堆栈,添加了许多断点,...)我们发现,如果在绘制事件中存在访问冲突,Windows会捕获它,并继续运行应用程序。这是正常行为吗?Windows在绘制事件期间捕获异常/错误是否正常?有没有办法禁用它?(如果不是,则意味着我们必须始终在调试器中运行并在测试我们的代码时启用所

c# - 如何创建 "custom protocol"并将其映射到应用程序?

如何创建“自定义协议(protocol)”?我知道您可以通过向HKEY_CLASSES_ROOT添加一些注册表项来创建URL协议(protocol),但这似乎只适用于浏览器。我也需要它在Windows资源管理器中工作。我知道我可以编写客户端/服务器类型的界面,但我认为这对我的客户的需求(和预算)来说太过分了。长话短说...第三方应用程序应调用:tbwx:我的应用程序应该从数据库中加载和删除一条记录。这听起来相当简单(或者我认为如此)。有什么想法吗?谢谢 最佳答案 只要将REG_SZ类型的URLProtocol值添加到类的键中,就可以

c++ - 未捕获 WM_PAINT 中的访问冲突

为了测试这个问题,我编写了一个最小的Windows应用程序。如果我在WM_PAINT处理程序中强制执行访问冲突,则此异常永远不会到达调试器。如果在没有调试器的情况下启动,访问冲突也不会出现。通常您应该会看到Windows错误报告对话框。再深入一点,似乎user32.dll中的某些东西捕获了所有传入的异常。这是正常行为吗?我能以某种方式控制它吗?捕获所有异常不是安全风险吗?至少它很烦人。这是Vista64上的32位和64位应用程序。在XP上,异常似乎按预期处理。其他窗口消息也有同样的问题。也许所有这些?WM_PAINT处理程序:caseWM_PAINT:hdc=BeginPaint(hW

windows - Win32 : How to custom draw an Edit control?

我需要实现EM_SETCUEBANNER的功能,其中文本提示出现在编辑控件内:问题是我不能使用公共(public)控件的第6版,这是获得Microsoft提供的提示横幅实现所必需的。我研究过简单地将编辑控件的文本和字体格式更改为DarkGrayItalicText但它会引发我无法找到避免方法的Change事件(componentwrapperprovidedbyhighercomponentlibrary)。所以我改为自定义绘制文本,当控件未聚焦且为空时绘制提示横幅文本,否则依赖默认绘制。Edit控件没有很好地公开自定义绘图机制,likeListView,TreeViewandothe

Windows Aero : What color to paint to make "glass" appear?

我必须在客户区涂什么颜色才能使玻璃出现?我使用以下方法将表单框架扩展到客户区:DwmExtendFrameIntoClientArea(self.Handle,margins);我找不到任何来自Microsoft的官方文档,说明DWM将寻找什么颜色和/或alpha来替换玻璃。关于DwmExtendFrameInClientArea的文档甚至没有提到需要自定义颜色。只有传闻和神话甚至需要一种特殊的颜色。我能找到的最接近的是MSDN上的一个主题:CustomWindowFrameUsingDWMFortheextendedframestobevisible,theregionsunderl