摘要:
一.自建工程使用MFC框架的步骤 1. 新建空项目,更改选项 2.需要自己写两个类 class CMyApp : public CWinApp { }; class CMyDlg :public CDialogEx { }; 这两个类要包afxwin.h和afxdialogex.h两个含头文件,编译 阅读全文
摘要:
1. MFC源码位置 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.25.28610\atlmfc\src\mfc 2.RegisterClass 2.1 打开FileLocator P 阅读全文
摘要:
一. 发送消息 1. SendMessage: 调用窗口过程函数,并且等待窗口过程函数处理完毕才返回。 2. PostMessage: 将消息投递到消息队列,不等待处理,立即返回。 3. 自定义消息: 大于等于WM_USER 二. 对话框 1. 模态对话框 1. 代码写法 1. 设计对话框资源模板 阅读全文
摘要:
一. 资源的命名 资源编辑器中可以将资源的ID命名为字符串,调用时使用: wndclass.hIcon = LoadIcon(hInstance, TEXT("icon1")); 也可以命名为非字符串,调用时使用: wndclass.hCursor = LoadCursor(hInstance, M 阅读全文
摘要:
一. 绘图消息WM_PAINT WM_PAINT消息出现时机: 1.窗口创建 2.窗口尺寸改变 3.最大最小化 4.从隐藏到显示 5.从屏幕外到屏幕内 窗口对象中保存了无效区,如果存在无效区,系统就会一直发送WM_PAINT消息。BeginPaint会清掉无效区,GetDC则不会。 系统没发送WM_ 阅读全文
摘要:
一. windows程序和控制台程序的区别: 1. 入口点不同: Window程序: int __stdcall wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow); 控制台程 阅读全文
摘要:
迭代器封装了位置概念。 for (auto &i : lst) { cout << i; } 迭代器可以封装为模板类的内部类,并将模板类声明为友元。 对于自定义类型,如果想让编译器支持范围for的语法,需要提供begin(),end(),operator++,operator!=,operator* 阅读全文
摘要:
算法比较前提: 1.数据样本的数量相同 2.每条指令执行的时间相同 O(c) 常数 O(Log N) 对数,以2为底 O(Log N^2) 对数平方 O(N) 线性 O(N log N) 线性对数 O(N^2) 二次 O(N^3) 三次 O(2^N) 指数 时间复杂度增长图: 阅读全文
摘要:
异常:错误,意料之外的情况 常见的错误处理方法: 1.全局错误码 给每个错误定义一个错误码,赋值给全局变量 int n_gError 例如C语言库和windows编程的GetLastError() 缺点:维护困难 2.函数返回值 例如成功返回0,失败返回1... 缺点:函数调用层次多时,内层函数调用 阅读全文
摘要:
调用模板函数时,编译器根据调用参数推断出模板参数,用来实例化一个特定版本的函数。 template<typename T> T Add(T a, T b) { return a + b; } template<typename T,typename U> T Add(T a, U b) { retu 阅读全文