
mfc
文章平均质量分 59
开水
Linux后台开发/C++/Python/MySQL/Shell/高性能存储服务
展开
-
托盘图标的删除和托盘程序的优化
上一篇讨论了托盘图标的添加,程序退出后虽然系统会自动删除托盘图标,但这种工作最好在程序中完成,以保证程序所有的动作都在我们的代码控制之内3.删除托盘图标 NOTIFYICONDATA nid; nid.cbSize = sizeof nid; nid.hWnd = GetSafeHwnd(); nid.uID = IDR_MAINFRAME;原创 2012-03-23 14:07:34 · 5083 阅读 · 0 评论 -
使用Windows API SetWorldTransForm()对图片进行旋转
1.问题描述很多朋友可能都会遇到图片旋转的相关编程,一般的图像处理的书里面都会用一个自己写的函数对一个大的数组进行操作来解决旋转问题,这些函数往往还需要很多输入参数,如图片的大小,位的深度之类的,为了处理多种格式的图片我们往往需要重复编写代码,这样非常麻烦。2.SetWorldTransForm函数其实Windows 本身就提供了一个API函数SetWorldTransForm来解决图原创 2012-12-20 23:38:27 · 8169 阅读 · 0 评论 -
使用CreateProcess运行程序 + 使用命令行对html文件进行打印
平时写程序时经常会遇到要执行一个外部程序实例或者某个命令行的情况,这可以使用CreateProcess来实现。由于我们程序中通常只是将外部程序或者一个命令行运行起来,并不需要进行后续的控制,于是我将这个操作封装成了一个方便快速操作的函数CreateProcessQuick,一般情况下,应用程序名称不需要指定,我们只需指定后面的命令行参数。如果是运行notepad程序,则只需要指定lpComma原创 2012-12-18 23:37:37 · 2723 阅读 · 0 评论 -
Windows API 更改注册表键值 + 修改注册表去除IE打印页面的页眉页脚
@1.IE打印出来的页面经常是含有页眉页脚的,比如在页面左下方出现文件名,右上方出现页码等,这些经常是我们不想要的内容。如果手动设置的话,这个设置项在IE的菜单中:工具->页面设置,我们可以通过将页眉页脚全部设置为无,就可以清除掉。而实际上,页面设置对话框对页眉页脚的更改是通过更改HKEY_CURRENT_USER\Software\Microsoft\Internet Exp原创 2012-12-19 00:09:32 · 5023 阅读 · 0 评论 -
读取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 · 5069 阅读 · 0 评论 -
如何将一个位图拷贝到另一个位图中
在程序里,有的时候需要对某个位图对象进行备份,即复制一个位图的多份数据,这样就算前面的位图被销毁我们也还能保留到复本,这里提供一种复制方法:// 将一个位图拷贝到另一个位图中,目标位图会被自动创建inline void CopyBitmap(CBitmap *pBmpDest, CBitmap *pBmpSrc, CRect Rect, CWnd *pWnd){ CDC *原创 2012-05-17 01:44:05 · 4058 阅读 · 1 评论 -
如何给对话框添加“加速键”响应
MFC的对话框(不是从CFrameWnd类继承下来的),不会自动响应加速键,这需要自己添加代码去实现这个功能@1.对话框中添加成员变量:HACCEL m_hAccel;@2.在OnInitDialog()函数中添加代码: // 装载加速键 m_hAccel = ::LoadAccelerators(AfxGetResourceHandle(), MAKEINTRESOUR原创 2012-05-06 10:47:30 · 1440 阅读 · 0 评论 -
MFC实现的 picture control 类,对话框上显示图片
Download control source - 2.61 KBDownload demo - 2.19 MB以上是源码及演示程序下载地址(文章原地址 http://www.codeproject.com/Articles/24969/An-MFC-picture-control-to-dynamically-show-picture)Introduction 介绍这翻译 2012-04-27 12:03:34 · 10146 阅读 · 1 评论 -
PNG透明背景按钮的实现(MFC)
问题描述:当前要在对话框上添加一个以两个PNG图片作为背景的按钮,PNG图的背景是透明的,按钮也要做出相同的透明效果。并且鼠标不在按钮上时,按钮显示"bg1.png";鼠标移动到按钮上时,按钮显示"bg2.png"开发环境为VS2010。解决办法:使用GDI+库装载PNG图片,并使用MFC Button Control和CMFCButton类结合,调用CMFCButton::Set原创 2012-04-27 12:37:04 · 22234 阅读 · 9 评论 -
托盘图标的添加和消息响应
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 · 2542 阅读 · 0 评论 -
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 · 24320 阅读 · 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 评论 -
如何重载最小化、最大化窗口消息响应
最小化、最大化窗口消息响应放在CWnd::OnSysCommand函数中,以下举一例,该例重载了窗口的最小化和最大化操作为隐藏和显示窗口,当然,此例功能实现是在程序有托盘图标的情况下实现的,要不然这样的功能会让用户觉得很不方便。关于托盘图标的内容,请看前面两篇。void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam){ if ((nID &原创 2012-03-23 15:10:13 · 3548 阅读 · 0 评论 -
MFC 可以设置背景色、字体、字体颜色、透明背景的 Static 静态文本控件
MFC库里没有符合这个条件的控件,于是我自己写了一个,初步测试有效。注:可以设置透明背景,但还不能做到透明度设置(如50%透明度) 如果设置了背景色,就不保留透明背景 默认背景色是透明的 // 设置背景色(若clr为CLR_NONE,则背景透明) void SetBackgroundColor(COLORREF clr){m_clrBackgrou原创 2012-05-08 11:55:08 · 15393 阅读 · 12 评论