
----1.5 VC/MFC
文章平均质量分 54
呈叙墨客
这个作者很懒,什么都没留下…
展开
-
MFC中CTreeCtrl加载节点缓慢的分析和解决方法
问题描述:最近解决了一个tree view插入节点缓慢的问题。原数据有1w多个节点,加载数据需要大概5s,导致整个UI挂起,处于hang up的状态。查询了很多资料,大概有几种解决方案。1. 使用virtual tree技术。所谓虚拟树,就是在插入节点的时候,并不是真正的载入节点中需要显示的文本,而只是指明节点存在,在需要显示节点的时候,响应treectrl的TVN_G转载 2015-08-19 11:00:01 · 1091 阅读 · 0 评论 -
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16
MFC多字节工程转换成Unicode工程后链接错误。解决方法:配置工程链接属性——更改入口函数。原创 2015-01-22 10:16:28 · 825 阅读 · 0 评论 -
dllimport与dllexport作用与区别
我相信写WIN32程序的人,做过DLL,都会很清楚__declspec(dllexport)的作用,它就是为了省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出类。但是,MSDN文档里面,对于__declspec(dllimport)的说明让人感觉有点奇怪,先来看看MSDN转载 2014-12-14 20:26:35 · 476 阅读 · 0 评论 -
安装DirectX SDK时出现Error Code:s1023 的解决方案
今天安装DXSDK_Jun10时(下载地址:http://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe),出现下图所示错误Error Code:s1023错误原因:计算机上有安装过更新版的Microsoft Visual C++转载 2014-12-12 20:47:47 · 1233 阅读 · 0 评论 -
字符编码笔记:ASCII,Unicode和UTF-8
今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。1. ASCII码我们知道,在计算机内部,所有的转载 2014-12-26 11:32:39 · 477 阅读 · 0 评论 -
C++中GB2312字符串和UTF-8之间的转换
在编程过程中需要对字符串进行不同的转换,特别是Gb2312和Utf-8直接的转换。在几个开源的魔兽私服中,很多都是老外开发的,而暴雪为了能 够兼容世界上的各个字符集也使用了UTF-8。在中国使用VS(VS2005以上版本)开发基本都是使用Gb2312的Unicode字符集,所以当在编 程过程中就需要进行字符转换,这样才能兼容游戏,否则就是乱码。而在控制台显示字符串时,真好相反需要将UTF-8的字符转载 2014-12-26 11:31:12 · 539 阅读 · 0 评论 -
ASCII,UTF-8,Unicode字符串相互转换
[cpp] view plaincopyprint?#include #include #include using namespace std; //utf8 转 Unicode std::wstring Utf82Unicode(const std::string& utf8string) { int widesize = ::Mu转载 2014-12-26 11:27:10 · 3066 阅读 · 2 评论 -
取消 CDockablePane 自动保存界面配置到注册表
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){......// 已创建 Outlook 栏,应允许在左侧停靠。EnableDocking(CBRS_ALIGN_LEFT);EnableAutoHidePanes(CBRS_ALIGN_RIGHT);if(!m_testDockpane.Create(_原创 2014-10-18 00:54:32 · 2453 阅读 · 0 评论 -
VS2008中CDockablePane停靠框
VS2008中对于MFC的MDI程序界面做了增强,支持很炫的的布局效果,之前还在说不能用CDialogBar类,现在完全可以使用CDockablePane类替代了,现在只需要新建一个继承自CDockablePane的新类,就可以在其上添加各种控件了,如组合框、对话框等,现在尝试添加一个对话框。新建一个MFC的多文档程序,如在Wizard中选择标准的MFC MDI新建一个想放转载 2014-10-18 01:06:15 · 740 阅读 · 0 评论 -
CView中创建CSplitterWnd
1、创建SDI程序TestViewSplitter2、添加CLeftView、CRightView两个CView视图3、打开CTestViewSplitterView头文件,添加定义CSplitterWnd m_wndSplitter;4、添加CTestViewSplitterView的WM_CREATE消息函数,添加如下代码:if(!m_wndSplitter.CreateS转载 2014-11-19 14:13:40 · 914 阅读 · 0 评论 -
退出MFC应用程序的方法集
1、PostQuitMessage(0);//最常用2、PostMessage(WM_QUIT,0,0);//最常用3、 ::SendMessage(AfxGetMainWnd()->m_hWnd,WM_CLOSE,0,0);//最常用::PostMessage(AfxGetMainWnd()->m_hWnd,WM_CLOSE,0,0);//最常用4、 ExitProces转载 2014-11-18 19:38:35 · 692 阅读 · 0 评论 -
svn server 配置 与TortoiseSVN、Ankhsvn+VS使用 及 问题
Svn服务器与客户端安装1. 下载安装VisualSvn-Server服务端。(过程略)2. 下载安装TortoiseSVN客户端。(过程略)3. 下载安装vs插件AnkhSvn。(过程略)在服务器中建立仓库打开visualSVN ServerManager ,右击Repositories—新建—Repository,在弹出的对转载 2015-03-25 23:19:31 · 786 阅读 · 0 评论 -
c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目 .
1.ActiveX的基本概念 ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行。这个容器包括WEB网页,应用程序窗体等。。。 ActiveX控件的后缀名是OCX或者DLL。一般是以OCX和动态库共存的形式打包成cab或者exe的文件放在服务器上,客户端下载后运行安装cab或exe解压成OCX和动转载 2015-03-16 17:26:58 · 628 阅读 · 0 评论 -
MFC 设置窗口背景色
若要改变CView,CFrameWnd或CWnd对象的背景颜色需要处理WM_ERASEBKGND消息WM_ERASEBKGNDReturn ValuesAn application should return nonzero if it erases the background; otherwise, it should return zero.true表示已处理背景刷新转载 2015-08-26 10:14:41 · 2987 阅读 · 0 评论 -
GDI+学习及代码总结之------文本与字体
目录(?)[+]字体字体系列基本概念与构造写字字体、字体系列基本概念与构造字体系列GDI+中将具有相同字样、包括不同风格的字体称为字体系列。字体从其系列中获得名称、重量(如粗体、规则、加亮)以及风格。例如Arial字体系列包含了下列4种字体:Arial Regular(规则)、Arial Bold(黑体)、Arial Italic(斜体)、Arial Bol转载 2015-07-15 15:58:00 · 1071 阅读 · 0 评论 -
CListCtrl 虚拟列表显示复选框
今天写了个虚拟列表显示复选框的演示程序,放在了:http://download.youkuaiyun.com/detail/daiafei/6617913,有不明白的朋友可以下载一下。在用ClistCtrl控件显示大量数据的时候速度相当慢,而且对内存的占用也是相当大,特别是针对数据库中数据显示的时候,因为数据库中的数据量一般都比较庞大,所以如果使用默认的CListCtrl控件就显得力不从心了,那么是不转载 2015-07-07 19:00:33 · 2107 阅读 · 0 评论 -
浏览器插件之ActiveX开发(四)----web页面调用ActiveX
转自:http://www.cnblogs.com/qguohog/archive/2013/01/25/2876828.html 简单总结一下前几篇文章的内容,《浏览器插件之ActiveX开发(一)》简单介绍了一下如何在Vs.net 2008下用C++开发基于MFC的ActiveX插件,《浏览器插件之ActiveX开发(二)》介绍了开发插件时可能遇到的问题,《浏转载 2015-05-25 15:18:13 · 3537 阅读 · 0 评论 -
VS2008在VC/MFC中为程序定义全局快捷键
1、注册快捷键在初始化函数,如OnInitDialog() 注册快捷键,代码如下:#define HotKeyID1 200BOOL CDlgCloseProSetup::OnInitDialog() { CDialog::OnInitDialog(); ::RegisterHotKey(m_hWnd, HotKeyID1, NULL, VK_HOME);return转载 2015-06-03 11:04:52 · 797 阅读 · 0 评论 -
MFC消息映射与命令传递
DECLARE_MESSAGE_MAP宏在 MFC 几乎每个头文件下(类的最后一行声明),都会有这么几行代码:// 生成的消息映射函数protected:DECLARE_MESSAGE_MAP()我们看一看 DECLARE_MESSAGE_MAP到底为何物,查看 DECLARE_MESSAGE_MAP源码(c:\Program Files\Micro转载 2015-06-18 20:02:25 · 665 阅读 · 0 评论 -
拆分窗口类CSplitterWnd在对话框中的应用及拆分子窗口间的通信
当你在GOOGLE或者百度键入"如何在对话框中使用CSplitterWnd“时,搜索出来的帖子大多千篇一律,鲜有真正是基于对话框的CSplitterWnd应用,大多是基于单文档框架的说明。至于具有参考价值的一篇博文,请参见Codeguru。本文将告诉你如何在对话框中使用CSplitterWnd将主窗口拆分成两个子窗口,并且只与视图类有关,不涉及文档类。重载OnSize(), 使得窗口的大小转载 2015-04-24 09:37:24 · 812 阅读 · 0 评论 -
Win7安装 SQL Server2008图解
Win7安装Ms Sql Server2008图解 ! 2011-12-22 13:47:46| 分类:计算机--数据库-- | 标签:|举报|字号大中小订阅 1.先走控制面板里找到iis安装,步骤如下点“程序”点“打开或关闭Windows功能”在“Internet information serv原创 2014-08-23 01:46:52 · 831 阅读 · 0 评论 -
ActiveX里面的测试应用程序(TSTCON32.exe)仍然可用
现在大家基本上用的编译器都是vs2008和2010啦,而用这两款编译器开发ActiveX控件,你会发现少了工具ActiveX Control Test Container。 那么我们熟悉的ActiveX Control Test Container去那里了?难道已经没有了??其实不然,ActiveX 容器的文本工具是为样本在 Visual Studio 2008 和 Visu转载 2015-03-17 11:13:53 · 727 阅读 · 0 评论 -
add/remove operation is impossible, because the code element ...
重新创建vs2008工程, 出现“add/remove operation is impossible, because the code element......”的问题, 解决方法很简单:1.关闭解决方案2. 删除工程.ncb文件3. 重新编译转载 2015-03-17 11:11:41 · 1158 阅读 · 0 评论 -
MFC实现窗体透明
使用SetLayeredWindowAttributes可以方便的制作透明窗体,此函数在w2k以上才支持,而且如果希望直接使用的话,可能需要下载最新的SDK。不过此函数在w2k的user32.dll里有实现,所以如果你不希望下载巨大的sdk的话,可以直接使用GetProcAddress获取该函数的指针。以下是MSDN上的原内容,我会加以解释。The SetLayeredWindowAt转载 2014-11-17 21:19:11 · 939 阅读 · 0 评论 -
vs2008静态编译Qt4.8.6
qt-opensource-windows-x86-vs2008-4.8.6.exeqt-vs-addin-1.1.11-opensource.exe原创 2014-10-11 17:15:30 · 2278 阅读 · 0 评论 -
1>MSVCRTD.lib(MSVCR90D.dll) : error LNK2005: _malloc already defined in libc
项目-—>属性-—>链接器-—>输入-—>附加依赖项:填写附加依赖库 comctl32.lib 回车或分号间隔多项原创 2014-10-11 10:52:55 · 895 阅读 · 0 评论 -
VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)
鸡啄米在上一讲中为大家演示了如何利用应用程序向导创建单文档应用程序框架。这一节将以上一讲中生成应用程序HelloWorld的文件结构为例,讲解VS2010应用程序工程中文件的组成结构。 用应用程序向导生成框架程序后,我们可以在之前设置的Location下看到以解决方案名命名的文件夹,此文件夹中包含了几个文件和一个以工程名命名的子文件夹,这个子文件夹中又包含了若干个文件和一个re转载 2014-09-27 22:18:27 · 878 阅读 · 0 评论 -
MFC 登陆界面 创建地方
在单文档的APP的InitInstance()中,在CSingleDocTemplate* pDocTemplate;原创 2014-09-27 21:50:11 · 1074 阅读 · 0 评论 -
使用MFC 发送消息模拟按钮按下事件
有时我们需要这么做, 手动模拟按钮按下的事件, 让程序做出与按钮真的按下时一样的响应. 设按钮ID为ID_BTN_OK, 当前Dialog窗口. 实际上系统并不能区分按钮是真的按下了(如用鼠标点击), 还是一个我们自己用代码模拟出的一种"假象".它所需要知道的只是哪个窗口(按钮也是一种窗口)发生了哪一种事件, 然后在消息循环中处理它. 系统怎么才能知转载 2014-09-25 10:28:24 · 2532 阅读 · 0 评论 -
CStdioFile WriteString 无法写入中文 已解决
CStdioFile file;CFileException pError;setlocale( LC_CTYPE, ("chs")); if(!file.Open(_T("ttt.txt"), CFile::modeReadWrite | CFile::modeCreate, &pError)){MessageBox(_T("Tip"), _T("open f原创 2014-09-25 19:17:54 · 7335 阅读 · 1 评论 -
T-SQL中GO的意思
go 是SYBASE和SQL Server中用来表示事物结束,提交并确认结果,相当于ORACLE的CommitSQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语句是自上一 GO 命令后输入的所有语句,若是第一条 GO 命令,则是从特殊会话或脚本的开始处到这条 GO 命令之间的所有语句。局部(用转载 2014-09-09 16:16:21 · 613 阅读 · 0 评论 -
创建Windows系统服务
创建Windows服务1创建Windows系统服务程序参考博客:http://www.vckbase.com/index.php/wv/11931.1创建Win32空工程右击解决方案->添加新建项目。右击项目->添加新建项->添加C++文件。#include #include #include #de原创 2014-08-25 18:46:55 · 640 阅读 · 0 评论 -
CString to int
CString str = _T("123");int i = _ttoi(str);int i = 123;CString str ;str.Format(_T("%d"), i);原创 2014-09-19 17:26:06 · 526 阅读 · 0 评论 -
sql server 2008 win7下安装检查,重启计算机 失败
解决方法:a 、重启机器,再进行安装,如果发现还有该错误,按下面步骤b、在开始->运行中输入regeditc、到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 位置d、在右边窗口右击PendingFileRenameOperations,选择删除,然后确认e、重启安装,问题解决原创 2014-08-23 00:05:03 · 521 阅读 · 0 评论 -
:fatal error C1853: '*.pch' precompiled header file is from ...
解决Visual C++ 编译器中混合 .c 文件时收到 C1853 预编译头错误的方法 当 Visual C++ 项目启用了预编译头 (Precompiled header) 功能时,如果项目中同时混合有 .c 和 .cpp 源文件,则可能收到 C1853 编译器错误:fatal error C1853: 'pjtname.pch' precompiled header file is f原创 2014-09-19 10:06:07 · 816 阅读 · 0 评论 -
vs2008 rcxdti.dll is unable to load rcxdtiui.dll. You may be unable to edit Win32 Resources.
发现VS2008的一个bugjie原创 2014-09-17 19:25:52 · 1881 阅读 · 0 评论 -
VS2010/MFC编程入门之四(MFC应用程序框架分析)
上一讲鸡啄米讲的是VS2010应用程序工程中文件的组成结构,可能大家对工程的运行原理还是很模糊,理不出头绪,毕竟跟C++编程入门系列中的例程差别太大。这一节鸡啄米就为大家分析下MFC应用程序框架的运行流程。 一.SDK应用程序与MFC应用程序运行过程的对比 程序运行都要有入口函数,在之前的C++教程中都是main函数,而Windows应用程序的入口函数是Wi转载 2014-09-27 23:20:48 · 686 阅读 · 0 评论 -
用ListBox作滚屏显示的一种方法 .
[cpp] view plaincopyprint?void CTestDlg::ShowInfo(CString str, int code) { m_ListInfo.InsertString(m_ListInfo.GetCount(),str); m_ListInfo.SetCurSel(m_ListInfo.GetCount()-1); }转载 2014-11-13 17:31:17 · 1566 阅读 · 0 评论 -
如何正确的关闭 MFC 线程
前言: 近日在网上看到很多人问及如何关闭一下线程,但是我看网上给出的并不详细,而且有些方法还是错误的。小弟在此拙作一篇,不谈别的,只谈及如何正确的关闭MFC的线程,至于Win32和C RunTime的线程暂不涉及。一.关于MFC的线程 1.MFC的线程有两种,一种称为Work线程,一种称为UI线程。一般情况下Work线程与UI线程的区别主要在于UI线程有消息队列(并不是有没有界面,转载 2014-11-13 17:29:17 · 585 阅读 · 0 评论 -
mfc动态改变对话框窗口大小和显示位置
[cpp] view plaincopyprint?void CMainFrame::OnChangeSize() { // TODO: Add your command handler code here CRect cr; GetClientRect(&cr);//获取对话框客户区域大小 ClientToScreen(&cr转载 2014-11-13 17:33:48 · 8908 阅读 · 0 评论