![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MFC技术
MFC
不脱发的码农~~~~
发呆
展开
-
对话框窗口初始化隐藏到进程无闪烁
在 OnInitDialog函数中添加SetWindowPos(&CWnd::wndNoTopMost, 0, 0, 0, 0, SWP_HIDEWINDOW);// 不显示对话框ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);任务栏不显示原文链接:https://blog.csdn.net/qiuxue110/article/details/102575863...转载 2022-02-28 11:19:59 · 180 阅读 · 0 评论 -
MFC CMap整理
映射表类(CMap)是MFC集合类中的一个模板类,也称作为“字典”。CMap是把唯一关键码映射到值的字典收集类,使用CMap可以构造一个关键字和元素值映射的集合类。一旦在映射中插入了一个关键码值对(元素),就可以使用这些关键码,有效地获取或者删除对元素。同样,也可以反复使用映射中的所有元素。 就像一种只有两列的表格,一列是关键字,一列是数据项,它们是一一对应的。关键字是唯一的,给出一个关键字,映射表类会很快找到对应的数据项。映射表的查找是以哈希表的方式进行的,因此在映射表中查找数值项的速度很快。映射类最适用转载 2021-12-06 11:12:57 · 995 阅读 · 0 评论 -
GetPrivateProfileString()函数
GetPrivateProfileString: 为初始化文件中指定的条目取得字串 , 这个字串不区分大小写GetPrivateProfileString函数的定义形式为:DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpDefault,LPTSTR lpReturnedString,DWORD nSize,LPCTSTR lpFileName)第一个参数:lpAppName: 配置文件的secti转载 2021-11-26 09:38:08 · 16913 阅读 · 2 评论 -
【MFC】SendMessage与PostMessage
SendMessage与PostMessage函数功能:(1).能够向指定的窗口发送窗口消息,既可以是本进程内窗口也可以是其他进程的;(2).既可以发送系统内部消息,消息编号范围是:1 - WM_USER-1;例如:WM_LBUTTONDOWN,WM_MOUSEMOVE;(3).也可以发送非系统消息(开发者自定义的消息),范围是:WM_USER - 0x7FFF.SendMessage与PostMessage两者之间的区别:(1).SendMessage时阻塞型函数,PostMessage是非阻塞转载 2021-11-19 10:49:06 · 1311 阅读 · 0 评论 -
使用Rich Edit 控件需要调用 AfxInitRichEdit2()
添加rich edit控件时,报了个提示:使用Rich Edit 控件需要调用 AfxInitRichEdit2()Using Rich Edit control requires a call to AfxInitRichEdit2().当时没注意,编译也不报错,结果程序起不来了方才想起,原来所有的提示都是有用的啊~修改主函数如下: CWebBrowMfcDlg dlg; m_pMainWnd = &dlg; AfxInitRichEdit2();//在控件所在的dlg调用之前调用转载 2021-11-19 10:27:52 · 465 阅读 · 0 评论 -
C++通过CFile写本地日志文件
CFile log_file; int log_file_opened = 0; void logMessage(const char * sMsg) { if(!log_file_opened) { log_file.Open("D:\\tex.log", CFile::modeCreate|CFile::modeWrite); log_file_opened = 1; }转载 2021-11-18 08:50:11 · 228 阅读 · 0 评论 -
windows下IPv4通信(C++、MFC)
client:#include <stdio.h>#include <Ws2tcpip.h>#include <winsock2.h>#define HELLO_PORT 7905 #define HELLO_GROUP "224.0.0.1" #pragma comment(lib,"ws2_32.lib")using namespace std;int main(){ WSADATA wsaData;//初始化 //初始化S转载 2021-11-04 15:14:00 · 149 阅读 · 0 评论 -
CString转char *
void charTowchar(const char *chr, wchar_t *wchar, int size){ MultiByteToWideChar(CP_ACP, 0, chr, strlen(chr) + 1, wchar, size / sizeof(wchar[0]));} void wcharTochar(const wchar_t *wchar, char *chr, int length){ WideCharToMultiByte(CP转载 2021-11-04 14:39:40 · 238 阅读 · 0 评论 -
MFC 使程序不在任务栏显示
1,目标总结使程序隐藏在任务栏的简单方法。适用与一些特殊窗口情况,比如悬浮窗、弹窗等,不需要在任务栏显示。2,原理&实现在OnInitDialog()中直接修改窗口风格:// 让本程序不在任务栏显示(创建一个工具条窗口) ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);3,效果...转载 2021-09-12 10:05:09 · 959 阅读 · 0 评论 -
关闭顶层模态窗口
HWND hwnd = GetForegroundWindow();if (hwnd) ::PostMessage(hwnd, WM_CLOSE, 0, 0);转载 2021-09-12 10:07:09 · 147 阅读 · 0 评论 -
MFC 获取分辨率和移动位置
简单的说可以在OnInitDialog()函数里加上一句:RECT rect;GetClientRect(&rect);MoveWindow(1024-rect.right,0,rect.right,rect.bottom);以上MoveWindow中的前两个参数就是窗体显示时的左上角坐标,我假设你的屏幕分辨率为1024*768,所以其横坐标为1024-rect.right;获取分辨率void CEasySizeDlg::OnBnClickedButton1(){ //两转载 2021-09-07 10:39:41 · 366 阅读 · 0 评论 -
mfc中获取当前窗口大小的方法
{ CRect rect; GetWindowRect(&rect); MoveWindow(0, 0, rect.Width(), rect.Height()); }CRect rect; GetWindowRect(&rect);//得到所处窗口的绝对坐标; GetClientRect(&rect);其中rect.right为x坐标的最大值,rect.bottom为y坐标的最大值(0,0)为窗口左上角的点坐标。在当前窗体中显示鼠标当前原创 2021-09-07 10:36:32 · 1352 阅读 · 0 评论 -
MFC/VC CxImage 简单配置与使用 (完整版)
http://blog.csdn.net/afterwards_/article/details/7997385 我个人配置过来成功运行的经验.CxImage是一个十分强大的图形库,我们在PC端上开发GUI程序时,时常会用到位图之外的各种格式的图片,然而令我们郁闷的是在Windows平台上的GDI对一些图片格式支持的很差,比如png格式!尽管mfc上有一个CImage类来解决这个问题,但是,CImage对png图片的支持其实也不怎么样,尤其是图片带半透明效果时,CImage基本上就没法处理或处理的很差。转载 2021-08-30 11:17:12 · 1442 阅读 · 0 评论 -
让DLL卸载自身 -- FreeLibraryAndExitThread()
实际问题:DLL是MFC的DLL, 我在这个DLL的初始化函数中创建了一个对话框窗口, 如何在dll中操作实现结束dll当前的线程和释放掉dll.比如在窗口(模态对话框)关闭后结束线程, 释放dll.kernel32.dll里有个函数叫FreeLibraryAndExitThread就是专门给你做这种事情用的:正常情况下你调用FreeLibrary来释放当前执行的代码所在的DLL会导致FreeLibrary返回以后无法继续执行之后的代码(DLL已经释放了)而这个函数会在FreeLibrary之后转载 2021-08-30 11:17:26 · 1752 阅读 · 0 评论 -
CloseHandle(),TerminateThread(),ExitThread()的区别
线程的handle用处:线程的handle是指向“线程的内核对象”的,而不是指向线程本身.每个内核对象只是内核分配的一个内存块,并且只能由内核访问。该内存块是一种数据结构,它的成员负责维护对象的各种信息(eg: 安全性描述,引用计数等)。CloseHandle()在CreateThread成功之后会返回一个hThread的handle,且内核对象的计数加1,CloseHandle之后,引用计数减1,当变为0时,系统删除内核对象。但是这个handle并不能完全代表这个线程,它仅仅是线程的一个“标识”,转载 2021-08-31 08:46:25 · 277 阅读 · 0 评论 -
C++ windows客户端支持SSL双向认证
C++ windows客户端支持SSL双向认证,服务端是JAVA开发的,使用的证书是jks格式的。C++并不支持JKS格式的证书,所以要用openssl进行转换下。1、 需要先把jks转成.p12文件keytool -importkeystore -srckeystore demo.jks -destkeystore demo.p12 -srcstoretype jks -deststoretype pkcs122、然后把.p12文件转成pem文件openssl pkcs12 -nodes -i转载 2021-08-24 08:41:31 · 760 阅读 · 0 评论 -
MFC下使用Mysql
MFC工程需要使用Mysql数据库中遇到的问题记录下。1、首先去官网下载下Mysql安装包,安装下Mysql。我在这边下载的是mysql-installer-community-5.7.16.0.msi,因为是默认安装,所以会根据系统是64位还是32位,来安装64位的mysql或者32位的mysql。我的操作系统是64位的,所以安装后的mysql也是64位的,而我的MFC工程是32位的,所以安装目录得到的libmysql.lib文件使用。解决方法:把64位的mysqlserver卸载,然后安装32位转载 2021-08-24 08:41:44 · 904 阅读 · 0 评论 -
MFC 任务托盘显示气泡
void CTestDlg::OnClose(){ ShowWindow(SW_HIDE); if (!m_bHideNoticeInfo) { ShowBalloonTip(_T("程序已最小化到托盘"), _T(""), 3000, 1); m_bHideNoticeInfo = true; }}BOOL CTestDlg::ShowBalloonTip(LPCTSTR szMsg, LPCTSTR szTitle, UINT u转载 2021-08-24 08:41:50 · 236 阅读 · 0 评论 -
MessageBox、::MessageBox 、AfxMessageBox三者的区别
原文:http://blog.chinaunix.net/uid-16149193-id-2752537.html以前知道这几个函数有差别,但也没有去细究,最近隔了很久没写VC程序了,结果写到使用MESSAGEBOX时出错了,还为之费解,于是上网找了一下资料,清楚了这三个函数的区别,所以写此文章(参考了大量其他人的所写的资料)。使自己能长记性,同时也希望对一些不甚了解的人有所帮助。三者的本质区别如下:Windows API: MessageBox();CWnd::MessageBox();MFC:转载 2021-08-13 14:51:38 · 295 阅读 · 0 评论