BOOL CSearchuserDlg::PreTranslateMessage(MSG* pMsg) { if (pMsg->message==WM_KEYDOWN) // 判断是否有按键按下 { switch (pMsg->wParam) { case VK_DOWN: // 表示是方向键中的向下的键 //add handle code here break ; case VK_UP: // 表示是方向键中的向上的键 //add handle code here break ; defau…
最近一个学姐发给我了一份CrackMe希望我解一下,其中涉及到了MFC的消息函数查找的问题,就顺便以此为例谈一下自己使用的消息函数查找的方法.本人萌新,如果有任何错漏与解释不清的地方,欢迎各路大佬指正. 这个CrackMe是一个典型的MFC类型的程序,其框体如下: 一.目标以及方法 首先我们确认我们的目标是找到两个”注册”按钮的对应消息处理函数,那么有什么手段可以达到我们的目标?在MFC中有一个消息映射表的概念,参考候老的描述[1],实现代码如下: struct AFX_MSGMAP{ AFX_…
问题:VS2010 c++编写的程序在别人的机子运行不了,缺少mfc100u.dll xxx100d.dll等 解决方法:1.将这些dll打包,和应用程序一起发布;2.采用MFC静态编译; 静态编译:就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库. VS2010中静态编译设置方法 使用VS2010编译的程序在windows xp中运行时  经常会出现找不到相关的DLL文件,我们可以…
基本情况是我自己写了一个类: class CDib {....} 然后在mfc自动生成的“工程名Dlg.cpp”中使用类CDib,我的工程名是MfcPictureProcessing,所以类是class CMfcPictureProcessingDlg,下面是视图类.h文件里: class CMfcPictureProcessingDlg: public CDialogEx { ... CDib *Dlgdib; CPalette* CreateBitmapPalette(CDib *pBitm…
一.概述 每个系统中都有线程(至少都有一个主线程),而线程最重要的作用就是并行处理,提高软件的并发率.针对界面来说,还能提高界面的响应能力.一般的,为了应用的稳定性,在数据处理等耗时操作会单独在一个线程中运行,而所有与主UI线程有关的控件数据刷新应该到主UI线程中处理.也就是数据处理线程发消息,让界面UI去更新控件.在MFC中线程分为界面线程和工作者线程,界面实际就是一个线程画出来的东西,这个线程维护一个“消息队列”,“消息队列”也是界面线程和工作者线程的最大区别,这个词应该进到你的脑子里,根深…
MFC关于多线程中传递窗口类指针时ASSERT_VALID出错的另类解决   在多线程设计中,许多人为了省事,会将对话框类或其它类的指针传给工作线程,而在工作线程中调用该类的成员函数或成员变量等等. 但是在Debug版本时,在某些情况下,特别是在工作线程中调用pWnd->UpdateData(FALSE)时,会出现错误.这个错误的原因网上有许多地方讲到了,但是,令人失望的是,讲得好的没几篇,都是非要讲什么线程模块状态什么的,让人看得云里雾里(不过,说实话,也就是从这些文章中才知道是怎么回事的).…
很早之前就发现,我写的图形引擎在MFC框架程序中的刷帧率始终在60FPS左右.好在自己的程序对刷帧率的要求不是很高,所以一直没有太过纠结此事.直到今天看了别人的程序才发现应该在函数CWinApp::OnIdle()中进行刷帧操作.而之前我是先注册个时钟响应事件SetTimer(1001, 1, NULL);然后在CView::OnTimer()中或者是CDialog::OnTimer()进行刷帧操作.这样其刷帧率得不到保证.也在::OnPaint()函数中进行刷帧操作,一样的问题.之前我也觉得应…
MFC改变对话框中静态文本的字体大小 2010/08/09 11:30 VC的对话框字体设置对所有控件都有效,你不能单独地改变某个静态文本的字体.对于你的问题,需要首先用CreateFont来建立一个字体对象,然后调用控件的SetFont,就可以了. 例子: 1.改静态文体的ID,如:IDC_STATIC1 2.添加一个Edit控件,建立一个关联的控件m_editControl. 3.在OnInitDialog中添加如下代码: CFont * f; f = new CFont; f->Creat…
MFC exe文件生成的图标更改方法 https://blog.csdn.net/txwtech/article/details/92980545…
如果要编写模块化的软件,就要对对动态链接库(DLL)有一定的了解,本人这段时间在修改以前的软件时,决定把重复用的类和对话框做到DLL中,下面就从一个简单的例子讲起,如何实现MFC扩展DLL中导出类和对话框. 一.创建MFC扩展DLL 步骤: 运行Visual Studio 6.0->File->New...->Projects: 选择Mfc AppWizard(dll),在右边Project name下输入ExportClass,单击“下一步”: 选择Mfc Extension DLL…