
Windows编程
文章平均质量分 50
开水
Linux后台开发/C++/Python/MySQL/Shell/高性能存储服务
展开
-
pragma指令简介 收藏
在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作. 下面介绍了一下该指令的一些常用参数,希望对大家有所帮助! 一. message 参数。 message 它能够在编译信息输出窗口中输出相应的信息,这对于源代转载 2011-09-02 22:48:14 · 707 阅读 · 0 评论 -
如何让窗口重画——Invalidate()、SendMessage(WM_PAINT)和UpdateWindow()
昨天晚上讨论的问题,还有另外一个很重要的部分——如何让窗口重画。这里注意这样几点(这里讨论的函数都是CWnd对象的成员函数):@1.Invalidate()函数只是标记窗口区域需要重画,但不意味着窗口会被直接重画。它只会在下一个WM_PAINT消息被接收到时,调用OnPaint()才被重画。@2.当窗口的“消息队列中没有其他消息”且“窗口需要被重画的区域不为空时原创 2012-03-14 14:17:18 · 11376 阅读 · 2 评论 -
如何重载最小化、最大化窗口消息响应
最小化、最大化窗口消息响应放在CWnd::OnSysCommand函数中,以下举一例,该例重载了窗口的最小化和最大化操作为隐藏和显示窗口,当然,此例功能实现是在程序有托盘图标的情况下实现的,要不然这样的功能会让用户觉得很不方便。关于托盘图标的内容,请看前面两篇。void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam){ if ((nID &原创 2012-03-23 15:10:13 · 3547 阅读 · 0 评论 -
如何将一个位图拷贝到另一个位图中
在程序里,有的时候需要对某个位图对象进行备份,即复制一个位图的多份数据,这样就算前面的位图被销毁我们也还能保留到复本,这里提供一种复制方法:// 将一个位图拷贝到另一个位图中,目标位图会被自动创建inline void CopyBitmap(CBitmap *pBmpDest, CBitmap *pBmpSrc, CRect Rect, CWnd *pWnd){ CDC *原创 2012-05-17 01:44:05 · 4058 阅读 · 1 评论 -
读取ANSI文件存入UNICODE编码的CString——“Ansi转UNICODE”及“UNICODE转Ansi”
最近在用MFC写一个小的工具,从一个读取一个带特殊标签的文件并将里面的标签替换成对应的数据,然后写入另一个生成文件里。由于输入输出文件是Ansi编码的,程序当中CString类存储格式却是UNICODE编码的,所以不得不解决编码转换的问题。Ansi转UNICODE这个部分需要调用MutibyteToWideChar函数,参考http://msdn.microsoft.com/en-us/l原创 2012-12-06 21:32:45 · 5068 阅读 · 0 评论 -
使用CreateProcess运行程序 + 使用命令行对html文件进行打印
平时写程序时经常会遇到要执行一个外部程序实例或者某个命令行的情况,这可以使用CreateProcess来实现。由于我们程序中通常只是将外部程序或者一个命令行运行起来,并不需要进行后续的控制,于是我将这个操作封装成了一个方便快速操作的函数CreateProcessQuick,一般情况下,应用程序名称不需要指定,我们只需指定后面的命令行参数。如果是运行notepad程序,则只需要指定lpComma原创 2012-12-18 23:37:37 · 2722 阅读 · 0 评论 -
Windows API 更改注册表键值 + 修改注册表去除IE打印页面的页眉页脚
@1.IE打印出来的页面经常是含有页眉页脚的,比如在页面左下方出现文件名,右上方出现页码等,这些经常是我们不想要的内容。如果手动设置的话,这个设置项在IE的菜单中:工具->页面设置,我们可以通过将页眉页脚全部设置为无,就可以清除掉。而实际上,页面设置对话框对页眉页脚的更改是通过更改HKEY_CURRENT_USER\Software\Microsoft\Internet Exp原创 2012-12-19 00:09:32 · 5023 阅读 · 0 评论 -
使用Windows API SetWorldTransForm()对图片进行旋转
1.问题描述很多朋友可能都会遇到图片旋转的相关编程,一般的图像处理的书里面都会用一个自己写的函数对一个大的数组进行操作来解决旋转问题,这些函数往往还需要很多输入参数,如图片的大小,位的深度之类的,为了处理多种格式的图片我们往往需要重复编写代码,这样非常麻烦。2.SetWorldTransForm函数其实Windows 本身就提供了一个API函数SetWorldTransForm来解决图原创 2012-12-20 23:38:27 · 8168 阅读 · 0 评论 -
Windows下使用FindFirstFile和FindNextFile列举目录中的文件
在Windows下编程经常需要列举出某个目录下的所有文件,以便对该目录下的文件进行批量处理,这种情形下,我们可以使用windows api提供的FindFirstFile和FindNextFile。MSDN对这两个函数的文档:http://msdn.microsoft.com/zh-cn/library/aa914391(en-us).aspxhttp://msdn.microsoft原创 2013-03-01 20:51:49 · 9150 阅读 · 0 评论 -
CArchive使用的一种错误方式
<!--@font-face {font-family:"Times New Roman"}@font-face {font-family:"宋体"}@font-face {font-family:"Symbol"}@font-face {font-family:"Arial"}@font-face {font-family:"黑体"}@font-fac翻译 2012-03-06 09:24:33 · 3328 阅读 · 2 评论 -
GDI入门实例(在VC++6.0中将JPG格式图片转换成BMP格式)
在 VC++6.0 中将 JPG 格式图片转换成 BMP 格式思路:利用 GDI+来完成难点: (1)配置 GDI 开发环境,添加配置代码(2)在当文档程序中添加转换代码注意:本文档由 ybdesire 参考网上资料撰写完成,代码已经做过测试,可直接复制张贴实现过程:一、 配置 GDI 开发环境(1) 下载 GDI+ SDK for Visual C++转载 2012-03-29 15:51:12 · 24304 阅读 · 6 评论 -
将桌面显示获取并保存到bmp中
代码来自网络,在此分享://GrabScreenToBitmap.h#ifndef GRABSCREENTOBITMAP_H#define GRABSCREENTOBITMAP_HHBITMAP GrabScrToBmp(LPRECT lpRect);BOOL CopyBmpToClipBoard(const HBITMAP hBmp);BOOL SaveBmpToFile转载 2012-03-27 15:33:23 · 1536 阅读 · 0 评论 -
Windows手动添加开机启动项
@方法1.添加程序完整路径到注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下或者添加到HKEY_CURRENT_USER\Software\Microsoft\Windows\Curr原创 2011-09-14 22:43:36 · 15086 阅读 · 0 评论 -
Windows常见服务
Windows常见服务Windows系统内部提供了大量的服务程序,使用它们可以为用户提供很多便利。但是有些服务并不是必需的,如果启动它的话,会白白的占用系统资源,我们把常见服务整理出来,读者可以据此查看自己启动的服务,同时能够关闭不需要的服务。Alerter:系统管理级警转载 2011-09-30 13:25:14 · 1732 阅读 · 0 评论 -
网络管理命令大全
网络管理命令大全Nbtstat:显示统计数据〖功能〗该诊断命令使用NBT(TCP/IP上的NetBIOS)显示协议统计数据和当前TCP/IP连接。该命令只有在安装了TCP/IP协议之后才可用。〖格式〗nbtstat [-a remotename] [-A IP转载 2011-09-30 13:26:01 · 1548 阅读 · 0 评论 -
文件扩展名大全
文件扩展名大全现在各种应用软件层出不穷,每个软件都会对应一定的数据文件。这些数据文件都有一些特定的扩展名,比如Word文件的扩展名是doc,扩展名为pdf的文件可以使用Acrobat Reader打开。但是现在存在的扩展名何止千万。读者如何能够随心所欲的知道某一个文件应该如何转载 2011-09-30 13:27:35 · 14781 阅读 · 2 评论 -
Windows系统文件详解
Windows系统文件详解Windows系统自带了几百个文件,这些文件都是干什么用的?那些文件可以删除,而不影响系统的运行?下表对系统文件进行了说明,读者可以随时查阅AACCESS.CHMWindows帮助文件转载 2011-09-30 13:23:30 · 2991 阅读 · 0 评论 -
#pragma warning 启用和禁用warning
开发人员可以使用 #pragma 指令将警告作为错误处理;还可以启用或禁用警告,如下面的示例所示:1.将一个warning作为一个错误#pragma warning (error: 6260)2.将一个warning禁用掉#pragma warning (disable: 6011) 3.将一个被禁用的warning启用#pragma warning (enable原创 2011-12-05 16:38:35 · 20312 阅读 · 0 评论 -
线程应当如何正常退出?
先来看这样一段代码:#include #include class T{public: ~T(){puts("destruction");};};DWORD WINAPI ThreadProc(LPVOID){ T t; ExitThread(0);}int main(){ CreateThread(NULL, 10原创 2011-12-04 22:56:51 · 3803 阅读 · 1 评论 -
托盘图标的添加和消息响应
1.如何添加一个托盘图标#define WM_ICON_NOTIFY WM_USER + 2...BOOL CMyDlg::OnInitDialog(){ ... NOTIFYICONDATA nid; nid.cbSize = sizeof nid; nid.hWnd = GetSafeHwnd(); nid.uID = IDR_MAINFRAME; n原创 2012-03-23 13:23:05 · 2541 阅读 · 0 评论 -
托盘图标的删除和托盘程序的优化
上一篇讨论了托盘图标的添加,程序退出后虽然系统会自动删除托盘图标,但这种工作最好在程序中完成,以保证程序所有的动作都在我们的代码控制之内3.删除托盘图标 NOTIFYICONDATA nid; nid.cbSize = sizeof nid; nid.hWnd = GetSafeHwnd(); nid.uID = IDR_MAINFRAME;原创 2012-03-23 14:07:34 · 5080 阅读 · 0 评论 -
使用函数指针列表搭建程序框架
问题描述:如果我们需要做一个这样的程序,当用户输入"hello"时,我调用hello函数,当用户输入"hey"时,我调用hey函数,像这样的对应关系,用户可能会有数千种输入,每种输入对应一个我需要调用的函数。一般的方法,肯定是这样,在程序处理流程中,这样写: if (0 == strcmp(strInput, "hello")) { hello();原创 2012-12-19 23:44:42 · 3163 阅读 · 0 评论