
读书笔记
文章平均质量分 67
mycaibo
这个作者很懒,什么都没留下…
展开
-
使用Windows API画位图(BITMAP) (原帖由niesongsong发表)
标 题:【原创】使用Windows API画位图(BITMAP)<br />作 者: niesongsong<br />邮 箱:nie@song.ah.cn<br />关键字:C语言、Windows API、BitBlt、StretchBlt、DC <br />时 间:2010-09-04<br /><br />【前言】<br />有人说不要重新发明轮子,诚然,我同意这种说法,作为运行在Windows上的用户级程序均构架在Windows API之上。如果你了解或者深究Windows API,转载 2010-12-06 14:36:00 · 1851 阅读 · 0 评论 -
VC 模式对话框和非模式对话框的创建,销毁和区别
在WIN32中,模式对话框的创建一般是使用DialogBox来进行创建的。而非模式对话框则是利用CreateWindow来创建的。在MFC或是WTL中,模式对话框一般是使用DoModal,而非模式对话框的创建则是使用Create。模式对话框创建后,程序的其他窗口便不能进行操作,必须将该窗口关闭后,其他窗口才能进行操作。而非模式对话框则无需这样,它不强制要求用户立即反应,而是与其他窗口同时接受用户操作。Create的Dialog一般是modalless,如果你的程序本身就是只有一个Dialog,就无所谓了原创 2010-11-11 11:19:00 · 6105 阅读 · 0 评论 -
atoi,atol,strtod,strtol,strtoul实现类型转换
atoi,atol,strtod,strtol,strtoul实现类型转换原创 2010-11-11 11:32:00 · 619 阅读 · 0 评论 -
VC截获系统注销时候的消息
使用WH_CALLWNDPROC类型钩子,回调函数如下:LRESULT CALLBACK MyProc(int code, WPARAM wParam, LPARAM lParam)<br />{<br />switch (((CWPSTRUCT*)lParam)->message)<br />{<br />case WM_QUERYENDSESSION:<br />{<br />switch( ((CWPSTRUCT*)lParam)->lParam )<br />{<br />case ENDSESSI原创 2010-11-11 11:53:00 · 1157 阅读 · 0 评论 -
堆和栈的区别
在bbs上,堆与栈的区分问题,似乎是一个永恒的话题,由此可见,初学者对此往往是混淆不清的,所以我决定拿他第一个开刀。<br />首先,我们举一个例子:<br />void f() { int* p=new int[5]; }<br />这条短短的一句话就包含了堆与栈,看到new,我们首先就应该想到,我们分配了一块堆内存,那么指针p呢?他分配的是一块栈内存,所以这句话的意思就是:在栈内存中存放了一个指向一块堆内存的指针p。在程序会先确定在堆中分配内存的大小,然后调用operator new分配内存,然后返回这原创 2010-11-11 11:58:00 · 465 阅读 · 0 评论 -
模拟按键实现
模拟按键实现:模拟键盘我们用Keybd_event这个api函数,模拟鼠标按键用mouse_event函数。在VC里调用api函数是既简单又方便不过的事了。原创 2010-11-11 12:00:00 · 917 阅读 · 0 评论 -
CreateProcess函数详解及示例
WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件。原创 2010-11-11 11:28:00 · 3196 阅读 · 0 评论 -
vc串口通信3种方法的实现和比较
本文介绍了在Windows平台下串行通信的实现机制,讨论了根据不同的条件用Visual C++ 设计串行通信程序的三种方法,并结合实际,实现对温度数据的接收监控。 在实验室和工业应用中,串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛。依据不同的条件实现对串口的灵活编程控制是我们所需要的。原创 2010-11-11 11:44:00 · 1436 阅读 · 0 评论 -
VC使当前所有窗口最小化
VC使当前所有窗口最小化:keybd_event原创 2010-11-11 11:47:00 · 1197 阅读 · 0 评论 -
VC判断是否为文件夹或者文件
int IsDirectoryOrFile(CString strFileName)<br />{<br />strFileName.TrimLeft();<br />strFileName.TrimRight();WIN32_FIND_DATA fd;<br />HANDLE hFind = ::FindFirstFile(strFileName,&fd);<br />::FindClose(hFind);//不存在同名的文件或文件夹<br />if (hFind == INVALID_HANDLE_VA原创 2010-11-11 11:51:00 · 2062 阅读 · 0 评论 -
VC改变对话框的背景色的方法(4种)
方法一:调用CWinApp类的成员函数SetDialogBkColor来实现。<br />其中函数的第一个参数指定了背景颜色,第二个参数指定了文本颜色。下面的例子是将应用程序对话框设置为蓝色背景和红色文本,步骤如下:<br />① 新建一个基于Dialog的MFC AppWizard应用程序ExampleDlg。<br />② 在CExampleDlgApp ::InitInstance()中添加如下代码:<br />BOOL CExampleDlgApp: : InitInstance ( )<br />原创 2010-11-11 12:05:00 · 951 阅读 · 0 评论 -
VC编程使计算机休眠
void CPage1::OnXiuMian()<br />{<br />if(MessageBox(“确实要休眠吗?”,”关机程序”,MB_YESNO|MB_DEFBUTTON2|MB_ICONQUESTION)==IDYES)<br />{<br />static HANDLE hToken;<br />static TOKEN_PRIVILEGES tp;<br />static LUID luid;<br />if(::OpenProcessToken(GetCurrentProcess(),<br原创 2010-11-11 12:09:00 · 1158 阅读 · 0 评论 -
程序热键的实现
[问题提出]<br />有的程序需要自定义组合键完成一定功能,如何实现?[解决方法]<br />RegisterHotKey函数原型及说明:<br />BOOL RegisterHotKey(<br />HWND hWnd, // 接收WM_HOTKEY的窗口句柄<br />int id, // hot key的ID号.<br />UINT fsModifiers, // 响应那个热键.<br />UINT vk // 与热键配合的键.其中:<br />1)id的说明:<br />id为你自己定义的一个ID原创 2010-11-11 12:12:00 · 739 阅读 · 0 评论 -
C++ 十进制、二进制互相转换
十进制 , 二进制原创 2010-11-14 21:41:00 · 4146 阅读 · 0 评论 -
VC++颜色渐变实现的3种方法
要实现窗口(如菜单、按钮、主背景等)背景颜色的多样化,有很多种实现方法,其中颜色渐变就是一种比较常见的方法。它简单实用,即改变了窗口背景颜色的单调,又实现简单。主要方法有很多种,各有各的算法和特点。我在此给大家介绍3种比较简单的方法,且是2种颜色之间的渐变。1.自绘法:2.使用windows的提供的一个API函数3.直接加载外部图片4.GDI+ 函数本文提供了以上3种渐变方法的测试工程,检验证均能满足要求。工程源码下载地址:http://download.youkuaiyun.com/source/2836原创 2010-11-16 12:59:00 · 9805 阅读 · 1 评论 -
得到屏幕大小的方法大全(你知道有几种?)
现在计算机就像买白菜一样,规格各异。有时候需要检测电脑的屏幕大小,以适应软件的需求。现总结如下,欢迎大家添加,一是增张我的见识,二是方便大家查询。原创 2010-11-25 11:50:00 · 3370 阅读 · 0 评论 -
给大家推荐一个比较好的VC论坛【VC驿站】
<br />无意中发现了一个号的VC站点,可以免费下载各种书籍、文档和源码等等,真的很不错的。<br /><br />【VC驿站】http://www.cctry.com/?fromuid=20617[/url]<br />原创 2011-01-18 13:59:00 · 3582 阅读 · 0 评论 -
打造自定义的 AfxMessageBox
打造自定义的 AfxMessageBox简单方法:DoMessageBox 的虚函数重载。原创 2010-11-11 11:11:00 · 929 阅读 · 0 评论 -
pragma指令简介
在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作.下面介绍了一下该指令的一些常用参数,希望对大家有所帮助!转载 2010-11-11 12:20:00 · 724 阅读 · 0 评论 -
ASCII代码对照
<br />Bin<br />Dec<br />Hex<br />缩写/字符<br />解释<br />00000000<br />0<br />00 <br />NUL(null)<br />空字符<br />00000001<br />1<br />01<br />SOH(start of headling)<br />标题开始<br />00000010<br />2<br />02<br />STX (start of text)<br />正文开始<br />00000011<br />3<br原创 2010-12-06 14:58:00 · 843 阅读 · 0 评论 -
一段简单的C/C++病毒源程序
主要是感染C/C++源文件只要编译该段源程序就会使当前目录里的所有.c和.cpp文件感染上病毒,当然如果是没有主函数的源文件就没有作用:思想很简单:插入一段复制自身的代码,而这段代码是将自身的病毒部分传播给同目录下的其它文件。转载 2010-12-07 10:16:00 · 18247 阅读 · 1 评论 -
冒泡排序
冒泡排序又称起泡排序,这是一种简单效率最低的排序,也是大家非常熟悉。下面看看,冒泡排序的是怎样工作:我认为这种排序分为两两种:向上冒泡和向下冒泡:转载 2010-12-07 10:19:00 · 928 阅读 · 0 评论 -
WM_NCCALCSIZE消息处理详解修正(原帖由niesongsong发表)
看了网上的一篇《关于WM_NCCALCSIZE消息处理详解(原帖由niesongsong发表)》的文章,正好自己正在写换肤程序,用了以后发现了一些问题,特贡献出来供大家参考学习!原创 2010-12-06 14:32:00 · 3896 阅读 · 0 评论 -
VC 模式对话框和非模式对话框的创建,销毁和区别
在WIN32中,模式对话框的创建一般是使用DialogBox来进行创建的。而非模式对话框则是利用CreateWindow来创建的。在MFC或是WTL中,模式对话框一般是使用DoModal,而非模式对话框的创建则是使用Create。模式对话框创建后,程序的其他窗口便不能进行操作,必须将该窗口关闭后,其他窗口才能进行操作。而非模式对话框则无需这样,它不强制要求用户立即反应,而是与其他窗口同时接受用户操作。Create的Dialog一般是modalless,如果你的程序本身就是只有一个Dialog,就无所谓了原创 2010-11-11 11:19:00 · 1227 阅读 · 0 评论 -
VC 模式对话框和非模式对话框的创建,销毁和区别
在WIN32中,模式对话框的创建一般是使用DialogBox来进行创建的。而非模式对话框则是利用CreateWindow来创建的。在MFC或是WTL中,模式对话框一般是使用DoModal,而非模式对话框的创建则是使用Create。模式对话框创建后,程序的其他窗口便不能进行操作,必须将该窗口关闭后,其他窗口才能进行操作。而非模式对话框则无需这样,它不强制要求用户立即反应,而是与其他窗口同时接受用户操作。Create的Dialog一般是modalless,如果你的程序本身就是只有一个Dialog,就无所谓了原创 2010-11-11 11:19:00 · 700 阅读 · 0 评论 -
VC得到屏幕的当前分辨率方法(5种)
VC得到屏幕的当前分辨率方法(5种)原创 2010-11-11 11:39:00 · 2020 阅读 · 1 评论 -
vc删除、拷贝、移动文件夹及其文件
删除:void COperationDlg::OnDel2(CString m_strFileDictory) //参数就是目录的路径<br />{<br />if(m_strFileDictory.GetLength()==0)<br />{<br />::AfxMessageBox (“目录名非法!”,MB_OK|MB_ICONEXCLAMATION);<br />return;<br />}<br />char FromFileName[80]=”/0″;<br />strcpy(FromFileNa原创 2010-11-11 12:03:00 · 1777 阅读 · 0 评论 -
开机自动运行
BOOL SetAutoRun(CString strPath)//开机自动运行<br />{<br />CString str;<br />HKEY hRegKey;<br />BOOL bResult;<br />str=_T(“Software//Microsoft//Windows//CurrentVersion//Run”);<br />if(RegOpenKey(HKEY_LOCAL_MACHINE, str, &hRegKey) != ERROR_SUCCESS)<br />bResult=F原创 2010-11-11 12:10:00 · 613 阅读 · 0 评论 -
ShellExecute用法种种
Q: 如何打开一个应用程序?<br />ShellExecute(this->m_hWnd,”open”,”calc.exe”,”",”", SW_SHOW );或 ShellExecute(this->m_hWnd,”open”,”notepad.exe”,”c://MyLog.log”,”",SW_SHOW );正如您所看到的,我并没有传递程序的完整路径。Q: 如何打开一个同系统程序相关连的文档?ShellExecute(this->m_hWnd,”open”,”c://abc.txt”,”",”",S原创 2010-11-11 12:13:00 · 677 阅读 · 0 评论 -
VC 6 MFC 美化界面方法和技巧
前段时间一直在想怎么样能让窗口变得更漂亮一点,更加吸引人呢?在网上也看到了不少高手们的做法,但对于我这种不喜欢太复杂的人来说,我不是很喜欢那样写代码,GetSystemMetrics函数来得到各个边框的长度或宽度。。。。没几下,我的头就晕了,在查了许多资料以及实验后,我终于找到了一种比较简单的美化窗口的方法,现在就拿出来献丑一下,觉得不好的就请跳过去吧~~大家请看这张图:原创 2010-11-11 12:27:00 · 4962 阅读 · 1 评论 -
VC++编程中的文件操作API和CFile类
在VC编程中,操作文件的方法主要有两种:利用API函数和MFC的CFile类。微软在其中封装了文件的一般操作,下面我就介绍一下如何利用这两种方法实现文件操作。原创 2010-11-11 11:25:00 · 790 阅读 · 0 评论 -
防止对话框程序按Enter和ESC退出的对策
在一般情况下编写的对话框程序,用户在运行的时候,如果不注意按下了ENTER或者ESC键,程序就会立刻退出,之所以会这样,是因为按下Enter键时,Windows就会自动去找输入焦点落在了哪一个按钮上,当获得焦点的按钮的四周将被点线矩形包围。如果所有按钮都没有获得输入焦点,Windows就会自动去寻找程序或资源所指定的默认按钮(默认按钮边框较粗)。如果对话框没有默认按钮,那么即使对话框中没有OK按钮,OnOK函数也会自动被调用,对于一个普通的对话框程序来说,OnOK函数的调用,以为着程序会立刻退出。为了使En原创 2010-11-11 11:49:00 · 670 阅读 · 0 评论 -
vc修改注册表开机自动启动程序
HKEY hKey;<br />char szFileName[256];<br />GetModuleFileName(NULL,szFileName,256);<br />RegOpenKey(HKEY_LOCAL_MACHINE,”SOFTWARE//Microsoft//windows//currentversion//run”,&hKey);<br />if(m_bAutoRun)<br />{<br />RegSetValueEx(hKey,”RunmeAtStartup”,0,REG_SZ,(原创 2010-11-11 11:54:00 · 1119 阅读 · 0 评论 -
VC得到指定文件的详细信息/属性
char* szFileName = “C://EnochShen.exe”;<br />DWORD dwSize = GetFileVersionInfoSize(szFileName,NULL);<br />LPVOID pBlock = malloc(dwSize);<br />GetFileVersionInfo(szFileName,0,dwSize,pBlock);char* pVerValue = NULL;<br />UINT nSize = 0;<br />VerQueryValue(pB原创 2010-11-11 11:56:00 · 3739 阅读 · 0 评论 -
VC获取快捷方式的文件路径
bool ReadShortcut(LPWSTR lpwLnkFile, LPSTR lpDescFile)<br />{<br />bool bReturn = true;<br />IShellLink *pShellLink;if(bReturn)<br />{<br />bReturn = (CoInitialize(NULL) == S_OK);<br />if(bReturn)<br />{<br />bReturn = CoCreateInstance (CLSID_ShellLink, NU原创 2010-11-11 12:17:00 · 3525 阅读 · 3 评论 -
窗口全屏化得方法大全(5种方法,你都知道吗?)
在很多的时候,希望自己的软件在整个窗口运行,以利用资源和显示清楚,方便用户。先将软件全屏显示的方法总结如下:原创 2010-11-25 11:05:00 · 6309 阅读 · 0 评论