- 博客(72)
- 资源 (1)
- 收藏
- 关注

原创 工作笔记11
http://www.docin.com/p-876046409.htmlhttps://blog.youkuaiyun.com/simanstar/article/details/21126209http://www.360doc.com/content/11/0527/16/930254_119801102.shtml 三维模型下载网址内存泄漏:将Gvld.h中的注释掉的内容打开性能查看工具Co...
2018-12-27 15:32:01
385
1
原创 使用OpenGL自己定义一个button,响应鼠标消息:掠过、点击、拖动
使用OpenGL自己定义一个button,响应鼠标消息:掠过、点击、拖动
2025-02-08 16:58:41
355
原创 使用OpenGL进行绘制,包含万向节摄像机、着色器、VAO、贴图、立方体圆柱圆球圆环圆锥的面片生成和绘制
使用OpenGL进行绘制,包含万向节摄像机、着色器、VAO、贴图、立方体圆柱圆球圆环圆锥的面片生成和绘制。
2025-01-17 18:23:27
117
原创 Effective C++ 若所有参数都需要类型转换,使用非成员函数
【代码】Effective C++ 若所有参数都需要类型转换,使用非成员函数。
2024-11-06 19:58:48
97
原创 导出类、基本运行时检查
#if defined FBC_EXPORT#define FBC_API __declspec(dllexport)#else#define FBC_API __declspec(dllimport)#endif导出类或函数C/C++ 代码生成 -》基本运行时检查,检查是否越界dll中类的成员变量变化后,编译dll后,假如exe中使用的dll,需要重新编译exe...
2022-03-18 16:32:53
818
原创 HENHMETAFILE 打印图片到剪切板
if (OpenClipboard()) { EmptyClipboard(); SetClipboardData(CF_ENHMETAFILE, hMF); HBITMAP hBitmap = ::CreateCompatibleBitmap(hdcScreen, lWidth, lHeight); HDC hMemDC = ::CreateCompatibleDC(hdcScreen); if (hBitmap != NULL && hMemDC ..
2021-11-05 16:48:12
348
原创 CTreeCtrl的使用:TVN_SELCHANGING、NM_CUSTOMDRAW消息
public: CTreeCtrl m_Tree; afx_msg void OnTvnSelchangingSeltree(NMHDR *pNMHDR, LRESULT *pResult); afx_msg void OnNMCustomdrawTree(NMHDR *pNMHDR, LRESULT *pResult);BEGIN_MESSAGE_MAP(CBlockRefSelDlg, CDialog) ON_NOTIFY(TVN_SELCHANGING, IDC_BLK_SELTREE,
2021-07-21 17:20:31
465
原创 读写XML文件
读取XML文件 MSXML2::IXMLDOMDocumentPtr spDoc; HRESULT hr = spDoc.CreateInstance(__uuidof(MSXML2::DOMDocument)); ATLASSERT(SUCCEEDED(hr)); CComBSTR bsDataPath; m_spPathMng->GetLocalFullPath(PN_DATA, &bsDataPath); CString strFile = C...
2021-06-03 17:35:07
195
原创 HSL和RGB的相互转换
void CCxDbSolid::RGB2HSL(LONG cr, double &H, double &S, double &L){ double R, G, B, Max, Min, DelMax; byte *pTemp = (byte *)&cr; R = (double)*pTemp / 255.0; G = (double)*(pTemp + 1) / 255.0; B = (double)*(pTemp + 2) / 255.0; Min =
2021-05-13 11:14:23
2069
原创 读取UTF8等格式的文档
void GetFileDataFormatData(BSTR i_bsFilePathName){ m_vecPts.clear(); m_vecCurTypes.clear(); // 读文件 CStringArray StrArray; CString sFileName = COLE2T(i_bsFilePathName); try { FILE* f = NULL; _tfopen_s(&f, sFileName, _T("rb")); BYTE bom
2021-02-26 14:08:32
353
原创 创建纯色画刷、位图画刷填充
// 0. 大背景 HBRUSH hBrushBack = ::CreateSolidBrush(RGB(0, 0, 255)); HBRUSH hBrushOld = (HBRUSH)pDC->SelectObject(hBrushBack); POINT ptArrayBack[4]; ptArrayBack[0].x = 0; ptArrayBack[0].y = 0; ptArrayBack[1].x = 0; ptArrayBack[1].y = 1000; ptArray
2020-12-30 13:32:09
255
原创 GDI获得当前HDC的HPEN的颜色
INT i = ::GetROP2(hdc); /*HPEN hPen = ::CreatePen(PS_SOLID, 0, RGB(0, 255, 0)); ::SelectObject(hdc, hPen);*/ HPEN hPen = (HPEN)GetCurrentObject(hdc, OBJ_PEN); CPen *pPen = CPen::FromHandle(hPen); int color = 0; if (pPen) { UINT ui = p..
2020-11-16 21:38:12
3316
1
原创 CMetaFileDC的创建
int CALLBACK MyEnhMetaFileProc( _In_ HDC hDC, _In_ HANDLETABLE *lpHTable, _In_ const ENHMETARECORD *lpEMFR, _In_ int nObj, _In_ LPARAM lpData){ DWORD iType = lpEMFR->iType; return 1;} .
2020-11-12 22:27:16
742
原创 获取剪切板有格式的数组
void GetClipboardStr(BSTR *o_pbsText){ CString strText; if (IsClipboardFormatAvailable(CF_UNICODETEXT)) { OpenClipboard(NULL); if (IsClipboardFormatAvailable(CF_UNICODETEXT)) { HANDLE hGlobal = GetClipboardData(CF_UNICODETEXT); strText = .
2020-11-02 20:14:31
209
原创 PreTranslateMessage将WM_MOUSEWHEEL消息发送给子窗口
BOOL PreTranslateMessage(MSG* pMsg) { switch (pMsg->message) { case WM_MOUSEWHEEL: { POINT pos; pos.x = GET_X_LPARAM(pMsg->lParam); pos.y = GET_Y_LPARAM(pMsg->lParam); CRect Rect; m_wnd.GetWindowRect(&Rect); if (Rect.Pt
2020-11-02 10:16:41
579
原创 OnMouseMove消息需要注意OnMButtonDown、OnMButtonUp的位置
// 更加严谨的写法可以避免是Down和Up都发生在当前窗口void OnMButtonDown(UINT nFlags, CPoint point){ m_bMBttonDown = TRUE; SetCapture();}void OnMButtonUp(UINT nFlags, CPoint point){ if (m_bMBttonDown) { m_bMBttonDown = FALSE; ReleaseCapture(); }}void OnMouseMove
2020-11-02 10:12:09
697
原创 获得编辑框的文本区域大小
RECT rc; rc.left = rc.top = 1; rc.right = m_iWidth - 1; rc.bottom = m_iHeight - 1; // ES_NOHIDESEL用于Edit控件没有焦点的时候,也可以选中其中的内容,并加亮 DWORD dwStyle = WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_AUTOVSCROLL | ES_NOHIDESEL/*| WS_BORDER*/ ; m_EditCtrl.Creat.
2020-09-25 10:33:51
230
原创 对话框拦截控件消息
BOOL CQuickMosaicDlg::PreTranslateMessage(MSG* pMsg){ if (pMsg->message==WM_KEYDOWN) //键盘按下 { if (pMsg->hwnd==GetDlgItem(IDC_DATALIST)->m_hWnd) { switch (pMsg->wParam) { case 'A'://A键
2020-09-10 15:47:07
398
原创 获取HBITMAP,导出带透明度的png图片
// 从HDC 获取 HBitmap STDMETHOD(ExportHBitmap)(ULONG_PTR* o_hBitmap) { HBITMAP hBmp = NULL; HANDLE hOld; HDC hMemDC = NULL; long lRectPara[4]; GetWndRect(lRectPara); long nWidth = lRectPara[2]; long nHeight = lRectPara[3]; hMemDC = CreateC
2020-06-23 20:41:18
1009
原创 三点求圆弧中心
作者:李玉昆链接:https://www.zhihu.com/question/40422123/answer/95637252来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。已知空间三个点,解算外接圆圆心坐标,C++编程实现struct PT3{ double x, y, z;};int solveCenterPointOfCircle(std::vector<PT3> pd, double centerpoint[]){ double
2020-06-08 16:21:52
758
原创 ATL::CImage将数据信息转为带透明度的png图片
//保存到磁盘上的png文件int iWidth = m_FrameBuffer.m_iSizeX;int iHight = m_FrameBuffer.m_iSizeY;CImage Image;Image.CreateEx(iWidth, -iHight, 32, BI_RGB, NULL, 0x000000FF);byte* fromByte = m_FrameBuffer.m_pBits;int nPitch = Image.GetPitch(), nBPP = Image.GetBPP
2020-06-02 21:23:22
356
原创 Windows GDI 坐标空间和变换
void CWindowsPracticeView::OnDraw(CDC* pDC){ CWindowsPracticeDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; HDC hdc = pDC->m_hDC; // TODO: 在此处为本机数据添加绘制代码 // 第6章 坐标空间和变...
2019-11-29 16:19:07
347
原创 渐变色画刷:线性渐变画刷/路径渐变画刷
void GetRGB(LONG cr, byte& R, byte& G, byte& B){ byte *pTemp = (byte *)&cr; R = *pTemp; G = *(pTemp+1); B = *(pTemp+2);};void GetTightXYBox(XYZ* i_ptArray, long i_nPtsNum, XYZ...
2019-11-15 17:08:05
486
原创 计算程序运行时间
LONGLONG t1, t2, persecond; QueryPerformanceFrequency((LARGE_INTEGER *) &persecond); //询问系统一秒钟的频率 QueryPerformanceCounter((LARGE_INTEGER *) &t1); ...... QueryPerformanceCounter...
2019-10-16 17:25:54
124
原创 C++11一些新特性
右尖括号改进vector<vector > vec; // C++03vector<vector> vec; // C++11nullptrvoid f(int);void f(void*)f(0); // call f(int)f(NULL); // call f(int) 因为NULL的值为0F(nullptr); // call f(v...
2019-10-14 16:10:22
97
原创 OpenGL基础练习
#include "windows.h"#include <glad/glad.h>#include <GLFW/glfw3.h>#include <iostream>#include <string>//#include "windows.h"// 纹理加载函数#include "stb_image.h"// 数学算法类#i...
2019-10-10 17:26:23
224
原创 LONG类型的最大值限制
intsafe.h关于最大最小值,保证不越界#define INT8_MAX 127i8#define UINT8_MAX 0xffui8#define BYTE_MAX 0xff#define SHORT_MAX 32767#define INT16_MAX 32767i16#define USHORT_MAX ...
2019-09-27 12:31:28
5626
原创 MFC文件选择对话框(支持多选)
void CSelectDlg::OnButselect() { // TODO: Add your control notification handler code here //声明变量 CString strPath = _T(""); //构造文件打开对话框 CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREA...
2019-09-18 23:11:35
1359
原创 CString 转换成TCHAR *的方法
方法一,使用强制转换。例如:CString theString( “This is a test” );LPTSTR lpsz =(LPTSTR)(LPCTSTR)theString;方法二,使用strcpy。例如:CString theString( “This is a test” );LPTSTR lpsz = new TCHAR[theString.GetLength()+1];...
2019-09-18 09:55:36
1515
原创 将数据导出excel
#include "stdafx.h"#include "ToExcel.h"//#import "C:\Program Files\Common Files\Microsoft Shared\OFFICE14\MSO.DLL" #import "libid:2DF8D04C-5BFA-101B-BDE5-00AA0044DE52" \ rename("RGB", "MSORGB") \...
2019-09-17 11:14:23
172
原创 调用MFC打开文件选择对话框
CFileDialog dlg(FALSE, _T("xlsx"), NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("EXCEL文件|*.xls;*.xlsx||"), this); if (dlg.DoModal() != IDOK) { return; }
2019-09-16 23:18:03
312
原创 com写代码注意事项
应将 IGeCurve * spCurFirst, *spCurLast 写成 CComPtr spCurFirst, spCurLast想要遍历获得首曲线,可以不用bool变量来判断,可以判断获得首曲线是否为空
2019-09-16 23:15:45
101
原创 _tfopen_s打开文件返回的错误码信息
CComBSTR errorLog;errorLog += _T("1.查询目录:");errorLog += str1;errorLog += _T("\r\n");if( (err = _tfopen_s( &stream, str1, _T("r") )) ==0 ){ AddFont(cType,&LogFont,&ntme,str1,type);...
2019-08-03 22:41:31
1279
原创 CGridCtrlEx表格及限制表格输入数字和‘.’
CGridCtrlEx m_Grid;BOOL CDlgFillinTable::SetContentsByNumericCol() { CCellID currentCell = m_Grid.GetFocusCell(); CString strContents = m_Grid.GetItemText(currentCell.row,currentCell.col); if(st...
2019-08-03 22:39:08
480
原创 根据ini文件读取spb mdb文件信息
#include <iostream>#include <fstream>#include <map>#include <string> #include <io.h>#include <WINDOWS.H>#include <iosfwd>#include <vector>#inclu...
2019-08-03 22:31:24
176
原创 mfc的一些使用
//List View m_ListView.GetClientRect(&rect); m_ListView.SetExtendedStyle(m_ListView.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); // 为列表视图控件添加9列 CString heads[9] = {_T("时...
2019-07-01 21:33:03
123
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人