
MFC
乄失忆丶雨
要想立于不败之地,就得不断学习和努力!
展开
-
Windows下获取当前路径和执行路径
1、获取执行路径: ///////////////////下面得到应用程序所在的路径/////////////////// CString theAppPath,theAppName; char Path[MAX_PATH]; GetModuleFileName(NULL,Path,MAX_PATH);//得到应用程序的全路径原创 2016-12-12 13:09:56 · 10463 阅读 · 0 评论 -
c++编程:获取控件上的文本值---例子是CEdit 的七种方法(转载)
1. int num1,num2,num3;char ch1[10],ch2[10],ch3[10];GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10);GetDlgItem(IDC_EDIT2)->GetWindowText(ch2,10);num1=atoi(ch1);num2=atoi(ch2);num3转载 2017-06-08 10:35:03 · 2645 阅读 · 0 评论 -
MFC中IPADDRESS控件的使用
MFC中IPADDRESS控件的使用void CMyDlg::OnIPAddress() { // 此段代码:独立的获取本机IP地址和计算机名 WORD wVersionRequested; WSADATA wsaData; char name[255]; CString ip; PHOSTENT hos转载 2017-06-08 10:59:35 · 1633 阅读 · 0 评论 -
MFC中定时器OnTimer函数的使用
在MFC中我们经常需要定时读写数据,或者定时刷新界面,更新数据和状态,这就需要用到定时器,其实现函数为OnTimer,下面对其用法步骤(基于VS2010)进行简要说明:1、在类视图中点击需要使用定时器的对话框类,在属性窗口选择消息,在下面的消息函数中选中WM_TIMER,后面选择添加OnTimer函数,如下图所示: 2、编写OnTimer函数void CLD_PowerDl转载 2017-09-25 08:58:12 · 939 阅读 · 0 评论 -
MFC中用CFile读取和写入文件
MFC提供了CFile类方便文件的读写,首先要知道,文件的数据读取、数据写入与文件指针的操作都是以字节为单位的,数据的读取和写入都是从文件指针的位置开始的,当打开一个文件的时候,文件指针总是在文件的开头。常规方法如下:CFile file;file.open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError转载 2017-09-26 12:21:31 · 2728 阅读 · 0 评论 -
error C3872: “0x3000”: 此字符不允许在标识符中使用错误 的解决办法
主要是拷贝的程序问题,有错误的空字符0x3000是汉语的空格,也就是全角空格,相当于一个汉字,但你又看不见它。你知道的,像逗号,有半角(,)和全角(,)之分的,其实空格也有。0x3000是全角的空格,0x20是半角的空格。最好把这个语句的后面空白部分,都删除掉,免得有不可见的全角空格。转载 2017-09-26 12:24:20 · 2697 阅读 · 0 评论 -
MFC文件操作大全
获得文件路径:GetFilePath()获得文件名:GetFileName()获得文件标题:GetFileTitile()Path is : "C:\WINDOWS\SYSTEM.INI"Name is : "SYSTEM.INI"Title is: "System"1.创建文件夹创建路径上最后的一个文件夹[cpp] view plain c转载 2017-09-26 13:42:21 · 449 阅读 · 0 评论 -
MFC让对话框窗口始终在最前&MFC弹出非模态对话框&居中
一、MFC让对话框窗口始终在最前方法一:在对话框的属性中,在more style中有一项是System model,选上它,即可!方法二:OnInitDialog里加入SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);外部调用: m_dialog->SetWindowPos(&wndTopMost, 0, 0, 400,原创 2017-09-28 11:18:09 · 9116 阅读 · 1 评论 -
MFC运行时窗口总是最小化,不直接弹出
1、这个问题是由于如下图步骤时勾选了“最小化“。解决办法如下第二张图,在InitDialog()函数中删除ShowWindow(MINSIZE).这样再运行时就会直接弹出了。转载 2017-09-28 14:25:29 · 1873 阅读 · 0 评论 -
Edit自动换行
CEdit edit;CString str;str += "abc";str += "/r/n";str += "def"; edit.SetWindowText(str);控件中显示为:"abc def" 这是因为除了要用/r/n外,还要都CEdit 的属性进行设置:Auto HScroll 设置为 FalseMultiLine 设置为 True转载 2017-09-28 14:53:37 · 617 阅读 · 0 评论 -
error LNK2001: unresolved external symbol __endthreadex 解决办法
error LNK2001: unresolved external symbol __endthreadex这个问题,找到的解决办法如下没有用到beginthreadex endthreadex两个例程.在VC中编译程序时显示Linking...nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external sy转载 2017-04-06 18:42:46 · 638 阅读 · 0 评论 -
VC对话框焦点转换问题
建立一个基于对话框的应用程序,可以看到在CXxxApp的InitInstance()函数中: CDlgaDlg dlg; m_pMainWnd = &dlg;应用程序启动时,必须对CXxxApp的成员变量m_pMainWnd进行赋值,否则无法运行。在单文档的工程中,我们看不到这种赋值操作,它是在 if (!ProcessShellCommand(转载 2017-02-21 10:21:28 · 955 阅读 · 1 评论 -
"应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序。”
“应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序。”一般情况下都是程序中所运行的库文件与系统位不匹配,换句话说:32位系统程序中加载的动态库或静态库也应该是32位的,64位系统程序中加载的动态库或静态库也就应该是64 位的。希望对大家有帮助!原创 2016-12-20 11:04:32 · 4337 阅读 · 0 评论 -
标准C++中的string类的用法总结
相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。其实,可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的str转载 2016-12-12 13:18:50 · 256 阅读 · 0 评论 -
error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMTD.lib
环境WIN10+VS2010。之前写代码时,需要调用windowsAPI,引用了#include windows.h>。接下来为了返回CString,引用了#include 。第一次报错:error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll vers转载 2016-12-06 13:27:10 · 2650 阅读 · 2 评论 -
error C2440: “static_cast”: 无法从“void (__thiscall CXPButton::* )(WPARAM,LPARAM)”转换为“LRESULT (__thisca
不能转换void (_thiscall CMainFrame::*)(void)to LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)2010-05-13 11:35开发平台由VC6.0升级至VS2005,需要将原有的项目迁移,可能碰到类似错误:error C2440: 'static_cast' : cannot convert from 'void转载 2016-12-06 16:39:52 · 1053 阅读 · 0 评论 -
#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif 语句解释
VS2010环境下,添加MFC Class时,程序会自动生成框架代码,cpp文件的include下面有如下语句:[cpp] view plain copy#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE_转载 2016-12-07 10:38:49 · 658 阅读 · 0 评论 -
c++操作Excel
[cpp] view plain copy 理论性的东西就是不讲了,简单的就是用微软提供的组件来操作excel。我们先看看如何添加相关组件。 1.进入类导向对话框:2.点击下拉菜单“添加类”,选择“类型库中的MFC类‘3.相关的类行库可以从注册表中找,你选择一个”可用类行库“,向导会自动显示它的接口。转载 2016-12-07 16:19:05 · 2511 阅读 · 0 评论 -
VS2010 "error MSB8011” 解决方法
错误描述:C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(744,5): error MSB8011: Failed to register output. Please try enabling Per-user Redirection or register the component from转载 2016-12-21 10:39:56 · 905 阅读 · 0 评论 -
SendMessage、PostMessage原理
SendMessage、PostMessage原理本文讲解SendMessage、PostMessage两个函数的实现原理,分为三个步骤进行讲解,分别适合初级、中级、高级程序员进行理解,三个步骤分别为:1、SendMessage、PostMessage的运行机制。2、SendMessage、PostMessage的运行内幕。3、SendMessage、PostMessage的内部实转载 2016-12-22 13:31:56 · 380 阅读 · 0 评论 -
PostMessage(异步)和SendMessage(同步)的区别
PostMessage和SendMessage的区别 1, PostMessage只把消息放入队列,不管其他程序是否处理都返回,然后继续执行,这是个异步消息投放函数。而SendMessage必须等待其他程序处理消息完了之后才返回,继续执行,这是个同步消息投放函数。而且,PostMessage的返回值表示PostMessage函数执行是否正确;而SendMessage的返回值表示其他转载 2016-12-22 13:33:07 · 1496 阅读 · 0 评论 -
基于MFC的单文档,多文档,对话框应用程序
从类的角度区分:基于对话框(3个类):CAboutDlg程序名App程序名Dlg单文档(5个类):CAboutDlgCMainFrame程序名App程序名Doc程序名View多文档(6个类):CAboutDlgCMainFrame程序名App程序名Doc程序名ViewCChildFrame --------------------------原创 2016-12-19 14:23:23 · 282 阅读 · 0 评论 -
CListBox快速清空
方法一:while(pmyListBox->GetCount()) pmyListBox->DeleteString( 0 ); 方法二:int nListCount=pMyListBox->GetCount(); for (int i=0;i < nListCount;i++) { pmyListBox->DeleteString(0);//循环次数等于总个原创 2017-12-01 16:12:03 · 4107 阅读 · 0 评论