
VC++
文章平均质量分 56
shmiloveyou
热爱C/C++、Rust
展开
-
VC++编程之字符串解惑--Unicode & MBCS
VC++中的字符串用起来着实让人难受,LPTSTR、LPCTSTR、LPCSTR、LPCWSTR、LPSTR、WCHAR、CString、_T()和L彼此之间的互相转换更是头痛。根据使用经验和MSDN Libary文档总结出如下: 1.CString类型字符串 CString位于头文件afx.h中,是MFC中的一种字符串原创 2013-11-21 13:58:38 · 1822 阅读 · 0 评论 -
=WM_VSCROLL(消息反射) 和 WM_VSCROLL(消息响应)的区别
=WM_VSCROLL(消息反射) 和 WM_VSCROLL(消息响应)的区别所谓消息反射就是控件拥有者自己不处这个理消息,而是反射给控件对象本身来处理这个消息1、“=WM_VSCROLL”是消息反射标志 , WM_VSCROLL是 消息响应的标志,在VC6.0的ClassWizard中注意会发现这两个不同的消息,VS2010中没有“=WM_VSCROLL”,但是原创 2013-12-15 19:47:59 · 3795 阅读 · 0 评论 -
窗体上有控件时关闭窗体引发bResult = m_pCtrlSite->DestroyControl();访问异常
bResult = m_pCtrlSite->DestroyControl()访问异常 在VC6下进行控件测试时,开始直接拖放控件,后来用继承控件类的方式生成控件。测试的过程将先前拖放的控件和相应的控制代码直接删除后,运行程序出现“程序异常退出”的情况,调试后发现问题出现在CWnd::DestroyWindow函数中的bResult = m_pCtrlSite->Dest原创 2013-12-16 13:24:38 · 1558 阅读 · 0 评论 -
MFC OnPaint()函数中最先调用CDialog::OnPaint()和最后调用CDialog::OnPaint()的巨大区别
OnPaint()函数中最先调用CDialog::OnPaint()和最后调用CDialog::OnPaint()的巨大区别,如果没有注意这个问题就会出现无厘头式的绘图问题-- 效果就是出不来!在经过两个多小时的折磨后法相问题所在,总结出教训: OnPaint()函数中首先就调用CDialog::OnPaint()函数://给主窗体客户区添加位图背景void CBacki原创 2014-01-01 22:10:25 · 10961 阅读 · 7 评论 -
Window文件目录遍历 和 WIN32_FIND_DATA 结构
以下内容根据百度百科提供的内容总结:WIN32_FIND_DATA1.关于文件的全部属性信息,有以下以下9种: 文件的标题名、文件的属性(只读、存档,隐藏等)、文件的创建时间、文件的最后访问时间、文件的最后修改时间、文件大小的高位双字、文件大小的低位双字、保留、保留。在这里只有文件标题名和文件的长度可以通过CFile类比较方便的获得,而对于其他几种属性的获取和设置就转载 2013-09-21 19:02:48 · 18127 阅读 · 1 评论 -
获取.exe/.dll/.icon文件的Icon图标资源
获取.exe/.dll/.icon文件的Icon图标资源原创 2014-01-04 19:23:33 · 7239 阅读 · 0 评论 -
获取Windows操作系统右键“新建”菜单支持的文件类型及对应的打开程序
获取Windows操作系统右键“新建”菜单支持的文件类型及对应的默认打开程序的实现原理及具体实现。原创 2014-04-04 12:20:57 · 2835 阅读 · 0 评论 -
VS2015工程转换为VS2013工程方法汇总
VS2015工程转换为VS2013工程方法汇总转载 2016-09-01 11:00:01 · 16807 阅读 · 0 评论 -
VC 使用msxml6.dll动态链接库中的函数读写XML文件
VC 使用msxml6.dll动态链接库中的函数读写XML文件原创 2013-12-26 15:10:45 · 9073 阅读 · 10 评论 -
【C/C++】PDB文件:每个开发者都必须知道
来源:https://www.wintellect.com/pdb-files-what-every-developer-must-know/PDB Files: What Every Developer Must KnowbyJohn RobbinsThanks for visiting one of the most popular pieces I’ve ever writte...转载 2019-07-04 10:59:06 · 3049 阅读 · 3 评论 -
_makpath() 和 _tsplitpath() 详解
_makepath( _out string strBuf, _in string driver, _in string directy, _in string filename, _in string exten原创 2013-09-21 16:28:36 · 1176 阅读 · 0 评论 -
SendMessage发送自定义消息及消息响应
控件向父窗体发送自定义消息,父窗体定义处理此消息的函数原创 2013-09-03 16:51:01 · 4957 阅读 · 0 评论 -
本地MSDN Libary突然打不开
可能性一:代理服务没有开启开启服务试试可能性二:windows防火墙阻止了代里服务允许Help Libary代理可能性三:C:\Windows\System32\drivers\etc下的host文件中添加了如下字串:# 127.0.0.1 http://control.blog.sina.com.cn/admin/article/article_add.ph原创 2013-06-01 09:46:26 · 882 阅读 · 0 评论 -
DLL中的dllMain入口函数的使用
在我的 动态链接文件dll的使用 和VC++生成DLL(DynamicLinkLibrary…两篇博文基础上测试DLL的入口函数dllMain的作用。在VC++生成DLL(DynamicLinkLibrary…博文实例Dll2.dll的源代码Dll2.cpp 中加入如下代码:#include#includeBOOL WINAPI DllMain (HANDLE hInst,原创 2013-06-01 09:45:56 · 1572 阅读 · 0 评论 -
通讯录的C++语言实现
整个可运行工程下载地址:(免费)http://download.youkuaiyun.com/detail/qq2399431200/5159667备注:需要优快云的账号登陆才能下载,自己申请一个吧,还是很有用的。原创 2013-06-01 09:45:38 · 794 阅读 · 0 评论 -
VC++生成DLL(DynamicLinkLibrary…
学习笔记 使用开发工具VS2005~VS2012都行,我是用的是VC6.0。可以开发C语言的DLL,当然C++语言也行。此处我用C++语言。第一步:新建DynamicLinkLibrary工程命名为 Dll2.dll第二步:在Source Files文件中添加两个C++ resource文件,分别命名为Dll2.cpp和Dll2.ref。第三步:Dll2.cpp原创 2013-06-01 09:45:51 · 665 阅读 · 0 评论 -
流程图浅析MFC架构
版面显示有限,看高清图可以在图片上单击右键->查看图像。原创 2013-06-06 00:02:56 · 2300 阅读 · 0 评论 -
Win32 Application基本框架
//程序入口intAPIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,原创 2013-07-13 20:58:26 · 1463 阅读 · 0 评论 -
Win32App绘制封闭图形函数
Windows 中几何图形的绘制,弧形、弓形、扇形的绘制原理及解释。原创 2013-07-16 22:28:33 · 1437 阅读 · 0 评论 -
VS2005到VS2012的IDE导入外部库的方法
用VS2008举例:如果只是在当前工程中添加依赖项目和库文件有时候会出问题,特别是出现要导入多个依赖项或是库文件时。有时候提示“LINK : fatal error LNK1181: 无法打开输入文件“C:\Program.obj””编译错误。往往让人弄不明白,更重要的一点是:难道你的每个项目都手动来设置这些路径么?解决方法:选择工具|选项|项目和解决方案|原创 2013-07-05 21:57:20 · 1709 阅读 · 0 评论 -
CWnd和HWND的区别
所有控件类都是CWnd类的派生类,CWnd的所有成员函数在控件类中都可以使用。在MFC中,CWnd类是一个很重要的类,它封装了Windows的窗口句柄HWND。在Windows编程中,每一个窗口都是有窗口句柄标识的。但是,类CWnd的对象和窗口句柄之间的概念并不是等同的。CWnd对象的创建和销毁,是由类CWnd的构造函数和析构函数完成的,而Windows窗口是Windows内部的一种数据结构,它由原创 2013-09-03 16:31:50 · 9269 阅读 · 0 评论 -
CRect::IntersectRect的功能
BOOL IntersectRect( LPCRECT lpRect1, LPCRECT lpRect2) throw();功能:判断两个矩形有intersection(交集)参数:两个都是指向RECT结构体/CRect对象的指针返回值:两个矩形有交集(相交)返回TRUE,反之FALSE原创 2013-09-03 15:46:14 · 6227 阅读 · 0 评论 -
CDC::FillRect功能
void FillRect(LPCRECT lpRect,CBrush* pBrush );参数:1.指向一个CRECT结构体或CRect对象的指针2.指向一个画刷的指针功能:用pBrush指向的画刷填充lpRect指向的区域实例应用1:用位图填充矩形区域CBitmap bitmap;bitmap.LoadBitmap(位图资源标志符);CBrush brush(&bi原创 2013-09-03 15:48:59 · 7291 阅读 · 0 评论 -
各种DC的使用
第一种:SDK下的HDCHDC hdc = GetDC(hWnd); //hWnd是InistInstance中调用CreateWindow返回的一个通常用HWND类型的hWnd变量接收//hwnd代表一个窗体的实例句柄实例应用:MoveToEx(hdc, Spoint.x, Spoint.y, NULL); //移动直线起点LineTo(hdc, Epoint.x,原创 2013-09-03 15:42:57 · 1555 阅读 · 0 评论 -
RECT Structure 和CRect Class POINT Structure 和CPoint Class
RECT Structure 和CRect ClassRECT结构体定义了一个矩形的左上角和右下角的坐标: typedef struct tagRECT { LONG left; LONG top; LONG right; LONG bottom;原创 2013-09-03 15:45:13 · 1026 阅读 · 0 评论 -
NULL_BRUSH 或HOLLOW_BRUSH和GetStockObject函数
NULL_BRUSH 或HOLLOW_BRUSH和GetStockObject函数备注:HOLLOW_BRUSH等价于NULL_BRUSH,都代表透明化刷HGDIOBJ GetStockObject( __in int fnObject) 参数:fnObject代表笔或者刷的类型,可以参看MSDN返回值:返回一个GDIOBJ对象的句柄。根据需要转换成笔/刷的句柄,如:H原创 2013-09-03 16:14:01 · 4999 阅读 · 0 评论 -
CRect::InflateRect 和 CDC::FrameRect
CRect::InflateRect(int left,int top, int right, int bottom)参数:边框距离编辑框各方向的距离,值为正,边框在编辑框外;值为负,边框在编辑区内;全零边框和编辑框外围重合。功能:扩充/缩小边框的范围CDC::FrameRect(LPCRECT lpRect,CBrush* pBrush )参数:1.可以是指向CRect对象或是C原创 2013-09-03 16:27:06 · 3512 阅读 · 0 评论 -
MFC 模态/非模态对话框的创建
模态对话框的创建与显示 首先新建一个对话框资源并为其绑定一个继承自CDialog类(或是增强型的CDialogEx类)的对话框子类,比如CTestDlg; 其次创建一个CTestDlg对象: CTestDlg dlg; 紧接激活dlg对象: dlg.DoModal(); 测试:在主对话框中添加一个按钮,为其绑定一个单击处理函数OnDlg原创 2013-09-05 17:37:38 · 824 阅读 · 0 评论 -
动态链接文件dll的使用
dll的使用以我在《VC++生成DLL(DynamicLinkLibrary)的方法一》的博文生成的Dll2.dll为测试命名为 DllTest选择生成一个基于对话框的程序单击完成 双击IDD_DLL1TE这个图标,窗口出现如下效果拖放两个Button控件,取名为Add和Subarct。分别双击两个按钮,添加两个关联函数来处理单击事件。添加的两个函数出现在原创 2013-06-01 09:45:53 · 739 阅读 · 0 评论