- 博客(11)
- 资源 (20)
- 收藏
- 关注
原创 VC++ CListTree遍历所有节点
1、释放节点及所有子节点数据(T表示节点存储的数据类型)template<typename T>void FreeAllItemsData(_In_ HTREEITEM hItem){ if (hItem == NULL) return; T* pData = (T*)m_Tree.GetItemData(hItem); if (pData) { delete pData; pData = NULL; } HTREEITEM hChild = m_Tree.
2020-06-30 23:38:57 576
原创 算法 MD5
头文件定义(MD5.h):#ifndef MD5_H#define MD5_H typedef struct{ unsigned int count[2]; unsigned int state[4]; unsigned char buffer[64];} MD5_CTX; #define F(x,y,z) ((x & y) | (~x & z))#define G(x,y,z) ((x & z) | (y & ~z))#define
2020-06-30 23:17:42 228
原创 多语言版本 UI资源切换
1、如果窗体资源和源码里面所使用的字符串资源,都已经存在于资源视图里面,则通过下面方式来实现:LANGID lid = GetSystemDefaultLangID();if (0x0809 == lid){ //英语 0x0809 SetThreadUILanguage(MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT));}else{ //中文 0x0804 SetThreadUILanguag
2020-06-30 23:12:06 678
原创 算法 MS Crypto加密/解密
接口定义:// 加密数据static BOOL xEncrypt(BYTE *pbSourceData, DWORD dwSourceDataLen, BYTE **pbDestData, DWORD *pdwDestDataLen, LPCTSTR lpszPassword);// 解密数据static BOOL xDecrypt(BYTE *pbSourceData, DWORD dwSourceDataLen, BYTE **pbDestData, DWORD *pdwDestDataL
2020-06-30 23:01:47 945
原创 算法 MD5
头文件定义(MD5.h):#ifndef MD5_H#define MD5_H#include <string>#include <fstream>using std::ifstream;using namespace std;/* MD5 declaration. */class MD5{ /* Type define */ typedef unsigned char byte; typedef unsigned int uint
2020-06-30 22:56:41 196
原创 算法 C++异或加密/解密
int xorkey[] ={ 0x41, 0xB6, 0x7F, 0x58, 0x38, 0x0C, 0xF0, 0x2D, 0x7B, 0x39, 0x08, 0xFE, 0x21, 0xBB, 0x41, 0x58,};void __fastcall xor_encrypt(LPBYTE pbData, int nSize){ BYTE byTemp = 0; if (pbData) .
2020-06-30 22:52:41 1968
原创 C++模板(template)使用注意事项(error LNK2019: 无法解析的外部符号)
通常写模板类都是在类定义里面来实现,一个头文件(.h)包含所有定义和声明代码。今天调试程序中无意识的发现程序有内存泄漏,原来是CListCtrl在使用过程中,节点关联了数据指针,以前都是在控件窗体销毁事件里面进行数据释放处理,但是发现每次释放都得在销毁事件里面进行处理非常麻烦,有没有简单点的处理方式呢?我就想窗体销毁的时候,控件也会要销毁的,于是想在控件销毁里面顺带吧节点数据也给销毁,这样是不是就省事很多呢?这样做确实省事方便了很多。由于我不想关心节点所关联的数据类型,于是获取节点数据,返回值类型统一采用L
2020-06-29 15:35:35 868
原创 CSWDirectoryListCtrl、CSWDirectoryTreeCtrl、CSWFileListCtrl3个自绘控件的关系
为了说清楚这3个控件的用途,请先看下图:1、CSWDirectoryTreeCtrl功能:文件管理器左侧部分,用于显示资源目录结构,是一个树结构图,可以很清楚的知道目前选择的磁盘目录,继承CTreeCtrl控件。2、CSWFileListCtrl功能:文件管理器右侧部分,用于显示文件/目录列表,是一个列表框,可以双击进入下一级目录,但是没法返回上一级目录,继承CListCtrl控件。3、CSWDirectoryListCtrl功能:集文件管理器左右侧功能于一体,用于显示文件/目录
2020-06-29 13:20:14 172
原创 VC++ CSWDirectoryListCtrl问题集锦
总体来说,这个控件难度值并不大,但是却卡了我1天时间,用于解决控件列表内容刷新导致主窗体闪烁问题。究其原因:最初我并不是从CListCtrl继承下来的,而是继承自己成熟的控件CSWListCtrl。CSWListCtrl控件自绘,我采用的是重载virtual void DrawItem(LPDRAWITEMSTRUCT /*lpDrawItemStruct*/);来实现的,目的是实现一个强大的CListCtrl控件,其接口功能有:1、自定义背景色或图片2、自定义单元格颜色和字体3、...
2020-06-29 13:09:39 192
原创 VC++ CSWDirectoryListCtrl磁盘文件列表
效果图:头文件定义(CSWDirectoryListCtrl.h):#pragma once#include "afxwin.h"#include <afxcmn.h>#include <string>namespace sw { class CSWDirectoryListCtrl: public CListCtrl { public: CSWDirectoryListCtrl(); virtual ~CSWDirectoryListCtrl(
2020-06-29 12:34:18 395
原创 CImageList 透明贴图解决方案
CImageList贴图其实是支持透明层,要不然也不会弄出个ILC_COLOR32出来,但是我们绘图的时候却发现,透明边缘化效果非常差,透明色变成了白色毛边的底图,难道是加载的图标文件自身出了问题吗?有不少网友说要设置透明色,又或者先将图标绘制到一个支持透明层的DC上去,再次进行贴图,如果不闲麻烦,各位可以自己试着操作一遍,复杂度就不说了,有没有效果最重要,第一种方式我尝试过肯定不行,至于第二种,鉴于复杂度我懒得折腾了。MSDN:https://docs.microsoft.com/zh-cn/window
2020-06-28 10:28:08 449
VC++/Delphi下可用的GIS控件MapWinGIS(ocx)
2021-03-31
MapWinGis第3方库
2021-01-25
libzdb-3.2.2.zip
2020-08-18
HTTP网络文件服务器(Delphi版)
2020-03-25
ZIP包格式压缩/解压缩
2019-12-31
工程制图软件
2018-06-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人