VC++/MFC
文章平均质量分 63
rundll64
这个作者很懒,什么都没留下…
展开
-
AfxExtractSubString函数的用法
今天无意在网上看到了一个比较不常用的MFC分割 字符串的函数AfxExtractSubString(CString& rString, LPCTSTR lpszFullString,int iSubString, TCHAR chSep = '/n'),下面大概说一下它的用法: 参数说明: rString 得到的字符串;lpszFullString 待分割的原创 2014-08-26 23:42:00 · 837 阅读 · 0 评论 -
如何解决 warning C4482
使用了非标准扩展: 限定名中使用了枚举“enum”当引用类型内的枚举时,无需指定枚举的名称。文件范围的枚举定义相当于常量,也不需要限定名。 举例: 定义:struct item { enum status { normal, focus, press, disable }; CRect rt; CStringW ico; }原创 2015-04-10 19:57:54 · 1476 阅读 · 0 评论 -
CStatic控件的基本使用
CStatic 继承于 CWnd,是一种特殊的窗体。他可以显示文本字符串(这也是最常用的用法)、图标、指针(cursor)、位图和增强图文元件. 通常静态控件不提供输入和输出。但是如果把他的属性设置为 SS_NOTIFY,他可以通知其父窗口的击鼠标事件。一。CStatic 用于显示文本 如果文本不变,可以直接设置其 Caption。如果想在运行过程中改变其显示文本,可以用如下方式转载 2015-04-12 01:34:39 · 801 阅读 · 0 评论 -
vs 2008 mfc 编写资源dll
网上找了几个例子,说的都不够清晰,干脆自己动手写一个,整理出来留给后来人借阅首先文件->新建->项目,选中mfc->mfc dll,名字zydll,直接点击完成,创建一个(在共享DLL中使用mfc)的dll起初我选择在静态库中使用,频繁提示错误,干脆修改成共享dll,问题解决。我们继续切换到资源标签,添加资源->string table 点击新建,修改标题为test,修改值为2原创 2015-04-14 03:43:38 · 1586 阅读 · 0 评论 -
VC获取屏幕分辨率及大小相关
vc得到屏幕的当前分辨率方法:1.Windows API调用int width = GetSystemMetrics ( SM_CXSCREEN ); int height= GetSystemMetrics ( SM_CYSCREEN ); 如果想动态自适应分辨率的变化,处理WM_DISPLAYCHANGE消息. 2.获得分辨率BOOL EnumDisplaySettin转载 2015-04-15 01:11:59 · 597 阅读 · 0 评论 -
防止win7在任务栏预览窗关闭程序
近几天在编写程序时,无意中发现个win7比较恶的问题程序基于mfc的对话框应用程序,并且新建了一个窗口,在Oninitdialog中,用DoModal()方法弹出这个窗口本来这个窗口是用作登录框使用,但是在w7的任务栏中的预览窗里,如果点击关闭窗口,奇怪的问题就来了,居然直接退掉了我的DoModal窗口没办法,开spy++最终,最终发现是发送了SC_CLOSE消息原创 2015-04-17 02:07:56 · 1061 阅读 · 0 评论 -
禁止双击、拖动listctrl列头
重写类名为CMyListCtrl,集成CListCtrl重写OnNotify函数头文件private: virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);源文件BOOL CMyListCtrl::OnNotify(WPARAM wParam, LPARAM lParam,原创 2015-05-03 08:22:08 · 2527 阅读 · 0 评论 -
禁止ListCtrl表头拖动(Prevent CListCtrl column resizing)
/*The header control in the ListView control sends notification to the parent window (e.i. the ListView) before it begins resizing a column. We can override the OnNotify() function in the CListCtrl de转载 2015-05-03 07:39:03 · 743 阅读 · 0 评论 -
VC获取各类指针
1、获取应用程序指针CMyApp*pApp=(CMyApp*)AfxGetApp();2、获取主框架指针CWinApp中的公有成员变量 m_pMainWnd 就是主框架的指针 CMainFrame*pMainFrame =(CMainFrame*)(AfxGetApp()->m_pMainWnd);或者CMainFrame*pMainFrame = (CMainFrame*转载 2015-02-03 18:23:04 · 487 阅读 · 0 评论 -
MFC获取控件位置
设置位置可以使用setWindowPos但是并没有函数GetWindowPos获取位置可以通过一下方法获得相关函数GetClientRect(); //获得client区域GetWindowRect(); //获取window区域ScreenToClient(); //相互转换ClientToScreen();由于GetClientRect()获得的区域不包转载 2015-05-04 23:17:49 · 617 阅读 · 0 评论 -
SetWindowPos详解
函数名: SetWindowPos头文件: winuser.h函数原型: BOOL SetWindowPos ( HWND hWnd, //窗口句柄 HWND hWndInsertAfter, //排列顺序的句柄 int X, //水平坐标 int Y, //垂直坐标 int cx, //宽 int cy, //高 UINT转载 2015-05-04 23:22:50 · 1087 阅读 · 0 评论 -
MFC制作不规则窗体
1.制作png图片。注意边界,多试几次会明白我的意思的2.m_image为CImage类,在OnInitDialog()里加上: ModifyStyleEx(0,WS_EX_LAYERED); m_image.Load(_T("res\\test1.png")); DrawUI();DrawUI()实现如下:void CdirectUITest2Dlg::DrawUI(){转载 2015-04-10 01:48:39 · 479 阅读 · 0 评论 -
VC++与VB数据类型对应关系
在做VC与vb程序间互相调用,需要注意两种语言不同编译器对数据类型的定义区别,此时两者数据类型的对应关系就显得十分的重要,对应关系以及声明方式如下所示。VC++ VB shortInteger int Long long Long UN转载 2015-02-08 10:46:31 · 559 阅读 · 0 评论 -
strcspn和strspn函数
1、strcspn头文件:#inclued定义函数:size_t strcspn(const char *s, const char * reject);函数说明:strcspn()从参数s 字符串的开头计算连续的字符, 而这些字符都完全不在参数reject所指的字符串中. 简单地说, 若strcspn()返回的数值为n, 则代表字符串s 开头连续有n 个字符都不含字符串r转载 2014-08-28 02:27:04 · 474 阅读 · 0 评论 -
转 String,CString,TCHAR*,char*之间区别和联系
最近老用到Cstring, TCHAR*, char*的转换. 找到一篇写得蛮详细的. 引用过来, 方便自己以后查阅. char是类型TCHAR也是!不过他可以通过是否定义了UNICODE宏来判断到底是char还是w_char; TCHAR是一种字符串类型,它让你在以MBCS和UNNICODE来build程序时可以使用同样的代码,不需要使用繁琐的宏定义来包含你的代码,而char代表AS转载 2014-08-28 02:30:12 · 369 阅读 · 0 评论 -
在VC++6.0中用MFC进行COM编程
首先应当明确,MFC中是通过嵌套类而不是多重继承来实现COM接口的,通过接口映射机制将接口和实现该接口的嵌套类关联起来;MFC中提供一套简明的宏来实现嵌套类的定义。其次,MFC通过CCmdTarget类实现了IUnknown接口。 本文首先描述创建一个COM服务器的步骤和核心代码。然后说明客户程序关键代码。 此COM服务器实现一个TimeLogServer组件,为简明起见,此组原创 2014-08-31 07:31:19 · 663 阅读 · 0 评论 -
CString to BSTR & Bstr to CString and VARIANT to CString
CStrint to BSTR [cpp] view plaincopyCString str = "CString to BSTR" BSTR b_str = str.AllocSysString(); // do something ::SysFreeString(b_str); BSTR to CString转载 2014-09-03 14:50:53 · 493 阅读 · 0 评论 -
关于MFC项目中使用WebBrowser控件禁止脚本错误的方法
最近一个项目中要在对话框上使用WebBrowser控件进行页面浏览,但在开发过程中发现WebBrowser控件会在浏览一些页面的时候出现 JavaScript脚本错误,严重影响用户体验,而在IE和其他第三方浏览器中均没有这个现象。于是搜索一下发现原来可以通过下面的代码禁止这个错误提示:m_WebBrowser.put_Silent(TRUE);//禁止脚本错误提示 效果非常好转载 2014-09-03 07:41:25 · 772 阅读 · 0 评论 -
通过IWebBrowser2的Navigate2来打开网页,怎样判断网页是否全部加载完毕
123456789101112131415161718192021222324252627282930313233343536371)READYSTATE r;HRESULT hr = IWebBrowser2::g原创 2014-09-03 07:43:55 · 3746 阅读 · 0 评论 -
常用正则表达式(?i)忽略字母的大小写!
1。^/d+$ //匹配非负整数(正整数 + 0) 2。^[0-9]*[1-9][0-9]*$ //匹配正整数 3。^((-/d+)|(0+))$ //匹配非正整数(负整数 + 0) 4。^-[0-9]*[1-9][0-9]*$ //匹配负整数 5。^-?/d+$ //匹配整数 6。^/d+(/./d+)?$ //匹配非负浮点数(正浮点数 + 0) 7。^(转载 2014-09-03 06:53:48 · 631 阅读 · 0 评论 -
Inet控件- Microsoft Internet Transfer Control 6.0 -M
AccessType 属性 设置或返回一个值,决定该控件用来与 Internet 网进行通讯的访问类型 icUseDefault 0 控件使用在注册表中找到的缺省设置值来访问 Internet 网。 icDirect 1 直接连到 Internet 网。控件直接连到 Internet 网。 icNamedProxy 2 指示控件使用 Proxy 属性中指定的代理服务器。转载 2014-09-03 15:09:32 · 1422 阅读 · 0 评论 -
创建可以与桌面程序进行交互操作的windows服务
主题:windows服务 对话框 消息框 交互操作 在创建windows服务时,在服务类型中附加该参数可创建可与桌面程序进行交互操作的windows程序。ortant;TEXT-TRANSFORM: none; WHITE-SPACE: normal; FLOAT: none; FONT: 14px/24px Helvetica, Tahoma, Arial, sans-serif转载 2014-11-13 18:51:43 · 4611 阅读 · 0 评论 -
VC++中CTime类Format参数详解
CTime类通过Format可以格式化输出日期时间信息,通过控制Format的参数我们可以实现各种各样的日期时间格式输出,要想随心所欲的控制输出的格式,就需要搞清楚各个参数的意义,下面通过实例来说明各个Format参数的意义。 假设CTime对象当前的日期时间为:2011-4-17 14:32:18 星期日 英文表示为:Sunday, April 17, 2011 14:32:18,下表中列转载 2015-01-18 00:58:48 · 461 阅读 · 0 评论 -
将w32 dll文件以资源的形式加载,并且在内存中调用
大部分代码取自网络,重新修改、编辑后发布//MemLoadDll.h#pragma oncetypedef BOOL (__stdcall *ProcDllMain)(HINSTANCE, DWORD, LPVOID ); class CMemLoadDll { public: CMemLoadDll(); ~CMemLoadDll()原创 2015-05-04 03:04:44 · 848 阅读 · 0 评论 -
CListCtrl使用技巧
以下未经说明,listctrl默认view 风格为report1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:w转载 2015-05-04 23:19:49 · 399 阅读 · 0 评论 -
获取当前系统版本
void plugclass::TCHAR* str;mGetVersionEx(str);AfxMessageBox(str);(TCHAR*& strOSVersion){OSVERSIONINFO osvi;//TCHAR * strOSVersion;ZeroMemory( &osvi, sizeof( osvi ) );osvi.dwOSVersionInfoSize = siz原创 2015-06-23 14:08:19 · 764 阅读 · 0 评论 -
[VC++]限制CEdit(Edit Contrl)只能输入数字和小数点
void CSettingcategory::OnEnChangeEdit2(){ CString csAreaS; GetDlgItem( IDC_EDIT2 )->GetWindowText( csAreaS ); // 只允许输数据 int nStringLength = csAreaS.GetLength(); int nDotCount = 0; // 点字符不能多于1个转载 2015-05-19 20:42:19 · 2030 阅读 · 0 评论 -
mfc 标题栏 标题字体 居中显示
在头文件中放下面的函数:view plaincopy to clipboardprint?afx_msg void OnNcPaint(); afx_msg BOOL OnNcActivate(BOOL bActive); afx_msg void OnActivate( UINT nState, CWnd* pWndOther, BOOL bMinimized );在cpp文件转载 2015-05-23 13:56:36 · 3499 阅读 · 1 评论 -
MFC CListCtrl 在没有任何焦点下让某行高亮
//添加消息afx_msg void OnNMCustomdrawList1(NMHDR *pNMHDR, LRESULT *pResult);//捆绑ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST1, &CInvoicedistribution::OnNMCustomdrawList1)//实现方法void CMainFrame::OnNMCustomdr转载 2015-05-23 03:53:40 · 893 阅读 · 0 评论 -
窗体透明、窗体上控件和DC绘图不透明
BOOL CDlgBmp::OnInitDialog() { CDlgBase::OnInitDialog(); CClientDC dc(this); COLORREF maskColor = RGB(255,255,255); //掩码颜色 SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE, GetWin转载 2015-05-24 06:20:55 · 714 阅读 · 0 评论 -
C++在VS2008的IDE环境中操作Excel2007(基础)
在网上找了一些方法不是特别行的通,在同事的知道下测试成功了,记录下来。1.新建一个MFC Application,选择Dialog based,创建工程。2.放置一个button控件。3.在classView视图中,右键点击工程名,Add->class,在弹出的对话框中选择MFCclass Form TypeLib,在打开的对话框中按图示选择:将_App转载 2015-06-13 01:40:54 · 674 阅读 · 0 评论 -
关于#ifdef _DEBUG失效问题
好久没写东西了,今天无意间遇到了个小问题,留下来,为后来人解决问题开发环境:vs2008#ifdef _DEBUG#pragma comment(lib,"jsonDBG.lib")#else#pragma comment(lib,"jsonREL.lib")#endif我在头文件中用宏定义加载了json.lib并成功使用问题描述:默认情原创 2017-06-28 11:31:22 · 3265 阅读 · 0 评论 -
MFC 获取MAC-IP-NetworkName
#include #pragma comment(lib,"Iphlpapi.lib") typedef struct MacIp { CString Description; CString ip; CString mac;}MacIp;typedef std::vector VECTOR_DATA;BOOL GetLocoalIPandMac(vector &maci转载 2017-08-28 00:15:38 · 762 阅读 · 0 评论 -
VC 如何使程序运行后自己删除自己
有时候,我们需要创建一个运行后能够自己删除自己的可执行程序即自删除程序。很明显如果一个进程通过直接调用DeleteFile()来删除自己是不可能的。必须另想办法,经过本人在网上参考很多资料后实际测试并集众家之所长,发现有二种方法效果比较好。现在将其封装成函数,这样使用将更加容易:方法1,调用BAT文件。//向指定文件写入文本。如果文件不存在就创建。int WriteTextToFi转载 2017-08-28 18:23:59 · 507 阅读 · 0 评论 -
VC API 分割字符串
AfxExtractSubString函数的用法在我做加密软件时,需要给加密后的文件加个后缀(比如.zq),然后解密时又需要去掉后缀,还原本来的后缀,并在文件名后加“解密”二字,我采取的就是这个比较不常用的MFC分割字符串的函数AfxExtractSubString(CString& rString, LPCTSTR lpszFullString,int iSubString, TCHAR c转载 2017-09-02 23:23:05 · 545 阅读 · 0 评论 -
MFC获得汉字拼音首个字母-C++版
//1,定一个静态常量数组static const CStringW g_TxtToPy[] = { L"A阿啊锕嗄厑哎哀唉埃挨溾锿鎄啀捱皑凒溰嘊敳皚癌毐昹嗳矮蔼躷噯藹譪霭靄艾伌爱砹硋隘嗌塧嫒愛碍暧瑷僾壒嬡懓薆曖璦鴱皧瞹馤鑀鱫安侒峖桉氨庵谙萻腤鹌蓭誝鞌鞍盦馣鮟盫韽啽雸垵" , L"A俺唵埯铵隌揞罯銨犴岸按荌案胺豻堓婩暗貋儑錌黯肮岇昂昻枊盎醠凹坳垇柪軪爊敖厫隞嗷嗸嶅廒滶獒獓转载 2015-05-19 00:48:53 · 90679 阅读 · 0 评论 -
VS2008在XP系统托盘气泡提示不成功解决办法
在XP系统,VS2008下,实现托盘气泡提示不弹出的情况,解决办法如下:如果是VS2008建立的工程,则直接修改targetver.h 文件为以下内容:#ifndef WINVER // 指定要求的最低平台是 Windows Vista。#define WINVER 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。#endif#ifndef _转载 2015-06-23 14:02:38 · 756 阅读 · 0 评论 -
VC如何将资源中包含的位图释放成文件
前两天一个朋友叫我帮他写一段代码,想把资源中包含的图片释放成磁盘文件,我想这个应该很简单啊,于是便写了如下函数: BOOL FreeSource_1(LPCTSTR pszResName,LPCTSTR pszResType,LPCTSTR szFileName) { BOOL bRet = TRUE; HINSTANCE hInst转载 2015-05-13 18:02:58 · 526 阅读 · 0 评论 -
将MFC dll中的窗口嵌入到工程窗口中
这几天玩破解程序的时候无意间发现一个有意思的小程序,它的主框架只有几个按钮事件,其他窗口都是从dll中的窗口嵌入到主程序中来的其实这么做的好处就是将数据传递给dll处理,而不影响主程序的允许速度,所以不会产生假死现象以下是我模拟的过程首先新建一个mfc 静态的dll,在dll中插入一个dlg窗口并new一个类,名字为CDlg1要将dll窗口嵌入到主程序窗口中原创 2015-05-06 12:25:25 · 2496 阅读 · 1 评论 -
关于Combobox SetItemData与GetItemData
今天写代码,发现个奇怪的问题代码如下CString str[] = {L"a",L"b",L"c"}for (int x = 0;x<3;x++){ m_box.AddString(str[i]); m_box.SetItemData(i,(DWORD)(&str[i]));}DWORD dwOrd = m_box.GetItemData(m_box.GetCurSel())原创 2015-05-16 03:46:13 · 5891 阅读 · 0 评论