自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

转载 VC中的定时器与消息机制

用VC编程,最重要的是要熟悉消息机制。但这一点好像并不是那么容易搞懂,至少现在我还不是完全明白,只有遇到问题时才想办法把它查清楚。      案例:通过SetTimer设置一个定时器,在OnTimer中,设置弹出一个对话框,如MessageBox("Hello")。你会发现对话框会不断的弹出,而不是阻塞在那里?如果你对这个问题很清楚,并且不会认为这是多线程机制,那恭喜你,你一定对Windows消

2012-03-12 11:05:19 443

转载 GetOpenFileName/GetSaveFileName之Crash和pdfshell.dll

说CFileDialog有bug,先看一个现象吧:我用的是英文XP,[山丘之王] 用的是中文XP,[流川]用的是20031. 打开windows自带的记事本程序2. 菜单中选择save as,顺便输入一个名字,比如test.txt,点保存3. 菜单中选择save as,把鼠标移到test.txt上(不是编辑框里面的test.txt,而是文件list里面的test.txt

2009-09-15 16:29:00 1530

原创 对话框程序设置Class Name

一般对话框程序不能在VC的资源编辑器里设置/修改Class Name,对话框属性的Class Name为不可用状态。但可以通过稍作修改,来达到设置对话框Class Name的目的。1. 在资源view中,右键单击*.rc,点属性,修改MFC Mode为false;2. 在看对话框的属性设置中,Class Name属性已经变成可编辑的状态了,设置好Class Name后保存;3. 在创建

2009-08-28 17:06:00 1246

转载 [转载]Windows Vista IE 7保护模式开发者生存指南

保护模式之简介         Internet Explorer 7的保护模式是Vista中的一项新特色,隶属于用户账户控制(UAC)的一部分。保护模式通过对运行于IE进程内的代码进行限制,来达到保护电脑的目的,即便一个恶意网页利用了IE或IE插件中的某个代码注入bug,它也不能对系统造成损害。           完整性级别及UIPI         Windows Vis

2009-08-20 10:17:00 1060

转载 [转载]判断当前窗口是否是全屏的山寨版和官方版

山寨版很好很强大:简单介绍一下,这是我用过的,获取屏幕的四个顶点(具体检测的时候可以向屏幕的中心剪一个像素,譬如检测1,1而不是0,0)所在窗口的句柄,如果四个句柄都相同,则认为是全屏状态,其实有个问题,有些程序全屏的时候,还会有窗口弹出来,典型的像播放软件,全屏的时候,下面还有一个工具栏,这个工具栏和后面的播放窗口是不同的,所以检测失败了。对这种方法加强就是,获取四个点窗口所在的进程

2009-06-03 17:00:00 1118

原创 命令行下查看进程信息(wmic)

在XP下是可以查看进程命令行参数的使用wmic命令

2009-05-11 16:10:00 1183

原创 CDialog输入焦点

如果想自定义 CDialog的输入焦点,一种办法是可以通过VC自带的资源编辑器,设置Tab Order来指定哪个控件是在Tab order的顺序是第一。这种方法的好处是简单方便,但是无法动态指定输入焦点。 如果要根据一些运行时的情况来判断输入焦点,我们很容易想到调用空间的SetFocus函数,但是一般情况下这样是不管用的,输入焦点仍然是在Tab order排第一的那个控件上,为什么?因

2009-03-31 10:19:00 1546

原创 VC小技巧

1. CEdit在获得焦点时选中文本CEdit响应EN_SETFOCUS消息时,如果是鼠标点击出发,会在相应EN_SETFOCUS后继续相应OnClick消息,如果想自定义选中的字符串,简单的调用一下SetSel是不管用的,CEdit中光标的位置还是会移到鼠标单击的区域,而不是我们指定的字符串选中状态,应该用PostMessage(EM_SETSEL, startpos, endpos)的方法

2009-03-30 12:33:00 406

原创 非中文代码页中文字符乱码问题

Windows 2000以上的操作系统,如果改变了操作系统的时间日期格式,设置为非中文(中国),在VS2005中编译的程序,如果调用A2W之类的字符转换宏,或者CString的构造函数和CString::LoadString函数,中文字符会出现乱码。这让我非常困惑,只是改变了时间日期的格式,并有改变默认的非ASCII码的字符集啊,怎么会出现乱码问题呢?细看A2W代码,发现最后会调用MultiByt

2009-01-07 10:59:00 1252

原创 VC6.0代码向VS2005迁移遇到的问题与解决

 VC2005和VC6的编译环境,库的支持有诸多的不同,所以直接迁移有很多无法预料的风险。目前遇到的主要问题如下:1. MFC类库有些类的接口定义已发生改变,如CRichEditCtrl::CreateEx函数,CWnd:: OnActivateApp消息相应函数。2. 库支持方面的更改,目前ToolsSDK库是VC6环境下编译的,其中有些函数依赖于VC6下的一些特定库,直接把VC6下

2008-10-20 14:39:00 2620

转载 [转载]使用PageHeap.EXE或GFlags.EXE检查内存越界错误

原文作者Blog:http://blog.csdn.net/zhengyun_ustc/ 我推荐使用PageHeap.Exe和Gflags.Exe,主要的原因还是因为当有人问内存越界的错误如何查出来的时候,国外的朋友经常会推荐这两个工具(highly recommend)。我用过之后,也觉得有些时候用用还是有好处的。 PageHeap.Exe将针对某个指定的应用程序启用Page Heap标志,

2007-07-30 10:41:00 1683 1

原创 实现文件夹浏览器

通过调用LPITEMIDLIST  SHBrowseForFolder(LPBROWSEINFO lpbi);函数来显示文件夹浏览器。参数lpbi是一个指向BROWSEINFO结构的指针,BROWSEINFO结构原型参考MSDN。如果用户选择了OK按钮,返回一个IPEMIDLIST指针,把这个值传递给SHGetPathFromIDList函数就可以得到选择的文件夹的路径。如果选择Cancel按钮,

2007-07-27 10:55:00 851

原创 eMule协议

eMule ProtocolOverviewA client uses a single TCP connection to an eMule server to logging into the network, getting information about desired files and available clients.The eMule client als

2007-03-06 15:37:00 1070

原创 C++模板编程及函数对象

概述名字空间C++引入namespace关键字用来解决命名冲突这个问题,一个namespace就是一个作用域(scope)。C++标准库中所有的标识符都在std名字空间下,有三种方法使用这些标识符: 直接指定:std::cout 使用using声明:#include using std::cout;……cout……

2007-03-06 15:26:00 1153

原创 动态插入层叠菜单

以下内容为程序代码:CMenu popMenu;popMenu.CreatePopupMenu();// append menu itempopMenu.AppendMenu(MF_BYCOMMAND, ID_1, _T("Pop-up Item 1"));// ID_1是菜单ID值,这里是我假定的值,你可以自己设置,一下ID都一样popMenu.AppendMenu(MF_BYCOMMAND, 

2005-12-15 10:03:00 773

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除