自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(494)
  • 论坛 (2)
  • 收藏
  • 关注

原创 收藏博客

http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407979.htmlsilverlight(8)

2014-11-05 11:14:42 1572

原创 C++代码静态分析工具-Prefast

1. 什么是PrefastPrefast是一种代码分析工具,它能够帮助你找到编译器不能找到的错误或者缺陷。Prefast首次被微软集成到Visual Studio 2005 Team Suite中去,使用起来非常方便。2.怎么使用Prefast在vs2005 Team Suite中,使用Prefast非常简单。修改你的工程属性,设置Enable Code Analysis For C/C++为Yes.效果:注意到有可能错误的地方以浅灰色显示在编辑器中了。3.Prefast能帮你找到哪些错误1

2021-02-09 10:55:53 32

原创 C++中NULL和nullptr的区别

在编写C程序的时候只看到过NULL,而在C++的编程中,我们可以看到NULL和nullptr两种关键字,其实nullptr是C++11版本中新加入的,它的出现是为了解决NULL表示空指针在C++中具有二义性的问题,为了弄明白这个问题,我查找了一些资料,总结如下。一、C程序中的NULL在C语言中,NULL通常被定义为:#define NULL ((void *)0)所以说NULL实际上是一个空指针,如果在C语言中写入以下代码,编译是没有问题的,因为在C语言中把空指针赋给int和char指针的时候,

2021-02-09 10:28:46 18

原创 CEF3各个类的作用

CefContextMenuHandler,回调类,主要用于处理 Context Menu 事件。CefDialogHandler,回调类,主要用来处理对话框事件。CefDisplayHandler,回调类,处理与页面状态相关的事件,如页面加载情况的变化,地址栏变化,标题变化等事件。CefDownloadHandler,回调类,主要用来处理文件下载。CefFocusHandler,...

2020-04-27 10:26:07 155

原创 CEF参数大全2

-------序号-------参数-------说明-------1 --allow-outdated-plugins 不停用过期的插件。2 --allow-running-insecure-content 默认情况下,https 页面不允许从 http 链接引用 javascript/css/plug-ins。添加这一参数会放行这些内容。3 --allow-scripting...

2020-04-25 16:41:17 386

原创 CEF启动参数大全

// Copyright (c) 2012 The Chromium Authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the LICENSE file.#include "content/public/comm...

2020-04-25 16:33:14 1494

原创 禁用CEF跟随系统的DPI缩放

方法1:为程序添加启动参数:--high-dpi-support=1 --force-device-scale-factor=1(1)、在桌面上右键Chrome图标,选择属性。(2)、在目标一栏中增加自定义参数--force-device-scale-factor=1注意,参数和原本的内容之间要有个空格,示例如下:"C:\Program Files (x86)\Google\Chr...

2020-04-25 15:15:59 501

原创 CEF禁用GPU硬件加速

