随笔分类 - c/c++
摘要:简单项目中需要打印信息跟踪,则可以开启控制台,用printf打印信息跟踪,是个不错的方式。 在InitInstance中加入: #ifdef CONSOLE if (AllocConsole()) { //注意检查返回值 freopen("CONOUT$", "w", stdout); }#endi
阅读全文
摘要:试了可用的解决方案是: 1,在弹出菜单前先设置窗口最前 2,弹出菜单后,发送一个WM_NULL消失 示例如下: CMenu *pPopup = m_AppMenu.GetSubMenu(0); //获取第一个弹出菜单,所以第一个菜单必须有子菜单 CPoint point1; //GetCursorP
阅读全文
摘要:1,非模态不是堵塞 最好用NEW对象或者一个全局变量 XxxDlg* dlg = NULL; dlg = new XxxDlg(this); dlg->Create(IDD_DIALOG_XXX); dlg->ShowWindow(SW_SHOW); 2,模拟对话框是阻塞的 显示模式对话框: CDi
阅读全文
摘要:简单的转换如下: // 元->分int iFenAmt = (int)(atof(szAmt) * 100); 但注意测试发现是有问题的: 1) 8/9/10.20会被转成10.19 2)2.3 =>2.29 33.3=>33.29
阅读全文
摘要:开发中,经常要记录各种日记,经常要先开发日记模块,现提供一个开箱即用的clogger,在一些简单的项目中可以快速进行集成开发。clogger提供win32动态库和静态库两个版本。具体调用见demo,使用中如有问题欢迎指出。 1 namespace libtomato { 2 3 class NS_A
阅读全文
摘要:typedef struct _OVERLAPPED{ DWORD Internal; DWORD InternalHigh; DWORD Offset; DWORD OffsetHigh; HANDLE hEvent; } OVERLAPPED; 这个结构体是重叠IO模型的核心,称之为重叠结构 I
阅读全文
摘要:网络是个坑人的地方,需要实践! // 加载bmp文件到CBitmapbool LoadBmpPic(CString strBmpPath, CBitmap&bmp) { HBITMAP bitmap; try { bmp.Detach(); //从文件路径加载图片 bitmap = (HBITMAP
阅读全文
摘要:正常项目中,ocx控件的clsid是不会变化,保证调用方都能正确引用,比如web中是写死clsid引用等等。但有时候不清楚出于什么原因,三方控件经常升级,升级时候可能只修复或增加某些接口。此时提供的控件名称不变,但clsid变了。那么我们的项目如果更新引用升级的ocx呢 1)先确保三方控件能正常注册
阅读全文
摘要:项目中,有时候三方公司提供ocx控件调用,下面介绍如何一步步调用。 1) 在任意目录存放三方ocx并进行注册和反注册测试,先保证三方ocx能注册成功 reg.bat: regsvr32 /u C:\xxx_dir\xxx.OCX regsvr32 C:\xxx_dir\xxx.OCX unreg.b
阅读全文
摘要:线程的执行是随机时间片的,如果要控制线程间同步执行,需要做同步。 event事件:是一个内核对象,事件对象包含引用计数、事件类型、事件的通知状态等信息。主要分为2种,人工重置对象和自动重置对象。人工重置,则需要开发人员自行调用ResetEvent设置成无信号状态;自动重置,则当等待对象有信号后系统自
阅读全文
摘要:接上篇介绍的ocx手动添加事件,下面介绍添加自定义消息的方式 添加自定义消息: .h:1,增加自定义消息ID#define WM_ON_YBINIT WM_USER+23 2,在消息映射节点内增加自定义消息的处理函数声明// Message maps //{{AFX_MSG(CocxCtrl) //
阅读全文
摘要:接上篇结束的ocx手动添加方法,下面介绍事件的添加。 增加事件回调如下:(多参数回调可参考https://blog.csdn.net/qncj666/article/details/8585435) odl文件事件增加声明OnYbInit methods: // NOTE - ClassWizard
阅读全文
摘要:正常项目是可以通过ide(vc6.0、vs2013等)进行添加方法和事件的,但项目组成员有时候把工程搞坏了,即通过ide是无法自动添加了。 所以只能先手动应急了。下面记录的是手动添加的过程。 Ctrl.h和Ctrl.cpp增加对应的声明和实现如下: (说明:如果dispidYbInit和DISP_F
阅读全文
摘要:#include <io.h>if(_access("../file.cer",0) 1) // 0存在,-1不存在,当是文件路径时候 { sprintf(goszErrMsg,"文件不存在"); return -1; }
阅读全文
摘要:const char*相比于string的优点: 适配性更好,C语言和C++都适用 效率更高,当传递的是"xxxx"这种串时,string方式会自动创建出个临时对象,临时对象的创建和销毁也是比较耗费性能的 还是效率,string占用的空间比const char*更大 那使用string究竟有没有优点
阅读全文
摘要:参考资料 C++ 三/五法则 - 阿玛尼迪迪 - 博客园 (cnblogs.com)
阅读全文
摘要:mfc版本的非标准元金额转换成标准元格式金额 CString formatYuan(const char* yuanAmount) { CString fmtAmt = yuanAmount; fmtAmt.TrimRight(); fmtAmt.TrimLeft(); int strLen = f
阅读全文
摘要:1、以下几个函数,均可以获取当前的焦点所在程序的句柄,只是获取的焦点信息不一样。 GetForegroundWindow GetActiveWindow GetFocus 2、GetForegroundWindow和GetActiveWindow的区别 GetForegroundWindow指最前的
阅读全文
摘要:今天有幸翻到一篇博客里面提供了一种可行的办法,简单说就是让子窗口的Create操作在父窗口的OnInitDialog中执行,然后在需要打开子对话框的时候,用dlg->ShowWindow(SW_SHOWNOACTIVATE);即可,虽然这导致子对话框必须提前建好,不过确实是不闪了。 原理估计是这样:
阅读全文

浙公网安备 33010602011771号