870920 Menu

Viewing all items for tag C++

使juce::TextEditor具有行间距

JUCE的TextEditor(文本编辑器)在多行显示模式下没有额外的行间距,默认行高是当前所用字体的高度,导致阅读体验较差。可采用源码Hack(硬编码)的办法增大行间距。需改动3处(以JUCE 4.2.3版本为例)。打开../modules/juce_gui_basics/widgets/juce_TextEditor.cpp,277行找到TextEditor::Iterator类:

浏览全文

VS 2015编译老项目所遇到的三个问题的解决方案

近期将PC机升级为Windows 10,该平台下的IDE升级到VS 2015社区版,编译VS 2012的老项目时出现三个问题:一是C4458警告(声明隐藏了基类成员);二是项目中如使用了第三方静态库(比如cURL),则编译失败;三是使用JUCE类库开发的GUI程序,其界面文字随机性发生变化(比如变细,某些字符和数字显示错误)。解决办法如下:

浏览全文

Swing-Parking项目小结

Swing-Parking是一款运行于Linux Ubuntu,Windows x64和OSX 10.8以上平台的桌面单机小程序,用于车辆转弯、倒车及入库的教学演示、沙盘模拟和辅助训练。开发语言:C++ 11,类库:JUCE 4.2.3,IDE:Xcode 7.2 on OSX 10.10.5, VS 2015 on Windows 10。立项日期:2016年07月26日,第一阶段编码完工于2016年8月12日。

浏览全文

JUCE_LIVE_CONSTANT宏详解

组件类的paint()中绘制各类UI元素时,往往需要反复设置并确定某些数值和颜色,编译运行,不断调整,耗时费力。JUCE_LIVE_CONSTANT()宏专用来简化此流程,可将其称为“实时调整与获取常量”宏。在对付较复杂的GUI界面时,使用该宏能大大提高编码效率,非常方便。

浏览全文

JUCE小Tips:实现抓屏功能

有朋友Email询问,使用C++语言和JUCE类库做GUI编程时,如何实现抓屏功能(允许用户将程序界面的某个区域或整个界面保存为图像文件)。这个问题很简单,核心思路有二:

浏览全文

用JUCE开发Android和iOS程序的一个小Tip

DocumentWindow类(主窗口)的构造函数中需加一段宏包裹,使程序启动后即处于全屏。有些桌面程序同样也需如此,此时就不必多此一举了。代码见下:

浏览全文

JUCE类库小Tips:可缩放的界面

此处的“可缩放”并非传统的调整窗口大小,而是窗口(界面)中的所有GUI元素一并进行缩放。要实现此功能,思路有二:

浏览全文

JUCE类库小tips:Listener应该写成嵌套类吗?

是的,应该写到Broadcaster类中,使之成为嵌套类。

浏览全文

小小的说明之一:关于术语、概念的严谨性

截至目前,本站所发布的文字(包括前段时间在新浪博客上的发文),绝大多数来自于本人(Running)所著的Cross-Platform Programming with C++ and JUCE《用JUCE类库进行C++跨平台开发》一书。网络发布,基于网上阅读与大众传播的特点,不可能做到照搬,也无法知无不言、言无不尽,只能摘录其中一些部分,并做适当简写和临时改写。

浏览全文

编码样式与风格(重要)

C++的编码风格非常灵活,几乎每一个熟练的C++程序员都有自己的偏爱与习惯。但是,无论是否以JUCE类库为主进行编码,都请遵循以下建议(这也是Jules所提倡的)。

总的原则:风格一旦确定,应严格遵循且始终如一,无论个人项目,还是团队合作。

浏览全文