![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
VC
文章平均质量分 80
dongfs-821
如有侵权 诚挚歉意 告知删除
展开
-
如何控制 VC 中控件间的TAB切换顺序
方法一:在动态创建控件的时候STYLE设置成为WS_CHILD|WS_VISIBLE|WS_TABSTOP,其中WS_TABSTOP 是影响TAB顺序的。 先创建的控件TAB顺序在前。如果要颠倒TAB顺序的话,就把在创建控件时把WS_TABSTOP去掉,并增加对“TAB键被按下”事件的捕捉,人工使用SETFOCUS来控制TAB顺序。 方法二: 在VC中,首先控件没有TABINDEX属性,有 T转载 2016-04-08 15:31:57 · 1371 阅读 · 0 评论 -
资源MFC DLL的制作[在DLL中封装MFC对话框]
1. 首先在MFC DLL 的文件中函数中添加 PIMSHQERON001100.DLLBOOL CPIMSHQERON001100App::InitInstance(){AFX_MANAGE_STATE(AfxGetStaticModuleState());COleObjectFactory::RegisterAll();CWinApp::InitInstance();转载 2018-01-27 17:08:24 · 545 阅读 · 0 评论 -
OP XML
C++ 操作XML文件:xml扩展功能标记语言,是目前主流的数据交换和数据配置的工具,操作XML就成为必备,包括读和写:一、读取XML:CStdioFile file; file.Open ("f:\\a.txt",CFile::modeCreate|CFile::modeWrite); CString str; unsigned short buff[128];原创 2016-12-02 10:56:29 · 333 阅读 · 0 评论 -
拆分字符串 C++
一、 split()方法用于将一个字符串分割成字符串数组。 语法:stringObject.split(separator,howmany)12参数介绍:separator:必需。字符串或正则表达式,从该参数指定的地方分割stringObject。 howmany 可选,该参数指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多余这个参数指定的数组。如果没有设转载 2018-01-27 20:38:37 · 9610 阅读 · 5 评论 -
c++ 判断文件或文件夹是否存在
在Windows应用项目中,几乎总会需要用到一些文件系统相关的函数,如:判断文件是否存在,判断文件夹是否为空,删除文件夹及其所有子项,计算文件夹的大小,等等。不知为何,Windows并未提供直接的API来完成这些操作,于是,代码江湖上开始创立起各种流派,一片刀光剑影。。。大道流:GetFileAttributes大道至简,大道就在你眼前!对于一般的应用来说,GetFileAttributes可以说...转载 2018-03-18 11:54:35 · 2632 阅读 · 1 评论 -
VC 使用应用程序打开另一个应用程序,本应用程序锁定
打开别的应用程序,死循环判断某个文件是否存在,不存在在一直处于休眠状态,以达到锁定效果。void CMy1233Dlg::OnBnClickedButton1(){ // TODO: 在此添加控件通知处理程序代码"E:\\QQ.EXE",SW_SHOW ::WinExec((LPCSTR)_T("D:\\Program Files (x86)\\EditPlus 3\\EditPlus.exe")...原创 2018-03-18 11:57:35 · 867 阅读 · 0 评论 -
vs c++配置opencv(1)
1.vc++配置opencv2.简单常用的图片处理函数3.图像修复函数 环境:vs2013opencv2.4.13 准备工作:1.安装opencv。opencv各版本间存在API差异,opencv提供相应版本的vc文件,在其安装目录 ..opencv\build\x86 目录下,个人觉得引用与当前使用vs版本最接近的目录文件就可以。opencv安装目录下的引用lib及bin文件 提供x86和x64...翻译 2018-03-06 16:07:50 · 5273 阅读 · 0 评论 -
MFC实现编辑框对回车键的响应
首先把文本编辑框属性里的want return选上。然后可以通过重载虚函数PreTranslateMessage()对所关心的消息进行解析:[cpp] view plain copyBOOL CTestView::PreTranslateMessage(MSG* pMsg) { if (WM_KEYFIRST <= pMsg-> message &&...转载 2018-03-24 13:56:57 · 6334 阅读 · 2 评论 -
mfc的CTreeCtrl控件实现windows的资源管理器
BOOL Cwp8MtpTestDlg::OnInitDialog() { CDialog::OnInitDialog(); //设置目录树样式 DWORD dwStyle = GetWindowLong(m_pcTreeCtrl.m_hWnd,GWL_STYLE); dwStyle |= TVS_HASBUTTONS|TVS_HASLINES|TVS_LINES...转载 2018-03-24 17:28:32 · 1300 阅读 · 0 评论 -
判断文件路径是否存在 不存在创建
方法一:CFileFind m_FileFind;CString m_sFilePath = "D://Program Files//Adobe//Adobe Flash CS3";if(!m_FileFind.FindFile(m_sFilePath)) //路径不存在则创建该路径{ CreateDirectory(m_sFilePath,NULL);} 方法二: CString ...转载 2018-04-09 13:52:08 · 1722 阅读 · 0 评论 -
判断某个进程是否存在
#include <Tlhelp32.h>BOOL IsExistProcess(CONST CHAR* szProcessName) { PROCESSENTRY32 processEntry32; HANDLE toolHelp32Snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); ...转载 2018-04-09 13:56:19 · 1331 阅读 · 0 评论 -
MFC CString 转换成CHAR数组
由于结构体中用到联合体(联合体需要确定分配内存分配大小)或其它因素,需要用char数组来保存字符串,但是在MFC中一般都是用CString来存放字条串。关于它们之间的转换,在VS2008中有时会出现异常情况。在MSDN是这样写的: CString orig("Hello, World!");// Convert to a char* const size_t newsize = 100...转载 2018-05-02 16:38:27 · 15113 阅读 · 3 评论 -
vc 菜单
菜单 菜单项属性说明:ID 标识菜单的唯一常量。Caption 菜单项标题,“&" 后面的字符为快捷键,在菜单项后的字符将加下划线。Separator 水平线,其它属性无效。Pop_up 有子菜单Grayed 无效,标题以灰色显示Inactive 无效,标题正常显示Checked 在标题前加一个对钩break 为None时,使它和它的兄弟们一...转载 2018-07-24 14:38:03 · 329 阅读 · 0 评论 -
VC++之随父窗口变化调整控件大小
如果对话框或视类的大小调后,控件的大小和位置没有变化,界面看起来会很不爽控件是从CWnd派生的,但不能使用SetWindowPos()或OnSize()或OnSizing()来改变其大小,应在父窗口的WM_SIZE消息中使用MoveWindow()来进行调整。VC++之根据对话框大小调整控件大小1、在对话框类中加入成员变量CRect m_rect;用于保存对话框大小变化前的大小;2、在对...转载 2018-07-24 14:59:31 · 827 阅读 · 0 评论 -
控制编辑框焦点在最下面的方法(CEdit)
像聊天室的屏幕一样,最新的内容在最下面,不过编辑框滚动到最下面的方法。CEdit m_CtrlEdit;CString m_szMsgSay = "新加入的聊天内容";CString tmp;void CMsgDlg::OnButtonSay() { UpdateData(TRUE); tmp += m_szMsgSay; m_CtrlEdi...转载 2018-07-24 15:05:25 · 394 阅读 · 0 评论 -
VC的CListCtrl控件
VC的CListCtrl控件 收藏 1. CListCtrl 样式及设置2. 扩展样式设置3. 数据插入4. 一直选中Item5. 选中和取消选中Item6. 得到CListCtrl中所有行的checkbox的状态7. 得到CListCtrl中所有选中行的序号8. 得到item的信息9. 得到CListCtrl的所有列的header字符串内容10. 使CLis...转载 2018-07-24 15:08:01 · 318 阅读 · 0 评论 -
翻译:理解COM套间(第一部分)
编写拙作《关于COM组件线程模型的实验》的过程中,发现自己无法合理解释特定情况下程序的运行情况。为更深入理解COM的线程模型,合理解释程序运行情况,找了一些资料看。发现一篇英文文章不错,特地翻译出来。关于对STA中对象的回调处理、其他套间中的线程对MTA中的对象的调用是通过RPC线程池里的线程进行的,以及不应该在自由线程和双线程模型的组件中使用线程局部存储这三点,是我在这篇文章中首次看到的,也是这...转载 2018-08-13 09:06:34 · 271 阅读 · 0 评论 -
VS 调试断点命中
在使用VS开发时,有时断点会无法进入,特别是在一个项目中引用另一个类库项目时。如下图。我在一个项目中引用了自定义的控件MyControl类库,但在使用时发现,有些地方还需要调整,比如这里我需要增加一个GUID作为特殊标识,并输出以供测试。但是当我将这段代码加入进去后,按F5运行程序时,这段代码的断点没有如预期的进入。注:无法进入的断点是空心的,可以进入的断点是实心的。转载 2017-12-13 18:59:54 · 520 阅读 · 0 评论 -
数字图像处理领域的二十四个典型算法及vc实现、第一章
作者:July 二零一一年二月二十六日。参考:百度百科、维基百科、vc数字图像处理。--------------------------------------------------数字图像处理领域的二十四个典型算法及vc实现、第一章一、256色转灰度图二、Walsh变换三、二值化变换四、阈值变换五、傅立叶变换六、离散余弦变换数字图像处理领域的二十转载 2017-09-01 11:28:59 · 372 阅读 · 0 评论 -
vc++ 程序开机自启动和取消启动
//开机启动 int CMainWnd::CreateRun() { //添加以下代码 HKEY hKey; char pFileName[MAX_PATH] = {0}; //得到程序自身的全路径 DWORD dwRet = GetModuleFileNameW(NULL, (LPWCH)pFileNa转载 2017-06-23 14:37:24 · 771 阅读 · 0 评论 -
VC 获取系统时间
1.使用CTime类CString str;//获取系统时间CTime tm;tm=CTime:: GetCurrentTime_r();str=tm.Format("现在时间是%Y年%m月%d日 %X");MessageBox(str,NULL,MB_OK);2: 得到系统时间日期(使用GetLocalT转载 2016-04-08 15:48:35 · 302 阅读 · 0 评论 -
VC 加载图片
第一种:在你建立的MFC工程的.***app的文件的初始化函数里加上对于环境变量的初始化,以及图片的加载,BOOL **********Dlg::OnInitDialog(){......... CRect rect; CDC dc; GetClientRect(&rect); mdc=new CDC转载 2016-04-08 16:19:00 · 442 阅读 · 0 评论 -
VC 服务管理
包含头文件:#include 以下以web服务为例: #include void CStartServiceDlg::OnBnClickedButton1(){ // 打开服务管理对象 SC_HANDLE hSC = ::OpenSCManager( NULL,转载 2016-04-11 13:12:49 · 559 阅读 · 0 评论 -
VC http post 文件到服务器
首先引入 #include "afxinet.h"其次准备好HTTP POST服务器 STDMETHODIMP CPostPDFToA4::t5PostPDFToA4(BSTR strFileName, BSTR strFileFullPath, BSTR* pstrMsg){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); // TODO原创 2016-11-07 17:16:23 · 2437 阅读 · 0 评论 -
VC 启动服务
#include else { SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT)); // 选择重试后重启hasp加密锁服务,并暂停10s 后登录 // 打开服务管理对象 SC_HANDLE hSC = ::OpenSCManager( NULL, NULL, GENERIC_EXECUTE); i原创 2016-11-17 09:58:20 · 620 阅读 · 0 评论 -
VC CFONT
改变控件字体一、CEdit *pEdit=(CEdit*)GetDlgItem(IDC_QDQUERY_EDIT); CFont * pFont = pEdit->GetFont(); pFont->CreatePointFont(180,_T("楷体")); pEdit->SetFont(pFont,TRUE);二、 HBRUSH CDlg_SignIn::OnCtlCol原创 2016-11-30 10:51:49 · 273 阅读 · 0 评论 -
VC TREE
带有复选框的树控件,展开操作,选中复选框操作,图标操作。BOOL CSelectOnLineNode::OnInitDialog(){ CDialog::OnInitDialog(); AFX_MANAGE_STATE(AfxGetStaticModuleState()); ///////*if (!AfxOleInit()) //////{ ////// AfxMessageBox原创 2016-11-29 17:24:56 · 475 阅读 · 0 评论 -
VC 虚拟打印
虚拟打印机,ADOBE PDF// 打印PDF文件通过虚拟打印机BOOL CADDINSGYD00FEFE::PrintCappFile2Pdf(IOb_ObjectPtr objSource){ _variant_t varTemp; // 临时对象 CString strFileName; long nFileID; CString strFileID; CString原创 2016-11-15 11:02:36 · 1432 阅读 · 0 评论 -
VC 获取点击控件的id
int nID = LOWORD(GetCurrentMessage()->wParam);原创 2016-12-14 17:41:39 · 2237 阅读 · 0 评论 -
C++ 创建ACCESS数据库的两种方式
一、 使用msadox.dll创建,不可引用#include HRESULT hr = S_OK; // 创建.MDB文件 命名为test //Set ActiveConnection of Catalog to this string CString strcnn(_T("Provider=Microsoft.JET.OLEDB.4.0;Data source = C:\\t原创 2016-12-08 14:58:45 · 7104 阅读 · 1 评论 -
VC 调用可执行程序
C++程序中调用exe可执行文件在开发项目的时候,有的时候会分开来开发,分开的有时是exe文件,有的时候也会调用现成的工具包里面的一些exe文件,这样在项目里面就要通过调用exe文件来使用。那么在C++里面直接调用exe文件的方法有哪些呢?现在可考虑的方法主要有:a.使用system函数b.使用exec或者是execv函数c.使用WinExec函数d.使转载 2016-12-13 15:10:09 · 458 阅读 · 0 评论 -
动态创建Ribbon 按钮
项目因为业务需求需要动态创建 Ribbon 按钮,在网上找了一些代码,如下:void CMainFrame::OnButton2(){ // TODO: 在此添加命令处理程序代码 CMFCRibbonCategory *pCategory = m_wndRibbonBar.GetCategory(1); CMFCRibbonPanel *pPanel =转载 2016-12-13 18:22:19 · 2355 阅读 · 0 评论 -
CString与std::string相互转换
之前在用MFC编Bayes时遇到一个问题,就是CString与std::string的相互转换,后来发现转换方法其实很简单,就是直接利用这两个类的构造函数。当然,在做参数传入时,CString得通过(LPCTSTR)转换一下,而std::string则需调用c_str()函数: CString转成std::string:CString cs("Hello");std::string转载 2016-12-16 10:17:44 · 4361 阅读 · 1 评论 -
MFC 对话框
CString strFileType = _T("所有文件 (*.*)|*.*||"); CFileDialog fileDlg(true, NULL, _T("kkk"), OFN_HIDEREADONLY, strFileType); fileDlg.DoModal(); CPrintDialog dlg1(FALSE); dlg1.DoModal(); CFindReplaceD原创 2016-12-19 11:47:03 · 194 阅读 · 0 评论 -
c++ 字符类型转换
现来看平时常用的保存字符串的类型有那些?Cstring、TCHAR*、 TCHAR[]、 char*、 LPCSTR、 LPCTSTR、 LPBYTE以上都是在VC中用的比较多得。他们之间如何转化:这里,把Cstring看作一个转换的中间值,任何类型都是相它看齐。1. LPCSTR ßàCstringLPCSTR在VC中代表的是char*」但并不能用char*的方式去转载 2016-04-08 15:43:18 · 2245 阅读 · 0 评论 -
_T含义 C++语言中“_T”
C++ - _T含义 C++语言中“_T”是什么意思? 2009年11月02日 星期一 19:19 _T("Hello")是一个宏,他的作用是让你的程序支持Unicode编码,因为Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。 Windows N转载 2017-03-20 15:08:49 · 1230 阅读 · 1 评论 -
C++ 多线程
留个纪念,不错的总结。十个例子清晰列举啦多线程编程的奥妙。 VC中多线程使用比较广泛而且实用,在网上看到的教程.感觉写的挺好.一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为转载 2017-05-07 12:12:26 · 388 阅读 · 0 评论 -
COM 套间
http://www.vckbase.com/index.php/wv/1315简序大学毕业前的最后一学期,在一家公司实习,当时的工作需要用到一些操作系统提供的组件。那时候只知道COM这个名词,并不知道到底是怎么回事,只知道上网 到处找别人的源码解决自己的问题;那段日子到现在回忆起来都是灰色的,每天呆坐在电脑前,一个网站一个网站的查找自己需要的源码。但并不清楚自己到底在做 什么;那时候对自...转载 2018-08-13 09:08:55 · 269 阅读 · 0 评论