C++
兔子ming_
这个作者很懒,什么都没留下…
展开
-
MFC给按钮添加图片
VC中对话框上编辑里,通过控件方式无法给按钮设定图片的,需写代码实现,还好代码量不大,哈哈!首先建立基于对话框的MFC应用程序工程testDlg,添加按钮,ID为IDC_BUTTON_TEST,接下来一,首先建立位图句柄// 方法一:加载非资源图片HBITMAP hBitmap; hBitmap = (HBITMAP)::LoadImage(原创 2013-10-06 22:41:33 · 844 阅读 · 0 评论 -
MFC 从资源中直接加载文本文件,资源释放到文件
直接加载文本文件到CString:bool CWizardSheet::GetTextResource(UINT uID, CString& csContent){ HMODULE hModule=GetModuleHandle(NULL); HRSRC hRes = FindResource(hModule,MAKEINTRESOURCE(uID),_T("txt"));原创 2013-10-10 17:55:43 · 3384 阅读 · 1 评论 -
MFC 通过注册表获取系统默认浏览器
获取键值函数:bool GetRegKey(HKEY key, CString strKeyPath, CString strKeyName, CString &strKeyVal){ HKEY hKey; LONG lReturn; bool bRet = false; lReturn = ::RegOpenKeyEx(key, strKeyPath,0, KEY_READ, &h原创 2013-10-14 12:49:36 · 2012 阅读 · 0 评论 -
MFC 获取系统类型及版本
CString CWizardSheet::GetSystemType(void){ OSVERSIONINFO osvi; osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&osvi); CString csver; switch (osvi.dwPlatformId原创 2013-10-14 12:51:01 · 2348 阅读 · 0 评论 -
MFC 获取系统时间
CString GetSystemTime(void){ SYSTEMTIME st; CString strDate,strTime,strDateTime; GetLocalTime(&st); strDate.Format(_T("%4d-%2d-%2d"),st.wYear,st.wMonth,st.wDay); strTime.Format(_T("%2d:%2d原创 2013-10-14 12:56:55 · 636 阅读 · 0 评论 -
MFC ado远程连接MSSQL
在stdafx.h中引入:#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")添加变量: _ConnectionPtr m_pConnection; _RecordsetPtr m_pRecordset; 连接数据库:原创 2013-10-14 13:18:26 · 1159 阅读 · 0 评论 -
MFC 获取外网IP地址和MAC地址
MAC地址获取:CString GetMacAddress(void){ //CString strIP,strGateWay,strSubnetMask; CString strMac; strMac.Format(_T("")); u_char pMac[6]; PIP_ADAPTER_INFO adp = NULL; ULONG uLong=0; //为适原创 2013-10-14 12:55:47 · 3313 阅读 · 0 评论 -
Unicode字符集下CString与char *转换
在Visual C++.NET2005中,默认的字符集形式是Unicode,但在VC6.0等工程中,默认的字符集形式是多字节字符集(MBCS:Multi-Byte Character Set),这样导致在VC6.0中非常简单实用的各类字符操作和函数在VS2005环境下运行时会报各种各样的错误,这里总结了在Visual C++.NET2005环境中Unicode字符集下CString和char *之转载 2014-02-28 13:17:00 · 595 阅读 · 0 评论 -
C++文件(夹)选择对话框
由于各种应用,我们需要调用系统的打开文件对话框或者打开文件夹对话框,或两者兼有。今遇到这个情况已经解决,特写下这篇博文。1.打开文件对话框常用的方法是使用系统的CFileDialog。这里介绍另外一种方法就是使用OPENFILENAME这个结构体和GetOpenFileName()这个函数,可以实现单选文件或者多选文件,代码如下:需引入头文件#include "CommDl转载 2014-03-06 17:57:19 · 989 阅读 · 0 评论 -
让MFC程序只运行一个实例
以对话框程序Demo为例:1、在CDemoApp类中添加成员变量: HANDLE m_hMutex;2、重载CWinApp::InitInstance 和 CWinApp::ExitInstance,代码如下:BOOL CDemoApp::InitInstance(){ //创建互斥量 m_hMutex = ::CreateMutexW(NULL,FALSE,_T("Demo")); //判转载 2014-03-17 18:31:03 · 3530 阅读 · 1 评论 -
vector用sort算法排序
用sort对vector排序有两种方法方法1:#include //容器的头文件#include algorithm> //sort算法用到的头文件using namespace std; struct Info{ int x; bool operator >(const Info& Pinfo) const; //降序排列需要重载的操作符 bool转载 2014-03-28 16:47:51 · 7103 阅读 · 0 评论 -
VS工程配置输出debug版dll及copy到指定目录,执行bat脚本的方法
生成的dll为debug版的d结尾项目配置->链接器->常规->输出文件->$(OutDir)\$(ProjectName)d.exe将生成的文件copy到指定目录项目配置->生成事件->生成后事件->命令行 @copy "$(SolutionDir)$(ConfigurationName)\$(ProjectName)d.dll" "$(Sol转载 2014-04-01 15:12:18 · 1200 阅读 · 0 评论 -
CvArr、Mat、CvMat、IplImage、BYTE转换(总结而来)
一、Mat类型:矩阵类型,Matrix。 在openCV中,Mat是一个多维的密集数据数组。可以用来处理向量和矩阵、图像、直方图等等常见的多维数据。 Mat有3个重要的方法: 1、Mat mat = imread(const String* filename); 读取图像 2、imshow(con转载 2014-05-03 17:47:57 · 593 阅读 · 0 评论 -
下载和编译duilib (vs2010)
下载:duilib, svn :原创 2014-04-18 12:37:26 · 3117 阅读 · 0 评论 -
MFC 下调整xp,win7分辨率 代码
DEVMODE devmode = {0}; devmode.dmSize = sizeof(DEVMODE); devmode.dmFields = DM_PELSHEIGHT | DM_PELSWIDTH | DM_DISPLAYFREQUENCY | DM_BITSPERPEL; int nWidth = 1024;//宽 int nHeight = 768;//高 i原创 2014-04-19 19:47:04 · 867 阅读 · 0 评论 -
MFC 语音播放
win7以上(vista未考证),VS2008以上,不再需要Microsoft Speech SDK,直接引用头文件即可。1、引用头文件,加载sapi.lib:#include #include #pragma comment(lib,sapi.lib) 2、初始化COM,初始化 SAPI:ISpVoice * pVoice = NULL; //初始化C原创 2014-04-18 12:38:37 · 2192 阅读 · 0 评论 -
修改VS2008(vc)中工程/解决方案/类的名字
一、先修改工程名/解决方案名 举例,原先的工程名为AAA 想要改成BBB 1.找到工程/解决方案所在的文件夹(已有工程名/解决方案名命名,即AAA) 2.打开该文件夹,有一个AAA.sln 将其重命名为BBB.sln 用记事本打开该文档,点替换,将所有AAA替换为BBB,保存退出. 3.AAA文件夹下还有一个AAA转载 2014-07-23 19:21:50 · 481 阅读 · 0 评论 -
MFC 创建快捷方式的两种方法
方法一:(不修改shell32.dll,不被360拦截)void CreateLinkThenChangeIcon(CString fname_to_create_link, CString lnk_fname){//程序路径,快捷方式名称 HRESULT hr = CoInitialize(NULL); if (SUCCEEDED(hr)) { IShellLink *pis原创 2013-10-10 17:49:44 · 2861 阅读 · 0 评论 -
MFC 语音播放
win7以上(vista未考证),VS2008以上,不再需要Microsoft Speech SDK,直接引用头文件即可。1、引用头文件,加载sapi.lib:#include #include #pragma comment(lib,sapi.lib) 2、初始化COM,初始化 SAPI:ISpVoice * pVoice = NULL; //初始化COM if (FAILED(CoInitia原创 2013-10-08 17:31:01 · 2251 阅读 · 1 评论 -
MFC 目录选取,指定类型文件查找复制
目录选取: BROWSEINFO bi; ZeroMemory(&bi, sizeof(BROWSEINFO)); bi.hwndOwner = m_hWnd; bi.ulFlags = BIF_RETURNONLYFSDIRS; bi.lpszTitle = _T("Browse A Input Path"); LPITEMIDLIST pidl = SHBrowse原创 2013-10-06 22:32:38 · 964 阅读 · 0 评论 -
C++ const关键字用法详解 【转】
1const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。事实上这个概念谁都有只是三种声明方式非常相似很容易记混。Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:把一个声明从右向左读。( * 读成 pointer to )char * const cp;cp i转载 2013-10-06 22:43:46 · 605 阅读 · 0 评论 -
#预处理与C柔性数组
代码:#include #include #define P(A) printf("%s:%d\n",#A,A);typedef struct test{ int a; int b; char c[];};int _tmain(int argc, _TCHAR* argv[]){ int a = 1, b = 2; P(a); P原创 2013-10-06 22:48:31 · 765 阅读 · 0 评论 -
C++ builder 编程学习笔记
最小化窗口: Application->Minimize();关闭: Close();打开文件:void __fastcall TConverterForm1::AddFileActExecute(TObject *Sender){ TTntOpenDialog *OpenDialog = new TTntOpenDialog(this); OpenDialog->Filter原创 2009-11-03 23:01:00 · 977 阅读 · 0 评论 -
MFC 加载程序、解析资源
//解析资源类型BOOL CALLBACK EnumResTypeProc(HANDLE hModule, LPTSTR lpszType, LONG lParam){ EnumResourceNames((HINSTANCE)hModule, lpszType, (ENUMRESNAMEPROC)EnumResNameProc,lParam); DWORD dType = 0原创 2013-10-06 22:24:18 · 997 阅读 · 0 评论 -
MFC 多语言切换 和 程序重启
//语言切换:void CMultiLanguagesDlg::OnLanguageSwitch(){ // TODO: Add your command handler code here // 读取当前线程的语言,并根据当前线程语言进行语言切换 LCID lcidNew = GetThreadLocale();原创 2013-10-06 22:30:14 · 2149 阅读 · 0 评论 -
MFC 自定义类的序列化实现 实例 Shape类
.H:class CShape : public CObject {public: CShape(void); CShape(CShape& other); ~CShape(void); // 是否边框 bool m_bBorder; // 是否填充 bool m_bFill; // 边框颜色 COLORREF m_borderColor; /原创 2013-10-06 22:34:34 · 1867 阅读 · 0 评论 -
文档、视图、框架窗口、文档模板之间的相互关系
文档、视图、框架窗口、文档模板之间的相互关系,关键要理解他们的结构 1、首先应该对 CWinApp类有充分的了解 它包含并管理着应用程序的文档/视窗的所有信息。它有一个成员变量 CDocManager * m_pDocManager,此变量是文档/视窗的管理器,m_templateList转载 2013-10-06 22:40:48 · 707 阅读 · 0 评论 -
MFC打印位图 (BMP)
CPrintDialog printDlg(FALSE); printDlg.GetDefaults(); // Or get from user: // if (printDlg.DoModal() == IDCANCEL) // return; CDC dc; if (!dc.Attach(printDlg.GetPrinterDC()))原创 2013-10-06 22:49:28 · 2876 阅读 · 1 评论 -
MFC 遍历目录下指定类型的文件并复制
void Recurse(CString strDir,CString strExt){ //在指定目录下查找指定扩展名的文件 CFileFind finder; CString strCurrDir; strCurrDir = strDir + _T("\\*.*"); BOOL bWorking = finder.FindFile(strCurr原创 2013-09-18 12:21:29 · 2880 阅读 · 1 评论 -
如何通过图片实现窗体拖动
onMouseMove中: Bland C++ Builder 6: void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y){ { ReleaseCapture(); Perform(WM_NCLBUTTONDOW原创 2009-11-02 20:12:00 · 710 阅读 · 0 评论 -
MFC 关于BMP 24bit 和 32bit的操作
定义结构:.H:class CMBmp{public: CMBmp(void); ~CMBmp(void); int m_nBmpHeight; int m_nBmpWidth; BYTE* m_p32BitBmpBuf;};.cpp:CMBmp::CMBmp(void) : m_nBmpHeight(0) , m_nBmpWidth(0原创 2013-10-06 22:35:40 · 2841 阅读 · 1 评论 -
CHtmlView 截获 Html 点击href
截获用户的输入,在类 CHtmlView 中有一个事件 OnBeforeNavigate2 ,当浏览器被重新导向之前,会激活这个事件。比如说每当用户按下了 HTML 中的超级链接,或者用户在地址栏输入新的地址,还有程序员调用接口的 Navigate 方法,浏览器要转向新地址的时候,都会激活这个事件。而在这里,当你实现 HTML 界面的时候,用户通过点击页面上的链接来激活命令,所以我们可以在这个原创 2013-10-06 22:37:45 · 1267 阅读 · 0 评论 -
BOOST库在Windows下的配置 [转]
一、下载首先从boost官方主页http://www.boost.org/下载最新版boost安装包(目前最新版是1.39.0)。因为 boost一部分类是需要编译成库才能使用的,所以我们还需要准备好boost专用的编译辅助工具bjam。网上很多人都提倡直接使用boost安装包中 附带的bjam源码来编译出bjam,但是之前需要修改若干配置脚本才能编译成功。个人认为真没什么必要,费这劲转载 2013-10-06 22:42:56 · 642 阅读 · 0 评论 -
MFC 删除非空文件夹
BOOL DeleteDirectory(LPCTSTR lpszDir){ if (NULL == lpszDir || L'\0' == lpszDir[0]) { return FALSE; } WIN32_FIND_DATA wfd = {0}; TCHAR szFile[MAX_PATH] = {0}; TCHAR szDelDir[MAX_PATH]原创 2013-10-06 22:29:18 · 1000 阅读 · 0 评论 -
MFC消息数组及批量刷新控件
MFC 消息组映射:(前提是控件ID保持连续性)在.h文件中声明消息响应函数:afx_msg void OnMyColor(UINT uID);在.cpp文件中添加消息映射:BEGIN_MESSAGE_MAP(ColorDlg, CDialogEx) ON_COMMAND_RANGE(IDC_STATIC0,IDC_STATIC7,OnMyColor) END原创 2013-10-06 22:32:06 · 1604 阅读 · 0 评论 -
MFC Ribbon 获取 ComBox,Slider,Edit等方法
ComBox: CMFCRibbonComboBox *pOPComboBox = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, m_wndRibbonBar.FindByID(ID_COMBO)); int nIndex = pOPComboBox->GetCurSel(); CString strCBText; strCBText = pOP原创 2013-10-06 22:37:11 · 3364 阅读 · 0 评论 -
PHP 调用C++ 冒泡排序
从网上看到一个关于php调c++的例子,作者写的demo漏洞百出,实在看不下去了,重新写了一下,以免误导小白,具体过程如下:建立目录:mkdir phpcallcpp建立文件:cpp.htmlcpp.phpsort.cpp->sort ( 命令行: g++ sort.cpp -o sort )cpp.html c++ 测试 请输原创 2016-11-16 00:07:14 · 355 阅读 · 0 评论