C++
__ocean
初学文,后从工,Coding十年岁匆匆。
展开
-
多重继承类构造函数的声明
class CTimeType //定义时间类{};class CDateType //日期类{};class CDateTimeType:public CDateType,public CTimeType//时间日期类{ CDateTimeType(int mon,int d,int y,int h,int m,int s); //类中声明}; //类外实原创 2012-11-16 22:09:09 · 924 阅读 · 0 评论 -
win高分屏下Qt程序的界面适配处理
在高分屏的设备内,如果程序没有进行适配,那么界面就会太小而看不清楚,而且系统显示比例的缩放对程序也不生效。下面是Qt程序界面显示适配系统缩放的一种解决方法。首先,获取windows系统的像素密度,也就是DPI// Get desktop dcdesktopDc = GetDC(NULL);// Get native resolutionhorizontalDPI = GetDevic原创 2017-08-17 14:40:09 · 9849 阅读 · 2 评论 -
多屏幕下Qt获取程序所在屏幕的位置
用QtBrowserplugin开发的ActiveX组件,在IE网页和WPF桌面客户端中使用。在机器接双显示器的情况下,弹出以屏幕为基准的窗体时,可用如下方法进行操作:1.获取activeX窗口在桌面上的绝对位置2.通过此绝对位置获取activeX窗口所在屏幕上的几何坐标信息3.计算目标位置时需要加上屏幕的偏移示例代码如下://this为ActiveX组原创 2018-01-26 15:53:06 · 8644 阅读 · 0 评论 -
命令行程序重定向输出到文本文件
在程序调用windows api启动命令行程序,并且重定向输出到文本文件 如,在cmd中输入 :systeminfo > systeminfo.txt下面是在C/C++程序中处理整个流程:CString outputFile = "systeminfo.txt"; SECURITY_ATTRIBUTES sa = { sizeof(sa), NULL, TRUE ...原创 2018-06-11 18:41:32 · 3057 阅读 · 0 评论 -
std::string与char*之临时缓冲区
c++文件读取流程如下:ifstream ifs(srcFile, ifstream::binary);if(ifs.is_open()){ ifs.seekg(0, ifs.end); long filesize = ifs.tellg(); ifs.seekg (0); char* fileBuffer = new char[filesize];...原创 2018-06-14 10:34:43 · 1847 阅读 · 0 评论 -
C++ Dll导出类中暴露std::string 等类型时爆出“warning C4251”警告的处理
C++ 在编写Dll时需要导出类给外部调用,如果在导出类中出现std::string或其他STL类型,通常会爆出下面的warning简单的导出类定义如下:class __declspec(dllexport) TestDll{public: TestDll(const char* data); ~TestDll(); void test();private: ...原创 2018-06-07 18:46:01 · 4599 阅读 · 1 评论 -
Qt Widget封装左图标右文本的图片按钮 IconButton
如上图所示,受移动端界面设计的影响,pc客户端上的界面设计也越来越多的出现类似的界面,传统的QPushButton和QToolButton,无论是添加image还是添加icon,都无法满足这样的UI设计需求,退而求其次,只能用QWidget自行封装。封装的基本思路是以QPushButton为父widget,上面添加水平布局layout,然后再放两个QLabel,左边用于显示图片,右边用于显...原创 2018-08-27 15:07:31 · 2183 阅读 · 0 评论 -
利用std::bind和std::function实现对象间通信
利用std::bind和std::function实现对象间通信C++11中利用bind和function,同一个类的不同对象可以委托给不同的实现,从而实现不同的行为。示例代码如下:class Widget{public: Widget() { //event_widgetCreated(); } ~Widget() { if (event_widgetDestro...原创 2019-01-29 14:15:43 · 2528 阅读 · 0 评论