随笔分类 -  工程实践

1 2 3 下一页

【闪烁】WIN7 BCG 多文档(MDI)程序
摘要:解决方案://在App的InitInstance里加上if (IsTaskBarInteractionEnabled()){EnableTaskBarInteraction(FALSE);} BCG手册里的解释:If interaction with Windows 7 taskbar is enabled and the application uses MDI Tabs or MDI Tabbed Groups,each MDI children will be displayed on Windows 7 taskbar thumbnails. 阅读全文

posted @ 2012-02-28 17:20 LateStop 阅读(708) 评论(0) 推荐(0)

VS2005 【安装包】制作
摘要:VS2005安装包制作 1.1 总流程 1.2 新建项目(目录结构) 1.3 添加要打包的工程 1.4 将工程添加到【解决方案】 1.5 设定项目依赖关系 1.6 添加资源这里需要注意的是,ProductCode会在卸载程序的制作里用到。 1.7 添加项目输出 1.8 创建卸载程序(加载图标、移动到开始菜单) 1.9 创建启动程序(加载图标、移动到开始菜单) 1.10 导入注册表(如果有) 阅读全文

posted @ 2012-02-28 16:52 LateStop 阅读(2050) 评论(0) 推荐(0)

MFC 菜单添加快捷键 一级菜单Alt键无响应(BCG)
摘要:一级菜单添加快捷键:二级菜单添加快捷键:遇见一级菜单添加快捷键失效的情况:待定。 阅读全文

posted @ 2012-01-17 15:38 LateStop 阅读(1018) 评论(1) 推荐(0)

选中某一item,高亮显示(CListCtrl CTreeCtrl CListBox)
摘要:要求:1. 对控件中的某一项,选中它,并高亮(默认的形式是背景为蓝色)CListBox控件的设置:Listbox功能简单,设置也简单,只需一句:m_lstbxIncludedStations.SetCurSel(0);CListCtrl控件的设置:目的:在对话启动起来后,希望CListctrl里有一项是被选中的,且该项高亮(蓝色)显示方法:在OnIntiDialog里添加代码m_lvAllDev.SetItemState(0,LVIS_SELECTED,LVIS_SELECTED);将ListCtrl控件的Tab键顺序设置为1第二点很重要,否则效果不出现。CTreeCtrl控件的设置:树控件的 阅读全文

posted @ 2012-01-17 15:22 LateStop 阅读(5168) 评论(0) 推荐(0)

重绘Ctreectrl (树控件 不同的item 不同的颜色)
摘要:1. 要求:CTreectrl控件里不同级别的item有不同的颜色,以区分不同类型。2. 实现效果:3. 代码:void CTreeCtrl4MS::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult){ LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR); // TODO: 在此添加控件通知处理程序代码 NMTVCUSTOMDRAW *ptvTreeCtrl=(NMTVCUSTOMDRAW *)pNMHDR; LPNMTVCUSTOMD... 阅读全文

posted @ 2012-01-10 11:09 LateStop 阅读(4028) 评论(0) 推荐(1)

外键(Access中设置表的外键)
摘要:http://office.microsoft.com/assistance/hfws.aspx?AssetID=HP0518753020521. 设置外键2. 实现级联更新、级联删除 阅读全文

posted @ 2011-12-28 13:59 LateStop 阅读(6518) 评论(0) 推荐(0)

得到程序.exe所在路径
摘要:CString path; GetModuleFileName(NULL,path.GetBufferSetLength(MAX_PATH+1),MAX_PATH);// 寻找当前安装路径 path.ReleaseBuffer(); //去掉xxx.exe,得到目录 int pos = path.ReverseFind('\\'); // 反向查找第一个backslash path = path.Left(pos); // 得到该backslash以左的内容 pos = path.ReverseFind('\\'); path = path.L... 阅读全文

posted @ 2011-12-20 17:27 LateStop 阅读(405) 评论(0) 推荐(0)

