原创 MFC使用button選擇文件(夾)的實現

1.打開文件 CFileDialog ObjFile(TRUE, NULL, NULL, OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY, _T("圖片文件(*.png; *.jpg; *.jpeg; *

原创 C++ 工廠模式的一點構想

1.工廠需求 2.代碼實現 schoolfactory.h #ifndef _SCHOOLFACTORY_H__ #define _SCHOOLFACTORY_H__ #include <map> #include <vector>

原创 滾動條的實現(2)

對比“滾動條的實現(1)":SetScrollINfo(...)和GetScrollInfo(...)多了兩項新特性:1.滾動條滑塊大小隨界面改變;2.對比滑塊位置HIWORD(wParam)從16位擴展到nPos的32位。 函式解析:

原创 Duilib+VS2013環境搭建

下載DuiLib庫     VS2013版本 下載地址: 官方:https://github.com/duilib/duilib  troy: https://github.com/qdtroy/DuiLib_Ultimate juhu

原创 滾動條的實現(1)

滾動條(以滾動列,即縱向爲例) 滾動條的繪製:系統繪製CreateWindow(..., WS_OVERLAPPEDWINDOW | WS_VSCROLL /*| WS_HSCROLL*/, ...) 系統與用戶分別需要對滾動條做些什麼

原创 WM_PAINT消息解析

WM_PAINT消息的產生:當顯示區域(客戶區)存在無效區域時,系統會產生一個WM_PAINT消息,通知視窗處理程序重繪顯示區域。WM_PAINT消息不進入GetMessage(...)的消息隊列,UpdateWindow(...)也不會

原创 視窗產生的過程

視窗產生的過程說明圖 測試程式: #include <windows.h> #include "mmsystem.h" #pragma comment(lib,"winmm.lib")//多媒體播放庫 LRESULT CALLBA

原创 windows高DPI總結

windows的高DPI的一些總結:https://blog.csdn.net/chenlycly/article/details/53142098

原创 給控件添加文件或文件夾拖放功能

1.控件“屬性”的“消息列表”給WM_DROPFILES添加消息處理函數OnDropFiles 2.在函數void CImgAnalysis::OnDropFiles(HDROP hDropInfo)中獲取文件的路徑 void CImg

原创 智能指針

C++11引用了智能指針來解決內存泄漏的問題,特別在大型項目中new和delete頻繁使用後,導致後期維護成本的持續走高。智能指針可以很好解決這一問題,但智能指針的使用也存在一些陷阱,只有熟練使用之後才能讓它成爲利器。爲了更好地反應問題現

原创 模板類的使用

1.目的:使用模板的目的就是能夠讓程序員編寫與類型無關的代碼。    注:模板的聲明或定義只能在全局,命名空間或類範圍內進行。 2.通式:class 或 typename 類:template<class  形參名,class 形參名,…

原创 tinyxml2使用的基本方法

1.tinyxml2的下載和維護地址:https://github.com/leethomason/tinyxml2 2.要使用的文件tinyxml2.h和tinyxml2.cpp,下面做了一下簡單的封裝,目前項目夠用 注意:tinyxm

原创 default和delete

詳細說明:https://www.ibm.com/developerworks/cn/aix/library/1212_lufang_c11new/index.html 點贊 收藏 分享 文章舉報

原创 C++11 lambda表達式

1.作用:可以方便的定義和創建匿名函數,以更直接的方式去寫程序,具有更好的可讀性和可維護性。 2.語法形式:[ capture ] ( params ) -> ret { body } 3.變量捕獲: [] 不截取任何變量 [&} 截取

原创 C++ 內存泄漏的處理

關於C++ 的內存泄漏問題一直是項目後期調試時的攔路虎,特別是項目的深度擴展和迭代,造成大量的內存問題。 1.使用vld 可以比較精準地定位到內存泄漏的程序申請點,方便快速處理問題; 缺點是當項目的new或mallolc調度深度太大時,直