
VC
Alsmile
乐吾乐
le5le.com
展开
-
VC分类说明
自我到公司实习的那天起,我就收集了很多VC的资料和代码,一直想把它贴到网上,方便自己无论到哪里,只要能上网就能看到,可一直没有做到。一方面是自己太懒;另一方面是,这些东西大多都来自网上,算不上是自己的东西。所以,可能很多代码和网上或其他地方很类似,敬请见谅,有任何问题,可以和我联系(qq:279567344)。我这里只是当初学习时整理的副本,难免会看看别人怎么写,因为自己不会。原创 2011-06-07 12:52:00 · 836 阅读 · 0 评论 -
自己写的GDI+ 图片文字按钮 ButtonIT
#pragma once #include "afxwin.h" #include #include #pragma comment(lib, "gdiplus.lib") using namespace Gdiplus; class CButtonIT : public CButton { public: CButtonIT(); virtual ~原创 2011-06-07 17:52:00 · 3101 阅读 · 0 评论 -
文件、文件夹
读取文件属性 1.GetFileAttributes 2. CFile* pFile = pDoc->GetFile(pDoc->GetPathName(), CFile::modeRead|CFile::shareDenyWrite,NULL); ASSERT(pFile); if(pFile) { // 保存上次写文件的时间 FILETIME ftLastWriteTim原创 2011-06-07 17:29:00 · 1949 阅读 · 0 评论 -
鼠标键盘模拟 【转】
(1)SendMessage or PostMessage 指定hwnd后可以后台发送,这是相比后面2种方式的优势之一。 例如: 以当前程序的某个输入框为例: HWND tw2 = GetDlgItem(IDC_EDIT1)->m_hWnd; ::SendMessage(tw2,WM_CHAR,s[i],0); 单击按钮: HWND tw3 = GetDlgItem(IDOK)->原创 2011-06-07 17:42:00 · 5202 阅读 · 0 评论 -
vc 用mkdir 创建多级目录
#include//p是路径可以是相对路径或是绝对路径CreateMultilevelPath(char *p) {int i,len;len=strlen(p);for(i=0;i{ if(p[i]=='\\') { p[i]='\0'; _mkdir(p); p[i]='\\'; }}转载 2013-01-09 16:19:29 · 5225 阅读 · 1 评论 -
unicode 转 utf8, WideCharToMultiByte MultiByteToWideChar
vc下一直用CStringW 和 CStringA复值自动转换挺好用的,最近要unicode转utf-8好像不怎么好使。网上查了个unicode_to_utf8函数,想脱离windows平台,结果根本就是错误的,有些能转正确,有些事错误的。这种最害人。只好还是用原始的WideCharToMultiByte,这是windows平台下推荐的做法。当然,下面两个函数是从网上copy的,可以根原创 2013-03-22 12:43:52 · 1685 阅读 · 0 评论 -
MessageBox弹出的对话框放置在最前面
有时候,MessageBox弹出对话框会在别的窗口的后面,可以如下:MessageBox(NULL,"text", "caption", MB_OK | MB_SYSTEMMODAL);MessageBox(NULL,"text", "caption", MB_OK | MB_TOPMOST);原创 2013-05-04 11:04:59 · 10390 阅读 · 3 评论 -
智能指针作为函数参数:普通参数、指针参数、WPARAM
一、auto_ptr和shared_ptr作为普通参数、指针参数 我想这是我们使用最多的,直接传过去好了,基本上没什么好担心的。例如: 1. T* pt = new T; auto_ptr ap( pt); // void f1(auto_ptr ap); f1(ap);原创 2013-04-27 14:26:39 · 8123 阅读 · 0 评论 -
VC 无标题栏窗口移动
网上大多数类似下面写法:LRESULT C**Dialog::OnNcHitTest(CPoint point){ UINT nHitTest = CDialog::OnNcHitTest(point); if (m_canMove && nHitTest == HTCLIENT && ::GetAsyncKeyState(MK_LBUTTO原创 2013-06-07 13:53:50 · 1436 阅读 · 0 评论 -
VC获取MAC地址
以前用WDK获取一些硬件信息,但是有些需要管理员权限,比较尴尬。谁都不喜欢多弹一个对话框。 现在又因为需要获取mac地址,在网上收集了一下方法,还是有一些方法。使用过其中两三种,比较推荐如下:(个人在vc2010下使用的)原因是,存在虚拟机时,其他方法往往不能获取真实mac地址,而是虚拟机的。下面方法能比较准确的获取真实物理网卡地址。当然,我没测试多个物理网卡情况。#include转载 2013-07-17 10:31:01 · 4613 阅读 · 0 评论 -
绘画多行文字,设置行高,省略号
一、按段落显示,末尾省略int DrawMultiLine(CDC *pDC, const CString& text, CRect rcText, int lineHeight, BOOL isCalCrect) { int textHeight(0); if (!pDC) { return textHeight;原创 2013-07-19 15:23:45 · 1847 阅读 · 0 评论 -
禁用第三方库警告
#pragma warning(push)#pragma warning(disable:4009)#include #pragma warning(pop)原创 2013-07-19 17:13:02 · 884 阅读 · 0 评论 -
LinkList CListCtrl里显示多个链接
头文件: #pragma once // CLinkList #define WM_LIST_BTN_CLICK WM_USER + 500 class CLinkList : public CListCtrl { DECLARE_DYNAMIC(CLinkList) public: CLinkList(); virtual ~CLinkList();原创 2011-06-07 17:50:00 · 1074 阅读 · 0 评论 -
VC++多线程编程 【引用链接】
http://wenku.baidu.com/view/a01445a3b0717fd5360cdce8.html原创 2011-06-07 17:49:00 · 931 阅读 · 0 评论 -
简单控件基本应用
编辑框EditBox读写数据1、 利用向导关联一个CString变量即可。这是最简单,也是用的最多的一种方法。2、 利用窗口指针,GetWindowText/ SetWindowText:A、 可以关联一个控件型指针(CEdit)。B、 GetDlgItem(ID)得到窗口指针。例如:GetDlgItem(IDC_EDIT_INPUT)->SetWindowText(原创 2011-06-07 13:13:00 · 1179 阅读 · 0 评论 -
菜单、工具栏、状态栏
菜单系统菜单CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_AB原创 2011-06-07 13:16:00 · 1377 阅读 · 0 评论 -
VC2008 NewControl 示例
3、VC2008 NewControl 示例(源码:http://download.youkuaiyun.com/source/2819075vc2008目录下面好像也是有的) CMFCButton例:变量类型:CMFCButton m_mfcBtn;普通按钮:1)在App::InitInstance()中添加:CMFCVisualManager::SetDefaultMa原创 2011-06-07 17:06:00 · 3876 阅读 · 0 评论 -
字符串 常见类型转换[转]
C++字符串完全指引之一 —— Win32 字符编码:CodeProject:The Complete Guide to C++ Strings, Part IC++字符串完全指引之二 —— 字符串封装类:CodeProject:The Complete Guide to C++ Strings, Part IICString ,BSTR ,LPCTSTR之间关系和区别CString是转载 2011-06-07 17:17:00 · 8681 阅读 · 0 评论 -
文件读写
三种读写方式1.CFileCFile file;CFileException eErr;CString strFileName = "f://txt1.wkb";LPCTSTR lpszFileName = strFileName;try{if(!file.Open(lpszFileName, CFile::modeReadWrite | CFile::modeCr原创 2011-06-07 17:34:00 · 2195 阅读 · 0 评论 -
检测程序运行实例个数
共享数据段 方式 在.cpp文件开头加上以下几行: #pragma data_seg("Shared") int volatile g_lAppInstance =0; #pragma data_seg() #pragma comment(linker,"/section:Shared,RWS") 我们来看一下上面的内容: 第一句 #pragma data_seg("Shared")原创 2011-06-07 17:37:00 · 1081 阅读 · 0 评论 -
加速键 (Accelerator)和 热键(HotKey) [转]
加速键 (Accelerator)和 热键(HotKey) 加速键 和 热键 是两种不同的快捷键(我这里暂且把它们都称为快捷键,而其他人可能只把后者称为快捷键。)应尽量避免冲突。 加速键 (Accelerator) 一种是直接与菜单项关联的加速键 另一种就是自定义的加速键. 第一种: (如果是基于对话框的工程,我们先添加菜单和加速键资源,然后右击主对话框属性添加菜单) 首先在资源文件原创 2011-06-07 17:39:00 · 5504 阅读 · 0 评论 -
设置鼠标形状[转]
系统的资源包括刷子,pen,等都是这样用的,首先要保存老的object,用完之后,再还原,呵呵! hOldCursor = SetCursor(LoadCursor( NULL, IDC_WAIT )); SetCursor( hOldCursor );总结:SetCursor(AfxGetApp()->LoadCursor(IDC_ARROW));//为什么不能加载S转载 2011-06-07 17:39:00 · 900 阅读 · 0 评论 -
文字 字体 【转】
字号转换成像素 For the MM_TEXT mapping mode, you can use the following formula to specify a height for a font with a specified point size: lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72)原创 2011-06-07 17:44:00 · 1398 阅读 · 0 评论 -
普通dll头文件定义
目的:其他工程引入头文件,而不必做任何修改。 导出函数声明在同一头文件的实现如下: #pragmaonce // stdafx.h 中定义了宏_AFXEXT,在dll实现源文件工程中,定义了;但是在引入调用的工程中不定义 // 则自动实现导入导出设置 #include"stdafx.h" #ifdef DLLEXT #define DLLEXT_API extern "C" _dec原创 2011-06-07 17:47:00 · 1900 阅读 · 0 评论 -
CString 字符串相加
有时CString的多个相加操作并不好用,在mfc里面可以,但是可能在其他普通的地方却不好使用,会提示不允许两个指针相加 我更喜欢用下面的形式:(不但不会提示指针相加错误,而且看起来比用“+”清晰) CString sql; sql.Format(_T("EXEC sp_UserLogin /%s/,/%s/"), lpstrUser, lpstrPassword);原创 2011-06-07 17:48:00 · 14870 阅读 · 2 评论 -
使用ShellExecuteEx调用控制台程序或命令行,传入多个参数,并等待返回结果
// 封装函数// 参数依次为:// 执行程序的路径// 传给执行程序的参数// 执行程序环境目录// 最大等待时间, 超过这个时间强行终止。 INFINITE 无限等待DWORD WinExecAndWait32(LPCTSTR lpszAppPath, LPCTSTR lpParameters, LPCTSTR lpszDirectory, DWORD dwMillis原创 2013-01-10 15:54:48 · 9052 阅读 · 1 评论