常用SQL语句
摘要:1.增:insert into GroupManage (DevID,GrpID)values (1000,1001)2.删:DELETE *FROM Dev_Grp_RelationshipWHERE DevID=10000 And GrpID=10000;3.查:嵌套查询:SELECT *FROM devicesWHERE (devices.[dev_ID]) In (select DevID from Dev_Grp_Relationship where GrpID = 5)去重:distinctselect distinct devID, dev_NameFrom deviceswhe 阅读全文

posted @ 2011-12-19 17:53 LateStop 阅读(269) 评论(0) 推荐(0)

MFC连接Access
摘要:1. 导入dll,使用命名空间。 a.在stdafx.h里加入如下语句:#import "C:\Program Files\Common Files\System\ADO\msado15.dll" rename("EOF","adoEOF"), rename("BOF","adoBOF")b.在需要使用的文件里使用命名空间using namespace ADODB;c.在使用之前加上CoInitialize(NULL);使其初始化。否则提示空指针错误。2. 连接。a.新建一个_Connectio 阅读全文

posted @ 2011-12-01 11:03 LateStop 阅读(4715) 评论(0) 推荐(3)

return 0 与 return -1
摘要:背景:将用户登录对话框放在了int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)函数里。代码如下: if(IDOK != m_LoginDlg.DoModal()) { return -1; } 原来返回FALSE,在直接关闭登录对话框时还会继续创建窗口;如果返回-1的话则直接退出。与期望的一样。参见MSDN的解释:OnCreate must return 0 to continue the creation of the CWnd object. If the application returns –1, the window... 阅读全文

posted @ 2011-11-23 14:18 LateStop 阅读(474) 评论(0) 推荐(0)

MFC中自定义消息的一般流程
摘要:1. 定义自己的消息值。一般形式为#define WM_MYMESSAGE (WM_USER + 100) 2. 定义该消息的响应函数。形式应该为:LRESULT CYourClass::OnMyMessage(WPARAM wParam, LPARAM lParam){}其中完成自己想要完成的功能。3. 将两者绑定起来。BEGIN_MESSAGE 与 END_MESSAGE 宏之间,加入:BEGIN_MESSAGE_MAP(CMainFrame, CBCGPMDIFrameWnd).....ON_MESSAGE(WM_MYMESSAGE, OnMyMessage)....END_MESSA. 阅读全文

posted @ 2011-11-10 18:05 LateStop 阅读(394) 评论(0) 推荐(0)

