C++
qq_36633275
这个作者很懒,什么都没留下…
展开
-
error C2065: “IDD_PROPERTYPAGE”: 未声明的标识符
添加 #include “resource.h”原创 2020-09-10 14:19:18 · 181 阅读 · 0 评论 -
.tlb, .tlh, .tli文件
.tlb文件:COM类型库文件。在需要使用对应com类的模块里,“#import *.tlb”使用。.tlh,.tli文件:VC++编译器解析.tlb文件生成的标准C++文件。.tlh相当于类型申明(.h文件);.tli相当于定义实现(.cpp文件)。...转载 2020-09-07 10:41:14 · 984 阅读 · 1 评论 -
更改对话框背景色
1.资源视图-右键-添加资源-Bitmap-新建/导入;2.类向导-消息-WM_CTLCOLOR-确定,重写OnCtlColor函数HBRUSH CDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){ HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); static CBrush gBr; static bool isInited = false; if (!isInited原创 2020-08-26 18:06:11 · 191 阅读 · 0 评论 -
MFC中MessageBox的用法
在软件中我们经常会弹出个小窗口,给一点点提示.这就会用到消息对话框.在Win32 API程序中只有MessageBox这一种用法.而在MFC中就有三个方法:1.调用API中的MessageBox;2.调用CWnd的成员函数MessageBox;3.调用全局函数AfxMessageBox;一、 MFC中MessageBox的用法1、 函数原型及参数 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integ转载 2020-08-10 15:16:23 · 6051 阅读 · 0 评论 -
wcslen,WriteString写入文件问题
多字节字符下用CFile::Wirte写入文件的代码,在unicode下将strlen改为wcslen,发现写入文件乱码,改为CStdioFile::WriteString写入文件时,发现两行文本中间空一行。代码显示如下:void CMainFrame::OnWrite2(){ // TODO: 在此添加命令处理程序代码 CFile file(L"11.txt", CFile::modeCreate | CFile::modeWrite); CString str ; str.Format(原创 2020-08-07 12:15:16 · 443 阅读 · 0 评论 -
MFC CArchive类的文件读写
功能:1.将对话框里的变量数据保存到文档;2.读取文档数据,并显示到对话框步骤:1.新建对话框如下,关联相应的类,变量,响应函数2.读写实现方法如下:方法1:void Cdlg::OnBnClickedWrite(){ UpdateData(); CFile file(L"1.txt", CFile::modeCreate | CFile::modeWrite);//构建文件对象 CArchive ar(&file, CArchive::store);//构造类对象 ar原创 2020-07-23 17:04:01 · 456 阅读 · 0 评论 -
VS2013Release 模式下断点无效
1.工程项目上右键 -〉 属性2.c++ -〉 常规 -〉调试信息格式 -〉选 程序数据库(/Zi)或(/ZI), 注意:如果是库的话,只能(Zi)3.c++ -〉 优化 -〉优化 -〉选 禁止(/Od)4.连接器 -〉调试 -〉生成调试信息 -〉 选 是 (/DEBUG)...转载 2020-07-22 08:40:41 · 452 阅读 · 0 评论 -
报错:error C2664: “int _access(const char *,int)”
error C2664: “int _access(const char *,int)”: 无法将参数 1 从“CString”转换为“const char *”1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符。VS2013运行如下代码时报 error C2664错误,if (_access(strExePath, 0)) CreateDirectory(strExePath, NULL);修改方式:将编码方式更改为ANSI;将_access修改为_wacc原创 2020-07-13 15:57:03 · 431 阅读 · 0 评论 -
MFC属性表单的创建步骤
创建属性页IDD_PROP1,IDD_PROP2,IDD_PROP3:资源视图-添加资源-IDD_PROPPAGR_LARGE-设置属性;为属性页添加类CProp1,CProp2,CProp3:右键添加类-类名CProp1-基类CPropertySheet;为程序创建一个CPropertySheet属性表单对象:类向导-添加类-类名CPropSheet-基类CPropertySheet;属性表单头文件(PropSheet.h)中为属性页定义成员对象:类视图-右键CPropSheet-添..原创 2020-07-09 19:09:50 · 489 阅读 · 0 评论 -
List Control控件使用
以下未经说明,listctrl默认view 风格为report1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资...转载 2020-04-26 16:07:39 · 227 阅读 · 0 评论 -
判断文件夹是否存在,不存在则创建,并新建一个txt
WIN32_FIND_DATA fileFind; //数据结构,作为获取和更改文件属性的手段HANDLE hFirstFile;CString strFolder = _T("CAM"); //指定的文件夹CString strCurrentDir, strForeDir;//当前目录,上一级目录int flagFind = 0;CString strdir;TCHAR buf[...原创 2020-04-26 14:25:25 · 1206 阅读 · 0 评论 -
绝对路径、相对路径的获取
绝对路径: 较为稳妥且移植性较好的解决方式。调用函数: GetModuleFileName,返回当前进程的镜像文件(.exe)所在的目录函数原型:DWORD GetModuleFileName( HMODULE hModule, LPTSTR lpFilename, DWORD nSize);函数功能: 此函数得到当前应用程序的运行目录,还包括应用程序的文件名。参数:hModul...原创 2020-04-24 16:01:45 · 541 阅读 · 0 评论 -
显示文件夹中所有*.txt的文件名,并显示到CListBox
TCHAR Path[MAX_PATH];//定义一个TCHAR型数组,数组名exeFullPath,数组大小MAX_PATHif (!GetCurrentDirectoryW(MAX_PATH, Path))//获取当前路径{ MessageBox(_T("获取程序当前路径时失败!"));}CString strPath(Path);//转换为CString型数组csDirPath ...原创 2020-04-24 15:16:54 · 171 阅读 · 0 评论 -
Edit Control自动换行
txt文档里面有\r\n,但是显示到Edit Control上是一整行。解决方法属性-Multiline-true属性-Vertical Scroll-true原创 2020-04-16 17:17:17 · 171 阅读 · 0 评论 -
dlg.DoModal();不响应
调试程序时,总是运行到dlg.DoModal();既不弹出响应的对话框,程序也不向下走,停在此处了。问题: 对话框里面有个位图,加载时出错了。解决方法:打开XXXX.rc文件,注释掉CONTROL一行,对话框打开。XXXX.rc文件,增加"Static", SS_BITMAP, 即可。参考文章:https://blog.csdn.net/qq_36633275/article...原创 2020-04-16 16:47:15 · 867 阅读 · 0 评论 -
strtok_s分解字符串
char *strtok(char s[], const char *delim);分解字符串为一组字符串。s 要分解的字符串;首次调用,s指向要分解的字符串,之后再次调用s设为NULL。delim 分隔符字符串void SepLineText(CString str, CString strText[])//将 str字符串分解,存入strText[]{ int m = 0; C...原创 2020-03-24 12:12:52 · 226 阅读 · 1 评论 -
CListBox::Addstring添加元素顺序与显示顺序不一致
使用CListBox::Addstring添加一组数据保存到txt文档中,读取发现显示结果与加入顺序不同。解决方法:CListBox属性-sort改为ture附图:显示图1:显示第一行为空。显示图2:检查txt文档,末尾多了一个回车,去掉后,第一行显示为数据。显示图3:更改sort属性,显示结果与听加入顺序一致。...原创 2020-03-12 11:28:32 · 670 阅读 · 0 评论 -
报错:error C4996: ‘strtok‘: This function or variable may be unsafe
char *strtok(char s[], const char *delim);分解字符串为一组字符串。s 要分解的字符串;首次调用,s指向要分解的字符串,之后再次调用s设为NULL。delim 分隔符字符串...原创 2020-03-11 14:37:28 · 1693 阅读 · 1 评论 -
CFileDialog 打开/保存对话框
问题描述:下面有2段代码,分别属于不同的类,代码1报错(附图1,附图2),代码2正常运行,将代码1copy出来调试,依然报错,将代码2copy出来调试,正常运行,将代码2改为代码1,运行正常,将运行正常的代码1copy到程序中,运行正常。原因不明。代码3为自己提供缓冲区,可解决代码1报错问题。保存对话框代码1: CString TestFile; LPCSTR lpszFilte...原创 2020-03-05 16:47:36 · 223 阅读 · 0 评论 -
转义字符
转载 2020-03-05 11:00:19 · 204 阅读 · 0 评论 -
报错:fatal error C1083:无法打开源文件/ 无法打开包括文件
fatal error C1083:无法打开源文件 : No such file or directory先前运行的正常的文件,再次打开报错。打开工程目录下查看,文件都存在。打开.vcxproj的文件,查看工程的相关环境配置,发现文件引用路径出错。修改路径即可。...原创 2020-03-05 09:47:10 · 2999 阅读 · 0 评论 -
WINDOWS API——SHGETFILEINFO——获取文件信息
SHGetFileInfo的定义 SHGetFileInfo()函数的工作原理 SHGetFileInfo()函数的返回值SHGetFileInfo的定义SHGetFileInfo在MSDN上的定义是:Retrieves information about an object in the file system, such as a file, folder, direct...转载 2020-03-02 12:17:31 · 813 阅读 · 0 评论 -
查看Tab键顺序
资源视图–dialog–格式–Tab键顺序Ctrl+D左键点击可修改顺序原创 2020-02-24 18:46:59 · 215 阅读 · 0 评论 -
读txt内容显示到CListBox/CListControl控件
读Text文件夹下1.txt内容,并显示到CListBox控件1.获取文件路径…\projects\test\debug\Text\1.txt TCHAR exeFullPath[MAX_PATH];//定义一个TCHAR型数组,数组名exeFullPath,数组大小MAX_PATH GetModuleFileName(NULL, exeFullPath, MAX_PATH);//获...原创 2020-02-20 16:06:37 · 257 阅读 · 0 评论 -
头文件的查找路径
#include <Windows.h>C++标准库的头文件<>表示,从编译器默认的路径中去找文件stdio.h编译器默认路径下,包含了C标准库所需要的所有头文件#include “test.h”用户自定义的头文件“” 表示从当前目录下寻找文件test.h如果当前目录下找不到,在从编译器默认路径中查找...原创 2020-02-03 12:53:56 · 1337 阅读 · 0 评论 -
MFC中获取指针的方法
MFC中获取指针的方法1、获取应用程序指针CMyApp* pApp=(CMyApp*)AfxGetApp();2、获取主框架指针CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);或者CMainFrame* pMainFrame =...转载 2020-01-20 15:34:50 · 1052 阅读 · 0 评论 -
CFileFind类成员函数IsDots, IsDirectory
IsDots判断是否为点--IsDirectory表明这是一个目录,isDots表明这个是.或者…而这两个东西虽然是目录,但是一个表明这个目录本身,一个代表上层目录(但是根目录下面…也是本身)此时由CFileFind对象引用IsDirectory表明当前的CFileFind对象是否为目录。这个要说明一下,用过Dos的话,就应该知道,每个目录下都有缺省的两个目录,名称分别为 '. '和 '…...转载 2020-01-20 11:47:10 · 1428 阅读 · 0 评论 -
MFC修改窗口标题
BOOL CtestAApp::InitInstance(){ ...//此处代码省略 m_pMainWnd->SetWindowText("测试1"); m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); return TRUE;}原创 2020-01-16 16:05:17 · 323 阅读 · 0 评论 -
添加定时器
String Table中添加字符串资源IDS_TIMER,时钟indicators[]中添加IDS_TIMERSetTimer(1, 1000, NULL)添加消息响应函数OnTimer()代码片段如下:static UINT indicators[] = { ID_SEPARATOR, // status line indicator// ID_IN...原创 2020-01-16 14:47:15 · 285 阅读 · 0 评论 -
MFC程序启动过程
1. CtestAApp theApp; //theApp全局对象定义2. CtestAApp::CtestAApp(){ } //testA构造函数3. BOOL CtestAApp::InitInstance(){ } //初始化,窗口类注册、创建、窗口的显示和更新4. CtestADoc::CtestADoc(){ }5. CMainFrame::CMainFrame(){ ...原创 2020-01-16 10:32:47 · 157 阅读 · 0 评论 -
报错:error RC2108: expected numerical dialog constant 静态加载位图报错
图形控件Picture Control在对话框上添加图片增加位图资源选择Picture Control Type属性属性-- BitmapImage属性选择导入的位图IDB_BITMAP1编译编译报错:error RC2108: expected numerical dialog constant解决方法:双击error RC2108…打开文件;增加“Static”, S...原创 2020-01-13 17:03:15 · 961 阅读 · 0 评论 -
MFC修改应用程序窗口外观
修改应用程序窗口外观1. 窗口创建之前修改BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){ if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; cs.cx = 800; //修改窗口大小 cs.cy = 620; cs.style &= ~FWS...原创 2020-01-13 15:32:00 · 334 阅读 · 0 评论 -
VS复制另一个工程中的对话框报错---fatal error C1083,error C2065
将TestB工程中的对话框复制到testA中文件->添加->现有项目->testB.rc资源视图->testB.rc->dialog->复制IDD_WORK2testA.rc->dialog->粘贴IDD_WORK2解决资源管理器->testB.rc->右键移除testB文件夹->复制DialogWork2.h,Dial...原创 2020-01-10 17:26:24 · 411 阅读 · 0 评论 -
MFC绘制连续线条
MFC绘制连续线条思路:首先要得到线条起点,然后需要捕获鼠标移动过程中的的每一个点(WM_MOUSEMOVE),各点之间绘制非常短的线段,从而绘制一条连续的线条步骤1.添加成员变量private: CPoint m_ptOrigin; //线条起点 BOOL m_bDraw;//初始化FALSE.判断鼠标左键的状态,左键按下,真,起点,左键弹起,假,终点步骤2. ...原创 2020-01-09 16:18:56 · 880 阅读 · 0 评论 -
静态函数调用
静态函数#include <iostream.h>class Point{ public: void output()//非静态成员函数 { } static void init()//静态成员函数 { }};调用1:非静态成员函数和非静态成员属于对象的方法和数据,也就是先产生类的对象,然后通过类的对象去引用。voi...原创 2020-01-09 15:48:09 · 5168 阅读 · 0 评论 -
MFC画线
MFC画线添加成员变量private: CPoint m_ptOrigin;添加消息响应函数OnLButtonDown,OnLButtonUp;画线3.1 利用SDK全局函数实现画::GetDC(),::ReleaseDC()为全局SDK函数void CDrawView::OnLButtonDown(UINT nFlags, CPoint point) { m_ptOrigin...原创 2020-01-09 12:14:21 · 198 阅读 · 0 评论 -
MFC常识
在MFC中:AFx前缀:全局函数。Ex后缀:扩展函数。::作用域标识符 全局函数,表示调用的是Platform SDK函数。(自定义成员函数与API函数名称相同,API函数前加::,若两函数名不同,可不加::)eg:BOOL CWnd::ShowWindow(int nCmdShow) //自定义成员函数{ return ::ShowWindow(m_hwnd, nCmdSh...原创 2020-01-06 17:00:48 · 156 阅读 · 0 评论 -
UpdateData() 函数 strcmp()函数
UpdateData(TRUE) 控件输入值–>变量UpdateData(FALSE)变量值改变–>控件更新显示原创 2019-12-30 14:16:48 · 105 阅读 · 0 评论 -
断言(assert)的用法
assert() 的用法像是一种"契约式编程",在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个 if 语句:if(假设成立){程序正常运行;}else{报错&&终止程序!(避免由程序运行引起更大的错误)}但是这样写的话,就会有无数个 if 语句,甚至会出现,一个 if 语句的括号从文件头到文件尾,并且大多数情况下,我们要...转载 2019-12-26 12:01:09 · 152 阅读 · 0 评论 -
VC 获取文件的行数
VC 获取文件的行数*方法一:*CStdioFile的ReadString()方法一行一行的读。BOOL ReadLine(LPCTSTR FileName,//文件名是可以带路径的 unsigned int &LineNumber)//返回行数{ CStdioFile file; unsigned int FileLine=0;...原创 2019-12-23 16:17:51 · 929 阅读 · 0 评论