c++
记录我从0基础学习MFC QT等一些笔记和资料
lunatic7
这个作者很懒,什么都没留下…
展开
-
MFC的ON_NOTIFY / ON_NOTIFY_REFLECT / ON_NOTIFY_REFLECT_EX
如果ON_NOTIFY_REFLECT_EX(消息, 消息处理函数)中的第二个参数也就是消息处理函数的返回值是bool类型的,且返回值是TRUE,那么就是说这个消息会既发给子控件又发给父窗口,即又在子控件里处理该消息,又在父窗口里处理该消息,如果返回值是FLASE的话或者是其他类型的返回值的话,就只发给子控件了,这个时侯ON_NOTIFY_REFLECT_EX就相当于ON_NOTIFY_REFLECT。ON_NOTIFY是子控件把消息发送给父窗口,由父窗口来处理消息,消息处理函数在父控件的类里面。转载 2023-06-20 00:25:08 · 523 阅读 · 0 评论 -
远程获取进程DLL模块地址
// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include <Windows.h>#include "tlhelp32.h"#include <tchar.h>#include <string>#include <stdio.h>HMODULE GetProcessModuleHandle(DWORD pi.原创 2022-04-27 20:47:41 · 1165 阅读 · 0 评论 -
笔记:Winmain使用CreateDialogParam创建窗口
#include <windows.h>// 开启Win32视觉效果#pragma comment(linker,"\"/manifestdependency:type='win32' \name = 'Microsoft.Windows.Common-Controls' \version = '6.0.0.0' \processorArchitecture = '*' \publicKeyToken = '6595b64144ccf1df' \language = '*'\"")原创 2021-05-18 02:49:07 · 493 阅读 · 0 评论 -
模仿QT源码中的http/https访问网页 GET/POST封装
这段代码也是经历我的“千锤百炼”,用到了我学到的很多东西。比如智能指针等等还望各位多多指教#pragma once#include <string>#include <sstream>#include <memory>#include <vector>#include <map>#include <winhttp.h>class NetworkReply;using Header = std::multimap原创 2020-09-21 23:37:27 · 375 阅读 · 0 评论 -
学习笔记:c++ 11 遍历Vector方法
//遍历Vector 带锁std::vector<Work*> allInfo; std::unique_lock<std::mutex> lock(WorkLock); std::for_each(allInfo.begin(), allInfo.end(), [&](Work* p) {p->Stop(); });//查询Vector std::unique_lock<std::mutex> lock(ListLock); auto ite原创 2020-07-09 23:56:15 · 557 阅读 · 0 评论 -
QT5.14 windows msvc静态编译 openssl1.1.1
configure -prefix D:\Qt\NewStatic -platform win32-msvc -opensource -debug-and-release -confirm-license -opengl dynamic -mp -static -static-runtime -no-shared -qt-libpng -qt-libjpeg -qt-zlib -qt-pcre -...原创 2020-03-30 19:55:27 · 2090 阅读 · 0 评论 -
学习笔记 :mfc窗口显示png图片
void ShowImage(void* pImage){ COleStreamFile osf; osf.CreateMemoryStream(NULL); osf.Write(pImage, 1024 * 10); osf.SeekToBegin(); CImage image; if (SUCCEEDED(image.Load(osf.GetStream()))) { ...原创 2020-02-02 03:22:49 · 872 阅读 · 0 评论 -
c++ 异常处理
C++ 异常处理异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:try、catch、throw。throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。catch: 在您想要处理问题的地方,通过异常处理程序捕获异常。catch 关键字用于...转载 2020-02-02 03:17:15 · 157 阅读 · 0 评论 -
MFC类与对应的头文件
CAnimateCtrl afxcmn.hCArchive afx.hCArchiveException afx.hCArray afxtempl.hCAsyncMonikerFile afxole.hCAsyncSocket afxsock.hCBitmap afxwin.hCBitmapButton afxext.hCBrush afxwin.hCButton afxwin....转载 2020-01-21 02:08:59 · 3641 阅读 · 0 评论 -
学习笔记:c++11 随机数
#include <random>std::random_device rd;int m_rand = rd();原创 2019-10-18 02:13:01 · 156 阅读 · 0 评论 -
学习笔记:c++字符串文本操作
复制文本lstrcpyLPSTR lstrcpy(LPSTR lpString1, LPCSTR lpString2);文本长度lstrlenint lstrlen(LPCSTR lpString);文本比较lstrcmpint lstrcmp(LPCSTR lpString1,LPCSTR lpString2);格式化文本 拼接文本wsprintf //spr...原创 2019-10-17 20:08:11 · 345 阅读 · 0 评论 -
学习笔记:别人源代码看到的 屏蔽警告
#pragma warning(push,3) #pragma warning(disable : 4702) // unreachable code. #pragma warning(disable : 4786) // too long identifiers. #pragma warning(disable : 4018) // signed/unsigned mismatch. #...原创 2019-10-17 19:57:02 · 188 阅读 · 0 评论 -
mfc 枚举enum使用例子
enum EnAppState { ST_STARTING, ST_STARTED, ST_CONNECTING, ST_CONNECTED, ST_STOPPING, ST_STOPPED }; SetAppState(ST_STOPPED); void CServerDlg::SetAppState(EnAppState state) { m_enState = s转载 2017-11-18 01:22:49 · 3671 阅读 · 0 评论 -
MFC中使用CPropertySheet实现Tab Control
1.先建立MFC应用程序,然后在资源管理器中新建一对话框,并为它建立对应的类 2.类向导创建新mfc类 基类为CPropertySheet。 2.接着分别为创建两个对话框,建立两个与之对应的类时,注意选择基类为CPropertyPage。假设新生成两个类为CPage1,CPage2。 3.在主dlg 里添加头文件page1 page2 和创建的类.h 添加变量 public: CProS原创 2017-12-03 03:37:08 · 608 阅读 · 0 评论 -
小笔记 DLL导出 和 Lib引用
#ifdef KET_STATIC_LIB#define KET_API EXTERN_C#else#ifdef KET_EXPORTS#define INIT_API EXTERN_C __declspec(dllexport)#else#define INIT_API EXTERN_C __declspec(dllimport)#endif#endifLIb静态库调用,添加KET原创 2017-12-10 02:59:08 · 335 阅读 · 0 评论 -
MFC自定义消息
#define WM_MYMSG WM_USER+8类向导添加自定义消息ON_MESSAGE(WM_MYMSG, &CmodalessDlg::OnClist)消息响应afx_msg LRESULT CmodalessDlg::OnClist(WPARAM wParam, LPARAM lParam){ CListCtrl* p = (CListCtrl*)GetDlgIt原创 2017-05-20 19:42:12 · 223 阅读 · 0 评论 -
传递主窗口句柄或者控件给其他cpp使用
void SetMainWnd(CWnd* pWnd); void SetInfoList(CListBox* pInfoList);CWnd* g_pMainWnd; CListBox* g_pInfoList;void SetMainWnd(CWnd* pWnd) { g_pMainWnd = pWnd; }void SetInfoList(CListBox* pInfoList)转载 2017-11-18 01:26:23 · 683 阅读 · 0 评论 -
MFC 让程序停一下 但不卡住的办法
typedef struct _WAITDATA1 { _WAITDATA1() { bExitFlag = FALSE; dwTime = 0; } BOOL bExitFlag; DWORD dwTime; } WAITDATA1, *LPWAITDATA1; UINT ThreadWait( LPVOID pParam ) { LPWAITDATA1 dat转载 2017-11-25 00:26:53 · 696 阅读 · 0 评论 -
HP Socket Pack笔记
非4C 静态库使用Pack服务端 使用 HPSocket 静态库时,需要在工程属性中定义预处理宏 -> HPSOCKET_STATIC_LIBstdafx.hinclude “../../HPLib/Common/GeneralHelper.h”dlg.hinclude “afxwin.h”include “../HPLib/Global/helper.h”include “../HPLib/HP原创 2017-11-18 13:39:15 · 3500 阅读 · 0 评论 -
智能指针的一点点使用方法
struct MyStruct{LPCSTR name;int age;LPCSTR desc;};unique_ptr<MyStruct> GenerateBuffer(LPCSTR lpszName, int age, LPCSTR lpszDesc){return unique_ptr<MyStruct>(new MyStruct{ lpszName, age, lpszDesc原创 2017-12-02 18:48:33 · 355 阅读 · 0 评论 -
赵老师提供的TRACE格式化函数
void LogTrace(LPCTSTR pszFormat, ...){#ifdef DEBUG va_list pArgs; TCHAR szMessageBuffer[16380 + 1]; va_start(pArgs, pszFormat); _vsntprintf_s(szMessageBuffer, 16380, pszFormat, pArgs)转载 2017-12-21 05:21:08 · 467 阅读 · 0 评论 -
远程线程注入与卸载 修改版
#include //快照需要的头文件//快照判断进程是否已经注入BOOL InjectModuleInto(DWORD dwProcessId){ BOOL bFound = NULL; HANDLE hModuleSnap = INVALID_HANDLE_VALUE; MODULEENTRY32 me32; hModuleSnap = CreateT原创 2018-01-22 02:33:54 · 1018 阅读 · 0 评论 -
char, wchar_t, TCHAR 字符 & c++字符串操作经验集
字符类型、字符指针类型、字符串字面值字符类型:char, wchar_t, CHAR, WCHAR, TCHAR, UCHAR, BYTE, TBYTEchar 是C语言标准数据类型,字符型。通常由编译器决定一个char对象有多少个字节组成,一般是一字节。wchar_t 是char的Unicode版本。相当于 unsigned short。一般两个字节。...转载 2018-04-19 17:44:26 · 640 阅读 · 0 评论 -
记录:win7安装vs2019 16.2 install 闪退 不出现安装界面
今天更新了下vs2019 16.1到16.2 整整折腾一天…vs install不启动安装界面找了好多方法C:\Program Files (x86)\Microsoft Visual Studio\Installervs_installer vs_installershell修改兼容 禁止视觉 禁止元素 win7管理员等等都不起作用我用的msdn原版win7 sp1 没有任何...原创 2019-07-25 22:56:08 · 12593 阅读 · 12 评论 -
获取对话框句柄 对话框指针
获取主对话框指针;获取住对话狂句柄HWND hHwnd = pWnd->m_hWnd;父窗口法:GetParent();在类的成员函数中如果使用与MFC类库相同名的SDK API 则需在函数名前添加::::作用将作用域改为全局。2、每个窗口类都有一m_hWnd的成员变量,对话框也不例外。要想在程序运行时,给对话框发送一特定消息,可以直接使用:::SendMessage(m_hWnd,WM_COMMA转载 2017-05-19 17:55:50 · 1396 阅读 · 0 评论 -
去掉窗口程序ESC退出
virtual BOOL PreTranslateMessage(MSG* pMsg);BOOL CServerDlg::PreTranslateMessage(MSG* pMsg){ if ( pMsg->message == WM_KEYDOWN &&( pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_CANCE转载 2017-11-18 01:01:29 · 1600 阅读 · 0 评论 -
共享内存结构体数据(结构体不能使用指针)
struct MyStruct{ int a; int b; TCHAR name[20];};void CNewSoulDlg::OnBnClickedButton1(){ // TODO: 在此添加控件通知处理程序代码 MyStruct Test; Test.a = 1; Test.b = 2; _tcscpy(Test.na原创 2017-08-04 23:30:08 · 2875 阅读 · 0 评论 -
EnumChildWindows枚举所有子窗口
BOOL CALLBACK EnumChildProc(HWND hwndChild, LPARAM lParam){ TCHAR szWndTitle[1024]; int nLen = GetWindowText(hwndChild, szWndTitle, 1024); if (nLen) { if (strcmp(szWndTitle,(char*)lParam)==0)原创 2017-08-04 21:01:20 · 10244 阅读 · 0 评论 -
MFC 关于SendMessage 消息参数 传送字符串,结构体
今天在使用单文档程序时,弹出了一个新的对话框,由于是非模式对话框,当对话框结束后,需要根据一些消息传递参数到主窗体中那么在对话框中使用了SendMessage使用方法: GetParent()->SendMessage(WM_MYHIDE,WPARAM(TRUE),(LPARAM)relatedID.GetBuffer(20));当然该消息响应事件放在了MainFrame。*)若传转载 2017-07-08 21:51:24 · 2021 阅读 · 0 评论 -
CEDIT使用
SetSel(start,end)作用:定制EDIT的所选择内容.间接地可以用于定位光标位置.使用例子: EXP1:设置光标 CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT1); pEdit->SetSel(2,2); pEdit->SetFocus(); EXP2:选择内容 CEdit* pEdit=(CEdit*)GetDlgIt转载 2017-05-19 17:57:15 · 1558 阅读 · 0 评论 -
通过结构体传递参数给线程
目的:在一个对话框中,点击按钮启动多个线程调用外部的程序(批处理) ,获取返回值后,将结果依次更新到多个Edit控件思路 : 通过包含控件信息的一个结构体传递参数给线程,在线程函数中控制控件的数据更新。步骤 :1.在对话框类的头文件XXXDlg.h中建立一个结构体, 包括指向控件的指针。 struct threadInfo{ CEdit *pEdit1_1; } 接着,申明线程函数转载 2017-05-19 17:50:33 · 853 阅读 · 0 评论 -
MFC中CString的Format方法使用
MFC中CString的Format方法使用 %c 单个字符 %d 十进制整数(int) %ld 十进制整数(long) %f 十进制浮点数(float) %lf 十进制浮点数(double) %o 八进制数 %s 字符串 %u 无符号十进制数 %x 十六进制数 int转换为CString: CString str;转载 2017-05-19 17:48:07 · 4785 阅读 · 0 评论 -
回调函数中使用MFC类的成员或对话框控件的简单方法
在MFC的很多程序中,常常需要在回调函数中调用MFC类的类成员变量、类成员函数,亦或者对话框控件的句柄。由于回调函数是基于C编程的Windows SDK的技术,而类成员又有this指针客观条件限制...所以在回调函数中不能够直接访问类成员,或者操纵控制MFC对话框的控件。虽然可以把回调函数设为类的静态成员函数,以便消除this指针的限制,但诸多不便(比如只能访问静态成员等)仍让人不能够顺畅转载 2017-05-27 00:39:27 · 1960 阅读 · 0 评论 -
进程特征码遍历VC版
//需要引入的头文件: #include #include #include union Base { DWORD address; BYTE data[4]; }; /************************************************************************/ /*转载 2017-05-23 21:37:22 · 1245 阅读 · 0 评论 -
CString转byte[]
CString m_str = "1C00F1030B0400000000000009000000000000000000000000000000"; int iBytesLen = m_str.GetLength()/2; BYTE *pBData = new BYTE[iBytesLen]; for(int iSrc=0, iDst=0; iDst<iBytesLen; iSrc+转载 2017-08-19 18:06:29 · 7006 阅读 · 1 评论 -
MFC取随机数
为得到不同的随机数序列,则需改变这个种子的值。方法:在开始产生随机数前,调用一次srand(time(NULL))(注意:srand()一定要放在循环外面或者是循环调用的外面,否则的话得到的是相同的随机数)。 程序示例:#include <iostream> using namespace std; #include <stdlib.h> #include <time.h> int转载 2017-05-19 18:29:29 · 8879 阅读 · 0 评论 -
计算两个坐标之间的距离公式
(int)sqrt(pow(abs(x2 - x1), 2) + pow(abs(y2 - y1), 2));原创 2017-11-18 00:59:10 · 13870 阅读 · 0 评论 -
::在C++中是什么意思
表示作用域,和所属关系比如class A{ public: int test();}int A::test()//表示test是属于A的{ return 0;}类似的还有其他,就不列举了--------------------比如int a;void test (){ int a = ::a;//用全局变量a,给本地变量a赋值}::是运算符转载 2017-11-18 00:57:55 · 7583 阅读 · 0 评论 -
研究2天的LuaPlus 5.3 静态库 编译通过无错误
luaPlus下载地址:点击打开链接 http://luaplus.org 看了好多文章 最终 还是自己想办法 跟每个人介绍的都不同Src下边是lua53的原文件 tilde下边是luaplus51-all\Src\tilde 下边所有文件剩下的是luaplus51-all\Src\LuaPlus\这些是luaplu...原创 2017-09-02 02:59:53 · 2099 阅读 · 6 评论 -
Luaplus5.3.3中文支持修改
方法一./*中文支持llex.cstatic int llex (LexState *ls, SemInfo *seminfo)修改如下:*/ default: { if (lislalpha(ls->current) || ls->current == '_' || ls->current > 0x80) { /* identifier or reser转载 2017-09-29 11:32:39 · 938 阅读 · 0 评论