关闭

在有循环嵌套时, 要把大循环写在内, 小循环写在外, 原因在此

以前不理解为什么有循环嵌套时, 要把大循环写在内, 小循环写在外. 看了>后, 找到一个原因. 如下图...
阅读(4014) 评论(0)

GDI+旋转图片的几种方法

1. 使用旋转矩阵 POINT imgRotateCenterPos={10,10}; //旋转中心在图片坐标(相对于图片本身) CRect rcShow(imgShowRect); //图片要绘制的位置区域. //把 相对于图片的旋转中心坐标  转换为  绘制区域的坐标 PointF centerPos(imgRotateCenterPos.x+rcShow....
阅读(7746) 评论(0)

GDI+ 绘图时,相同分辨率, DPI不同时图片显示的问题.

最后在VC中使用GDI+作图片处理时, 突然发现有几张图片显示不正常,未按实际像素大小显示. 代码很简单: void CTransBmpDlg::OnBnClickedImgTest() { CString strFilter=TEXT("图片文件(*.gif,*.jpg,*.bmp)|*.gif;*.jpg;*.bmp||"); CFileDialog dlg(TRUE,NULL,N...
阅读(2450) 评论(0)

动态修改CMFCMenuBar及CMFCToolBar的文字及Prompt,ToolTip文字.

动态修改CMFCMenuBar及CMFCToolBar的文字及Prompt,ToolTip文字. 1. 修改CMFCMenuBar菜单项的文字,分两种.   A. 修改顶层有POP_UP属性的菜单文字,即类型单文档中的" 文件" ,"编辑","视图"等这类一直显示着的.     因为CMFCMenuBar基类是CMFCToolBar,所以有有如下代码:   (特别注意: 在单文档中,此函...
阅读(8370) 评论(12)

进程方式执行CMD命令及使用CMD命令一次创建多级录

void exceCmd(LPCTSTR cmdLines) { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(STARTUPINFO); ZeroMemory( &pi, sizeof(pi) ); //这两句一定要,否则会显示出黑框框. si.wSho...
阅读(1187) 评论(0)

CMFCMenuBar和CMFCToolBar相同ID,在显示不同标签文字

由于要使用多国语言动态切换, 而CMFCMenuBar 和 CMFCToolBar又比较难用. 1. CMFCMenuBar菜单栏中的菜单项文字修改可没有普通的菜单那么简单,它其实是由CMFCToolBar派生而来.所以能直接调用此类的对象修改的文字,就只有第一级菜单了.如果放到单文档中,即是像单文档主菜单的  "文件","编辑"这一层一直显示在窗口上的菜单项. 而这一级菜单是没有ID的,其属性...
阅读(2646) 评论(5)

MFC在单文档程序中添加最近打开文件.

默认的MFC单文档程序可以支持最近的文件列表,但是它却不一定是我们需要的,因此我在这里总结出手动控制的方法,以备不时之需。 默认的最近文件列表是通过MRU file list来实现的,它通过将最近打开的文件写入注册表,然后读取到菜单上实现的。这一切默认都是通过打开和保存这些菜单操作来实现。当你选择一个列表时,就会调用相应的事件响应函数。 下面是默认的操作内容: BOOL CW...
阅读(4096) 评论(3)

STL 结构体排序及查找 使用sort及find_if

//网上大多例子都只是基本数据类型,或者简单的只有一个成员的进行排序的例子或者查找的例子. struct MY_NODE  {     int x;     int y;      //大小比较,这里是按 y从小到大,在y相等是按x从小到大排序.     bool operator <(const MY_NODE &e) const     {         if(y==e.y)...
阅读(2653) 评论(0)

How to: Display Command Information in the Status Bar在状态栏中显示命令信息

When you run the Application Wizard to create the skeleton of your application, you can easily support a toolbar and a status bar. A single option in the Application Wizard supports both. When a statu...
阅读(765) 评论(0)

内存泄漏检测和隔离----MSDN

启用内存泄漏检测 检测内存泄漏的主要工具是调试器和 C 运行时库 (CRT) 调试堆函数。若要启用调试堆函数,请在程序中包括以下语句:     #define _CRTDBG_MAP_ALLOC #include #include 注意: #include 语句必须采用上文所示顺序。如果更改了顺序,...
阅读(894) 评论(0)

在VS中添加lib的第三种方法

先说说普通的两种方法: 方法1:  通过设置工程配置来添加lib库. 转自网上: A、添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录。 B、添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上lib文件存放目录。 C  然后添加工程引用的lib文件名:工程-...
阅读(29931) 评论(5)

DPI尺寸影响程序界面显示.

如果发现自己的编写的 有固定窗口大小的程序界面中出现了界面显示不全,有部份被遮挡, 又或者界面上的控件或者显示区域中原来正常的显示的东西,现在却显示不完全. 那就是 DPI 发威了. 我们一般使用的都是 96DPI. 而有些用户的为了适合自己的,修改了操作系统中的DPI设置,或放大或缩小. 这时,我们的程序就显示不正常了. 解决办法当然是动态调整了.具体实现我就没有去研究了.  DPI...
阅读(1348) 评论(0)

字节对齐--指定结构体以多少字节对齐

通过使用宏,指定某些结构体或者类的字节对齐方式. #pragma  pack(push)  //让原字节对齐方式入编译器栈 #pragma  pack(1)    //指定新的对齐方式, 1字节对齐.  (数字即几字节对齐) //这里面放置你需要指定1字节对齐的结果体或者类 struct {}; struct{}; #pragma pack(pop)//出栈原来对齐方式...
阅读(2449) 评论(0)

串口名导致的串口打开失败

今天遇到串口通信不稳定, 拿到别人机子上测试, 却发现他的串口打不开了.      在网上查原因. 网上说了些原因,比如串口被占用,这个被排除了,我没开其它使用串口的程序. 也有说驱动没安装好,也重新安装了下.还是不行.    只有继续看MSDN.发现有说明:    When lpFileName points to a COM port to open, you must include...
阅读(8445) 评论(0)

比较好用的获得文件大小的方法

int getFileSize(LPCTSTR szFileName) { if(szFileName==NULL) { return 0; } int fileSize=0; //获得文件大小,方法1 /*HANDLE hFile=CreateFile(szFileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_...
阅读(658) 评论(0)

关于ExitInstance不执行,导致很多内存泄漏的问题

昨天在编程过程中,突然某一次退出程序时,看了一相DebugView,发现竟然有这么多内存泄漏,大概100把条的样子,吓得我大汗长流.         要看信息.  多出在 strcore.cpp, 还有一些 afxtoolbar.cpp  afxmenubar.cpp等等,全是MFC里的东西. 也有一些指向        IMPLEMENT_DYNCREATE 宏,还有就是InitInstan...
阅读(3145) 评论(0)

当前不会命中断点,源代码与原始版本不同,解决办法

今天是端午,估计是加班的原因,VS2008给我开了个玩笑.提示:当前不会命中断点。源代码与原始版本不同.为什么会出现呢?原因当前大家都清楚,就是因为编译器生成的符号文件与源代码不同.那我的代码明明已经改变并存档,并且编译了,为什么还是不同呢?1.我想也许是没有被真正的重新生成吧,   这好办,清理解决方案,清理工程,为了更彻底,再关闭解决方案,把debug删掉,ncb文件删...
阅读(31056) 评论(21)
    个人资料
    • 访问:112659次
    • 积分:1045
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:4篇
    • 译文:0篇
    • 评论:46条
    文章分类
    最新评论