StdioFile类读取中文乱码的问题
摘要:CStdioFile f1; if( !f1.Open( filePath, CFile::modeReadWrite) ) { #ifdef _DEBUG afxDump << "Unable to open file" << "\n"; #endif exit( 1 ); } //设定中文环境 char* old_locale=_strdup( setlocale(LC_CTYPE,NULL) ); setlocale( LC_CTYPE,"chs"); //-----------------读取内容--- 阅读全文

posted @ 2011-11-10 17:46 LateStop 阅读(940) 评论(0) 推荐(0)

CTime COleTime与CString的转换
摘要:一.时间作为特定的数据类型,转换为CString,代码如下:CString strTime;extern COleTime time1;strTime = time1.Format(_T("%Y-%m-%d %H:%M:%S")) 关于字符串"%Y-%m-%d %H:%M:%S"的说明: 1. 在MSDN对strftime()函数的说明里,详细解释了各字母代表的含义:a. %Y Year with century, as decimal number b. %m Month as decimal number (01 – 12) c. %d Day of 阅读全文

posted @ 2011-11-10 17:29 LateStop 阅读(876) 评论(0) 推荐(0)

COleTime 与 DATE 数据类型的理解
摘要:COleTime的存在是因为:It provides finer granularity(更细的颗粒度) and a greater range thanthe CTime class. 之所能做到上述是因为:the DATE date type, and also the COleDateTime class, representdates and times as a classic number line. 这里提到了DATE类型:The DATE type is implemented using an 8-byte floating-point number.Days are r.. 阅读全文

posted @ 2011-11-10 17:03 LateStop 阅读(330) 评论(0) 推荐(0)

使用BCG控件后在Run-time时修改菜单
摘要:定义函数:class CMainFrame : public CBCGPMDIFrameWnd{ //--------------------------------------------------------- //重写该虚函数 OnShowPopMenu(),以实现在运行时(Run-time)修改菜单的功能 //但继承关系、实现原理、以及何时调用,仍然不清楚。只是参照sample application //实现了这一功能 // by Xue //2011-12-03 //--------------------------------------------------------- 阅读全文

posted @ 2011-11-02 18:14 LateStop 阅读(757) 评论(0) 推荐(0)

替换设已为其添加类的对话框
摘要:在MFC里设计一个对话框的通常步骤:添加一个对话框,并进行控件摆放和设计。为其添加对应的类。假设为CMyDlg。在类里添加代码,完成特定功能。完成以上操作后,如果对界面设计不满意,调整已经解决不了问题,需要进行替换时。只要保证:记住其ID,如IDD_DIALOG_HISTORYVIDEO。然后将不满意的原对话框删掉。新建一个对话框,将其ID设定成原先的值。如果类CMyDlg里对控件的ID进行了引用,如GetDlgItem(IDC_BUTTON_QueryHistory)的操作,需要将新界面里对应的控件的ID设置成与原来一样。添加对话框,为其添加类,会在MFC里造成所有代码上的变化,下次分析。 阅读全文

posted @ 2011-11-02 17:51 LateStop 阅读(188) 评论(0) 推荐(0)

MFC字符串与时间的相互转换
摘要:字符串--->时间: COleDateTime temp1; COleDateTime temp2; temp1.ParseDateTime(_T("9999-12-12")); temp2.ParseDateTime(_T("15:05:05")); 时间转换成字符串:COleDateTime beginTime(dlg.m_oleStartTime1.GetYear(), dlg.m_oleStartTime1.GetMonth(), dlg.m_oleStartTime1.GetDay(), dlg.m_oleStartTime2.GetHo 阅读全文

posted @ 2011-10-21 11:32 LateStop 阅读(3839) 评论(0) 推荐(0)

修改默认构造函数,改变ProPage的ImageList资源
摘要:背景:BCGControlsPropSheet类是从CBCGPPropertySheet类继承来的,做了一些修改,以满足项目的需求。效果图:但是将左侧的图标(ImageList)写死了,现在需要修改。经查看,该类的构造函数定义为:lass BCGControlsPropSheet : public CBCGPPropertySheet{ DECLARE_DYNAMIC(BCGControlsPropSheet)// Constructionpublic: BCGControlsPropSheet(const CString strTitle=_T(""),CWnd* pPa 阅读全文

posted @ 2011-10-20 18:14 LateStop 阅读(1418) 评论(0) 推荐(0)

error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在xxxx.lib中定义
摘要:error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMTD.lib(dbgdel.obj) 中定义答案:修改project-> setting -> General-> Mircosoft Fountationclasses为Use mfc in a shard dll 分析:原来的是“使用windows库”,这样可能多次包含了库。 技巧:查看搜索库的顺序:选择VC菜单Project->Settings->Link页,然后在Project Op 阅读全文

posted @ 2011-10-08 14:14 LateStop 阅读(11535) 评论(0) 推荐(0)

监控文件目录
摘要:例子程序来自于:http://www.codeproject.com/KB/files/directorychangewatcher.aspx?fid=1922&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=2779206实现:1.将自源文件加入到工程2.继承生成自己的CMyDirectoryChangeHandler类,改写其中的虚函数3.为响应监控命令的类添加CMyDirectoryChangeHandler类与CDirectoryChangeWatcher对象。4.对照Demo里的 阅读全文

posted @ 2011-09-28 17:57 LateStop 阅读(328) 评论(0) 推荐(0)

1 2 3 下一页

导航