CefApp::OnBeforeCommandLineProcessing( const CefString& process_type, CefRefPtr<CefCommandLine> command_line){ command_line->AppendSwitch("disable-gpu"); command_li...

2020-04-25 15:03:30 997

原创 CEF实现F5刷新快捷键

1.首先要让我们自己的CefClient这个类公有继承CefKeyboardHandler2.添加键盘事件构造函数virtual CefRefPtr<CefKeyboardHandler> GetKeyboardHandler() OVERRIDE{ return this;}3.然后重写父类的OnPreKeyEvent和OnKeyEvent两个方法在...

2020-04-25 13:25:49 491

原创 chromuim内核video audio标签自动播放

chromuim 66 版本以后的内核,在默认情况下<video>和<audio>标签已经不能自动播放了。需要用户点击触发后才播放,或者要把播放设置为静音模式才可自动播放。但很多情况下,我们希望用户看到这个标签后,就可以自动播放标签资源。还好,内核预留了设置开关。我们可以使用 --autoplay-policy=no-user-gesture-required 来关...

2020-04-25 11:10:22 189

原创 CEF编译步骤

一、编译CEF3里的lib:1.下载CEF3http://opensource.spotify.com/cefbuilds/index.html2.下载CMake,运行CMake_GUI.exe3.CMake设置CEF3的Sources文件夹路径,与新new build路径后,点击“Configure”4.选择编译平台,无后缀表示32位,ARM,W...

2020-04-02 17:44:01 267

原创 WinHttp编程步骤

WinHttpOpenWinHttpConnectWinHttpOpenRequestWinHttpAddRequestHeadersWinHttpSendRequestWinHttpReceiveResponseWinHttpQueryHeadersWinHttpReadDataWinHttpCloseHandleintcontextLengthId...

2020-03-13 19:51:49 226

原创 Win32使用GDI+画图

#include <windows.h>#include <gdiplus.h>using namespace Gdiplus;#pragma comment(lib, "gdiplus.lib")VOID OnPaint(HDC hdc) { Graphics graphics(hdc); Pen pen(Color(255...

2020-03-11 00:07:59 191

原创 GDI+绘制圆环,抗锯齿

COLORREF m_crOuterClr;COLORREF m_crInnerClr;CSize m_sizeInnerPos;void CRoundWnd::OnPaint(Gdiplus::Graphics* dc){ //抗锯齿 dc->SetSmoothingMode(Gdiplus::SmoothingModeHighQuality); //外圆 G...

2020-03-10 23:09:02 295

原创 Graphics.DrawEllipse 方法(椭圆)

重载列表 名称 说明 DrawEllipse(Pen, Int32, Int32, Int32, Int32) 绘制一个由边框定义的椭圆,该边框由矩形的左上角坐标 pen Type:System.Drawing.Pen Pen,它确定曲线的颜色、宽度和样式。...

2020-03-10 23:06:25 1161

原创 FillRect、FrameRect、Rectangle 矩形绘制函数使用对比分析

FillRect、FrameRect函数与Rectangle函数都是用于矩形操作。Rectangle函数用于绘制矩形,包括绘制矩 形边框线和填充矩形,而FillRect函数只用于填充矩形内部,FrameRect函数则只画矩形的线。也就是说, Rectangle=FillRect+FrameRect。  以上是这三个函数的关系。然而我要进一步了解这三个函数,还是有必要的。不要看到上面一段就觉得没 ...

2020-03-10 15:14:18 410

原创 VC控制Win7系统音量

#include <Windows.h> #include <Endpointvolume.h> #include <Mmdeviceapi.h> #include <conio.h> #pragma comment(lib, "Winmm.lib") IAudioEndpointVolume *m_pEndptVolCtr...

2019-12-20 00:20:39 62

原创 VC调节系统音量(win10/win7)

#include <windows.h> #include <mmdeviceapi.h> #include <endpointvolume.h>#include <audioclient.h>//设置音量bool SetVolum(int volume){HRESULT hr;IMMDeviceEnumerator* pDev...

2019-12-20 00:18:57 253

原创 Sessions, Window Stations and Desktops(GetDesktopWindow函数得到的桌面句柄, 是Csrss.exe创建的一个窗口)

由于不是搞安全的,对这块的东西一直不是很清楚,今天特意整理下。总的来说,他们的关系如下:我们知道Windows是支持多用户的,Session可以理解为每个用户登录,比如当前登录和远程登陆。Window Stations可以理解为登陆后的不同用户组,我们在任务管理器中可以看到不同的用户名(比如 Richard, system, local service等),其中只有一个活动Station...

2019-12-03 23:03:16 68

原创 ATL实现COM组件

参考文献:https://blog.csdn.net/Marcus2006/article/details/41978799ATL实现COM组件比较简单,关键是在程序中如何调用该组件。vs2010制作好COM组件后,会自动注册,但是vs2015却没法自动注册。一,自动注册:直接从MFC Typelib中导入该组件,导入相应接口,就可以了。二、非自动注册:方法一:只需要两...

2019-11-26 09:23:54 100

原创 ATL和vc++中的智能指针(分别是CComPtr和_com_ptr_t)

一、智能指针的概念智能指针是一个类,不是指针,智能指针在所包含的指针不再被使用时候会自动释放该所包含指针所占用的系统资源,而不用手动释放。原理:智能指针封装了包含指针的AddRef()函数和Release()函数,且在该类不被需要的时候在析构函数里调用包含指针的Release()函数释放包含指针的资源。因此实质是利用类的析构达到调用包含指针的Release()函数的目的。二、VC++中...

2019-11-25 16:52:39 124

原创 ATL com的dll文件与tlb文件

一、.tlb文件:只有COM组件才有tlb文件,普通dll文件没有。包含内容:1.它包含了COM类和接口的GUID值,接口的函数声明信息,并不是接口的实现文件。相当于类和接口的头文件。tlb文件被import后,编译成两个文件,.tli文件和.tlh文件,里面详细描述了接口和类声明和GUID值。二、.dll文件:COM组件的dll包含着真正的接口实现内容。因此,使用时两...

2019-11-25 16:51:24 97

原创 MFC实现COM组件

一般而言,ATL实现了对COM组件最好的支持,所以不用MFC实现COM组件。但是MFC实际上也是可以实现COM组件的。一、MFC DLL优点:MFC com组件可以将MFC的类型作为参数进行传递,但ATL com只能用规定的COM数据类型。但实际上MFC 扩展dll也可以用MFC类型作为参数。具体代码:https://github.com/moisiet/MFC-COMCOM组件与...

2019-11-25 16:49:18 129

原创 如何定义一个接口(接口Interface只在COM组件中定义了,MFC和C++都没有接口的概念)

接口是COM中的关键词,在c++中并没有这个概念。接口是一种极度的抽象。接口用在COM组件中有自己的GUID值,因此定义接口时一定要指定它的GUID值。实际上接口就是struct,即#define interface struct一、接口的定义步骤:0.包含头文件:#include "afxtempl.h"1.定义一个GUID值:static const IID IID_IFunc...

2019-11-25 16:47:21 94

原创 COM组件的集合与包容

集合与包容,实质就是组件之间的互相调用。即一个组件使用另一个组件的功能,达到代码复用的作用。只是这种复用是构建在二进制数据上的(因为被复用的组件常常以dll的格式存在),而不是像c++代码复用是以源文件的形式复用。集合与包容的区别在于:包容是将内组件的功能进行封装,由外组件提供接口供客户调用,但实质执行任务的仍然是内组件。集合是将内组件的功能暴露出来供客户调用,让客户感觉好像调用的是外...

2019-11-25 16:46:40 86

原创 关于com组件中idl文件的理解

IDL文件:IDL文件主要定义两大类内容:一是定义接口;二是定义类型库。定义接口的关键字是interface。每个接口定义前面方括号里面的内容是该接口的属性,最重要的是uuid的定义。该部分经过MIDL.exe编译后生成projectName_i.c和projectName_i.h文件,包含着接口本身(属性(uuid,helpstring等)和方法)的信息。该部分作用是定义接口。定义类...

2019-11-25 16:43:45 417

原创 关于MFC消息的总结

一、MFC的消息类型MFC的消息类型大致可以分为三种:1.命令消息。由菜单和工具栏或快捷键产生,以WM_COMMAND形式发出(以WM_COMMAND发出的还有很多控件,如Button等,但它们产生的不是命令消息,是通知消息)命令消息的消息宏是:ON_COMMAND(id,memberFxn)。2.窗口消息。由系统产生,典型特征是以WM_开头(WM_COMMAND除外)。此类消息映...

2019-11-25 16:43:11 44

原创 vs中解决方案、项目、类及ATL的理解

解决方案,是对所有要完成工作的统称,一般叫Solution。项目,也叫工程,是将解决方案分成若干个模块进行处理,一般叫做Project。添加项目就是添加工程。解决方案是所有项目的总和。一个项目里面有各种文件,如图片资源、音频资源、视频资源、ICO、MENU、SCROLLBAR等等。是一个独立的包罗各种资源的集合,基本算是功能齐全完备,自给自足的小团体了。因为每个项目里面都有一个CWinAp...

2019-11-25 16:42:07 127

原创 COM对象创建过程

在客户端需要调用COM组件时,通常调用windowAPI函数:STDAPI CoCreateInstance(REFCLSID rclsid, //创建的Com对象的类标识符(CLSID)LPUNKNOWN pUnkOuter, //指向接口IUnknown的指针DWORD dwClsContext, //运行可执行代码的上下文REFIID riid, //创建的Com对象的接...

2019-11-25 16:40:08 47

原创 COM组件宏观认识

一直搞不清楚COM到底是个什么东西,记录一些个人感想,可能很多错误的,慢慢消化.一.宏观认识:1.COM(组件对象模型)是一种标准,规则,要求,即即于建筑设计指标要求.2.语言无关性,因为是建立在二进制基础上的,也就是说客户调用COM组件时只能看到二进制而看不到未经编译的源代码程序,因此就不用管用什么语言编写的COM组件了.只要该语言编写的东西符合COM的标准就可以了.就相当于不用管房...

2019-11-25 16:26:20 58

原创 创建ATL工程及使用MFC测试COM组件

一、创建ATL工程1、创建ATL项目,取名为ATLMyCom2、在ATL项目向导中,勾选【支持MFC】(利用MFC测试用)、【支持COM+1.0】,其余的选项默认,点击完成。3、右键工程名称,选择添加类,接下来选择【ATL简单对象】。4、在【ATL简单对象向导】对话框中填入自己定义的类名,然后直接点击完成。5、切换到类视图,为刚刚添加的接口IMyATLC...

2019-11-23 19:09:38 154

原创 图标贪吃蛇

#include "stdafx.h"#include<stdio.h>#include<windows.h>#include<commctrl.h>#include<math.h>#include<stdlib.h>#include<malloc.h>#include<conio.h>#incl...

2019-11-22 15:07:48 147

原创 列表框消息大全

应用程序用CreateWindowEx创建列表框控件时,可根据控件的用途在下表中选择部份常数来设定其风格属性(style)。 常数 说明 LBS_DISABLENOSCROLL 固定显示垂直滚动条。未指定本项时,当列表未超出窗口,垂直滚动条自动隐藏。 LBS_EXTENDE...

2019-11-22 14:04:37 71

原创 列表框属性

列表框列表框允许用户从多个对象中选择一项或多项,这些对象可以是文本、文件和位图等。当列表框的项不能全部显示出来时,可以用滚动条来滚动显示。1. 基础知识默认的列表框只允许用户单选,需要多选时,须把列表框的风格定义为 LBS_ MULTIPLESEL 和 LBS_EXTENDEDSEL 。列表框提供的其他风格取值可以控制列表框的外观和操作。例如是否按照列表框各项的名称排序,是否多行排列,是...

2019-11-22 14:01:41 679

原创 QT设置背景图片的三种方式

1. QPalette的方法基本步骤:(1). 首先设置QWidget的autoFillBackground属性为真(2). 然后定义一个QPalette对象,设置QPalette对象的背景属性(颜色或者图片);(3). 最后设置QWidget对象的QPalette。QWidget *widget=new QWidget;widget->autoFillBackgr...

2019-10-20 18:40:33 521

原创 关于内存泄漏的问题-哪些变量需要释放

关于内存泄漏的问题-哪些变量需要释放推荐解答: Resource Allocation Routine Cleanup Routine Cleanup Required?================================================================================Accelerators...

2019-09-14 10:15:54 198

原创 Qt 帮助文档的使用

Qt 5 帮助文档的使用  Qt 5 帮助文档的使用学习图形界面开发,肯定离不开帮助文档的使用,因为它不像 C 语言那样就那么几个函数接口,图形接口的接口可以用海量来形容,常用的我们可能能记住,其它的真的没有必要去记,用到什么就去帮助文档查看用法。  我们使用 Qt 帮助文档,主要分为这么几步:  1)类使用的相关介绍  2)查看所用部件(类)的相应成员函数(功能,参数,返回值)...

2019-07-31 15:22:30 346 1

原创 总结windows中的GDI对象以及使用

之前有一个项目因为那时对C++还不太熟悉,没有太多经验,造成了内存泄漏、线程同步、GDI对象泄漏等新手常见的问题,所以这个程序会不定时地莫名其妙地死掉,后来通过用Visual Leak Detector小心翼翼地解决了内存泄漏的问题,接着系统就稳定了很多,而且也重新看了多线程那部分,加了多个锁,也总算解决了线程同步的问题。然而系统还是隔一段时间死掉,后来在任务管理器里发现其”GDI对象“只增不减,...

2019-05-11 17:01:44 644

原创 VS2010创建并使用DLL

一、为什么需要dll代码复用是提高软件开发 效率的重要途径。一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用。比较常见的例子是各种应用程序框架, 如ATL、MFC等,它们都以源代码的形式发布。由于这种复用是“源码级别”的,源代码完全暴露给了程序员,因而称之为“白盒复用”。“白盒复用”的缺点 比较多,总结起来有4点。暴露了源代码;容易与程序员的“普通”代码...

2018-06-23 12:40:56 2717

原创 C++ dll的隐式与显式调用

应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接。在使用DLL之前首先要知道DLL中函数的结构信息。Visual C++6.0(或者更先进的版本)在VC\bin目录下提供了一个名为Dumpbin.exe的小程序(使用方法见VS自带工具:dumpbin的使用),用它可以查看DLL文件中的函数结构。另外,Windows系统将遵循下面的搜索顺序来定位DLL: 1.包含EXE文件的目录...

2018-06-23 12:40:17 1007

空空如也

jiangqin115的留言板

发表于 2020-01-02 最后回复 2020-01-02

请各位大侠帮帮忙,如何修改listctrl里某一行的图标?

发表于 2014-07-12 最后回复 2017-05-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除