
2010年学习笔记
zyrr159487
这个作者很懒,什么都没留下…
展开
-
2010年,正式开始了IT菜鸟的生涯
经过09年数个月的锻炼,终于可以在MFC的门槛外打转了,似乎迈入了一个新的天地。任何事,都需要自己做一做才知道,不是那么难,任何路,只有自己走过,方知其中滋味。10年,对我而言是沉淀的一年。原创 2011-11-25 11:00:18 · 376 阅读 · 0 评论 -
BMP文件格式分析
前两天要做一个读取bmp文件的小程序,顺便查找了一些关于BMP格式的文章,现在post上来。简介BMP(Bitmap -File)图形文件是Windows采用的图形文件格式,在Windows环境下运行的所有图象处理软件都支持BMP图象文件格式。Windows系统内部各图像绘制操作都是以BMP为基础的。Windows 3.0以前的BMP图文件格式与显示设备有关,因此把这种BMP图象文转载 2011-12-07 09:12:34 · 729 阅读 · 0 评论 -
文件读写方法小记2
①遍历文件夹并且计算文件夹个数 int iCount = 0; CString strTempPath; CString strFileName; strTempPath = CBApp::getCurrModulePath() + _T("ini"); BOOL bWorking = finder.FindFile(strTempPath + _T("\原创 2011-12-07 10:16:36 · 743 阅读 · 0 评论 -
wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CStrin
#include // 使用CString必须使用MFC,并且不可包含#define _AFXDLL#include using namespace std;//----------------------------------------------------------------------------------将 单字节char* 转换为 宽字节 wchar*inlin转载 2011-12-07 11:04:42 · 974 阅读 · 0 评论 -
关于wchar_t
在C++标准中,wchar_t是宽字符类型,每个wchar_t类型占2个字节,16位宽。汉字的表示就要用到wchar_t 。char,我们都知道,占一个字节,8位宽。标准C++中的wprintf()函数以及iostream类库中的类和对象能提供wchar_t宽字符类型的相关操作。locale loc( "chs" );//定义“区域设置”为中文方式wcout.imbue( loc )转载 2011-12-07 11:12:13 · 932 阅读 · 0 评论 -
对话框最大化时,控件也随比例最大化或者还原
1. 在oninitdlg中 计算出当前对话框的大小与最大化后大小,注意要用float值,不然误差很大.CRect rect; ::GetWindowRect(m_hWnd,rect); ScreenToClient(rect); m_nDlgWidth = rect.right - rect.left; m_nDlgHeight = rect.bottom - rect.top;/转载 2011-11-25 10:56:13 · 970 阅读 · 0 评论 -
C ++的运算符优先级
The following table lists the precedence and associativity of C++ operators. Operators are listed top to bottom, in descending precedence.PrecedenceOperatorDescriptionAssociativi转载 2011-12-07 08:54:36 · 465 阅读 · 0 评论 -
一个简单字体察看器的实现
通过本文,希望能学到一点有关windows各个组件的消息传递的知识。学习如何建立可用字体的列表,学会如何指定使用的字体,如何动态改变字体。用到的函数:EnumFontFamiliesEx。在MSDN中是这样写的:int EnumFontFamiliesEx( HDC hdc, // handle to DC LPLOGFONT转载 2011-11-30 08:49:14 · 665 阅读 · 0 评论 -
MFC文件操作大全(二)
28.打开对话框CFileDialog mFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,All Files (*.*)|*.*||,AfxGetMainWnd());CString str(" ",10000);mFileDlg.m_ofn.lpstrFile=str.G转载 2011-12-12 11:05:53 · 1627 阅读 · 0 评论 -
ASCII表格
转载 2011-12-07 08:56:59 · 796 阅读 · 0 评论 -
C++基本数据类型与输入输出
每种语言都有自己的一套符号,符号是组成程序的基本单位,它是由若干字符组成的具有一定意义的最小词法单元,如标识符、关键字、运算符、分隔符、常量、注释符等。这里组成符号的字符必须是这种语言字符集中的合法字符,在C++中规定了一个自己的字符集。 2.1 C++字符集字符是可以区分的最小单位,也是组成词法符号的基本单位。C++的字符由下列字符组成。1、大小写英文字母 a~z,A~Z转载 2011-12-02 16:18:51 · 5121 阅读 · 0 评论 -
MFC文件操作大全(一)
获得文件路径:GetFilePath()获得文件名:GetFileName()获得文件标题:GetFileTitile()Path is : "C:\WINDOWS\SYSTEM.INI"Name is : "SYSTEM.INI"Title is: "System"1.创建文件夹创建路径上最后的一个文件夹CreateDirectory(%%1,NULL)创建路转载 2011-12-07 10:52:14 · 5383 阅读 · 0 评论 -
CString与LPCWSTR的转化
问题起因: 在写WritePrivateProfileString写.ini配置文件时在msdn中看到,如果想要写得配置信息即时生效必须在之前使用WritePrivateProfileStringW来re-read一下目标.ini文件,其原文如下: // force the system to re-read the mapping into sha转载 2011-11-28 13:33:00 · 534 阅读 · 0 评论 -
CString ,BSTR ,LPCTSTR之间关系和区别
CString ,BSTR ,LPCTSTR之间关系和区别 CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。 CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。 typedef OLECHAR FAR* BSTR; typedef const转载 2011-12-07 10:02:26 · 751 阅读 · 0 评论 -
目录选择对话框、文件打开或保存对话框、字体对话框和颜色对话框
1 选择目录对话框例子1CString GetPath(){ CString strPath = ""; BROWSEINFO bInfo; ZeroMemory(&bInfo, sizeof(bInfo)); bInfo.hwndOwner = m_hWnd; bInfo.lpszTitle = _T("请选择路径: "); bInfo.ulFlags = BIF_转载 2011-11-25 13:16:46 · 928 阅读 · 0 评论 -
关于WideCharToMultiByte()函数
函数功能:该函数映射一个unicode字符串到一个多字节字符串。 函数原型: int WideCharToMultiByte( UINT CodePage, DWORD dwFlags, LPWSTR lpWideCharStr, int cchWideChar, LPCSTR lpMultiByteStr, int cchMultiByte,转载 2011-12-07 11:14:07 · 2202 阅读 · 0 评论 -
API函数大全
API函数大全1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum转载 2011-11-25 11:04:58 · 482 阅读 · 0 评论 -
char*和CString转换
CString 是一种很特殊的 C++ 对象,它里面包含了三个值:一个指向某个数据缓冲区的指针、一个是该缓冲中有效的字符记数(它是不可存取的,是位于 CString 地址之下的一个隐藏区域)以及一个缓冲区长度。 有效字符数的大小可以是从0到该缓冲最大长度值减1之间的任何数(因为字符串结尾有一个NULL字符)。字符记数和缓冲区长度被巧妙隐藏。(1) char*转换成CString 若将ch原创 2011-11-25 15:02:06 · 1057 阅读 · 0 评论 -
显示图形如何避免闪烁
显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题。而且多数人认为MFC的绘图函数效率很低,总是想寻求其它的解决方案。 MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非常简单,只要使用方法得当,再加上一些技巧,用MFC可以得到效率很高的绘图程序。 我想就我长期(呵呵当然也只有2年多)使用MFC绘图的经验谈谈我的一些观点。 1、显示的图形为什么会闪烁?转载 2011-11-25 15:19:55 · 779 阅读 · 1 评论 -
MFC框架中对最近文件列表的支持
MFC建立的标准框架程序中有记录最近操作文件的能力,这些最近文件的路径被记录到注册表,在程序运行时,又将添加到文件菜单中。 在CWinApp中有个 CRecentFileList* m_pRecentFileList;指针管理这些信息。 以下对此过程进行分析,采用类似的方法,可以保存其他一些固定条数的最近数据。 1.CRecentFileList对象的建立,记录读入、记录保存、对象销毁转载 2011-12-05 13:45:21 · 1614 阅读 · 0 评论 -
ListCtrl鼠标拖动Item
//上移void CBOrderColorDLg::OnBnClickedMoveUp(){ SetFocus(); int iCurIndex = m_iColorIndex;//当前行索引 int iPreIndex = iCurIndex - 1; //上一行索引 if(iPreIndex < 0) return;原创 2011-12-05 13:25:41 · 2249 阅读 · 1 评论 -
使用CRegKey类操作注册表,完成文件关联
在MFC中,有个叫做CRegKey的类,封装了对注册表的操作,下面对这个类简单介绍一下:1.简介CRegKey提供了对系统注册表的操作方法,通过CRegKey类,可以方便的打开注册表的某个分支或子键(CRegKey::Open),可以方便的修改一个键的键值(CRegKey::SetValue),也可以查询某个键的键值(CRegKey::QueryValue),操作完成之后,可以关闭转载 2011-11-30 13:59:50 · 1092 阅读 · 0 评论 -
位图疑难解析
有次接到一个关于图形操作的任务,在概念上纠结了很久,幸而得到很多前辈的指定。整理如下:此处是原帖1:http://topic.youkuaiyun.com/u/20100809/23/651b2840-2643-49c3-a77d-8acb7f9758a7.html此处是原帖2:http://topic.youkuaiyun.com/u/20100820/15/ed5d9990-e44e-4f原创 2011-11-29 16:55:04 · 727 阅读 · 0 评论 -
文件夹的删除、重命名、移动、复制
说明:1.以下封装了4个函数_CopyFile,_DeleteFile,_MoveFile,_ReNameFile2.每个函数都先拷贝了原来的路径,保证了路径是以2个\0\0结尾。(如果不以2个\0\0结尾,往往会出错)3.对于文件或文件夹都适用/*能产生对话框的标志:FOF_SILENT //progress dialo转载 2011-11-28 13:45:22 · 811 阅读 · 0 评论 -
MFC中设置对话框颜色、添加背景图片、添加音乐的方法
一、设置背景颜色的三种方法:1、我们知道程序在运行的时候会调用OnPain函数,那么我们可以在这里设置背景颜色。void CFlipCardsDlg::OnPaint() {if (IsIconic()) {//保持不变 } else { CRect rc; GetClientRect( &rc );// 获取客户区 CPaintDC dc(this);转载 2011-11-25 15:08:34 · 931 阅读 · 0 评论 -
用Visual C++实现注册表简单操作
对注册表的编程要用到句柄,我们需要通过一个句柄访问注册表键值,当打开或创建一个键值的时候,会返回一个该键的句柄,并且调用和分析键和创建键值, 在分析和创建的同时需要传递句柄到函数。WINDOWS提供预定义的用语---根一级键的保留句柄,如 HKEY_CLASS_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USER等,这些都是与注册表 的根键相对转载 2011-12-05 13:29:36 · 698 阅读 · 0 评论 -
添加winods临时字体的方法
1.使用 AddFontResource 把您的字体送入 Windows 字体列表。 例如:AddFontResource("c:\XX.ttf"); 这个函数在你的函数中只要调用一次就行了,这时系统的字体表中会增加该字体,注意这时加载的这个字体,在其他应用程序中也会看到, 所以记得要在退出程序调用 RemoveFontResource("c:\XX.转载 2011-11-28 14:01:58 · 2478 阅读 · 0 评论 -
读写文本文件
CFile readFile, writeFile; //读取txt文件 if(readFile.Open(CBApp::getCurrModulePath()+_T("filename.txt"), CFile::modeRead)) { //ansi to unicode int iFileLenth = (int)readFile.G原创 2011-11-28 13:41:53 · 823 阅读 · 2 评论 -
VC中Ansi、Unicode、UTF8字符串之间的转换和写入文本
Ansi字符串我们最熟悉,英文占一个字节,汉字2个字节,以一个\0结尾,常用于txt文本文件Unicode字符串,每个字符(汉字、英文字母)都占2个字节,以2个连续的\0结尾,NT操作系统内核用的是这种字符串,常被定义为typedef unsigned short wchar_t;所以我们有时常会见到什么char*无法转换为unsigned short*之类的错误,其实就是unicode转载 2011-12-05 15:42:04 · 1287 阅读 · 2 评论 -
CListCtrl简介
以下未经说明,listctrl默认view 风格为report相关类及处理函数MFC:CListCtrl类SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标转载 2011-11-25 15:28:05 · 542 阅读 · 0 评论 -
关于图像基本常识
1. 位图图像 位图图像也叫作栅格图像,Photoshop 以及其他的绘图软件一般都使用位图图像。位图图像由像素组成,每个像素都被分配一个特定位置和颜色值。在处理位图图像时,您编辑的是像素而不是对象或形状,也就是说,编辑的是每一个点。 位图图像与分辨率有关,即在一定面积的图像上包含有固定数量的像素。因此,如果在屏幕上以较大的倍数放大显示图像,或以过低的分辨率打印,位图图像会出现转载 2011-11-25 15:22:41 · 992 阅读 · 0 评论 -
CAD颜色索引表到RGB颜色的转换
原始数据来源于:1 255 0 02 255 255 03 0 255 04 0 255 2555 0 0 2556 255 0 2557 255 255 2558 128 128 1289 192 192 19210 255 0 011 255 127 12712 204 0 013 204 102 10214 153 0 015 153 76 7616 127转载 2011-11-25 15:16:14 · 11147 阅读 · 6 评论 -
MFC-文档标题、主窗口标题、子窗口标题的改变
文档标题在是由工程中相应的文档类所控制的,我们可做如下实验。运行上面AppWizard生成的程序SDITitle,一·对单文档接口(SDI)类型窗口标题的改变 1·文档标题的改变 选择选单中的“文件”“打开”选 项,打开“SDITitile.h”文件,则标题栏变成“SDITitle.h - SDITitle”。这一切动作都是MFC类自动进行的。了解这一点,我们可在相应的文转载 2011-11-29 16:47:23 · 2985 阅读 · 0 评论 -
位图操作集合
一、 显示位图在Visual C++6.0中,显示位图的方法及过程如下: 1. 显示程序资源中的位图(位图的所有数据均存在于可执行文件中) (1)从资源中装入位图 ● 定义位图对象数据成员CBitmap m_Bitmap; ● 调用CBitmap成员函数LoadBitmap(),如m_Bitmap.LoadBitmap(IDB_BITMAP1); ● 传入LoadBit转载 2011-11-26 09:28:49 · 867 阅读 · 0 评论 -
文件读写方法小记
1 读写TXT文件,写入和输出必须统一格式CStdioFile myFile, File;if(myFile.Open(CBApp::getCurrModulePath()+_T("filename.txt"), CFile::modeRead)){//读取 myFile.ReadString(str); myFile.Close();}else{ //创建 File.O原创 2011-12-07 10:14:13 · 1166 阅读 · 0 评论