现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2012-08-13 07:05 工业·编程 ⁄ 共 4523字 暂无评论
虽然这是一个很简单的操作,但却耗费了我不少的时间,主要是我对消息机制没有充分的理解吧,最后终于在codeproject中找到了类似的例子,自己也顿开毛塞,写这篇文章的目的是对前面做的工作的一个总结,也想将自己的一些经验和大家分享,避免重走弯路。 要实现标题中所说的功能,首先要了解Windows的消息机制,看了一篇专门讲述消息机制的文章,觉得很好,就将其中重要部分摘出来作为本文的铺垫(这篇文章来自雷神的《跟我学M...
阅读全文
弹出式菜单(PopMenu)大家都熟悉,在WIN98的桌面上单击鼠标右键弹出的菜单就是弹出式菜单。通常情况下,弹出式菜单在鼠标右键单击时弹出,当然,也可以根据需要随时弹出。 在VC++5的MFC中,管理菜单的类叫CMenu。下面我向大家介绍建立一个弹出式菜单的基本方法。 一、在资源编辑器中建立一个菜单资源 新建一个菜单资源,比如把菜单的ID号为IDC_POPMENU。此菜单有一项两层,即有一个可弹出的菜单项,而此菜单项的弹出内容即...
阅读全文
一、在资源编辑器中建立一个菜单资源 新建一个菜单资源,比如把菜单的ID号为IDC_POPMENU。此菜单有一项两层,即有一个可弹出的菜单项,而此菜单项的弹出内容即为将要建立的弹出式菜单的内容。至于每一个菜单项的消息映射,和一般的菜单相同。       例如:新建弹出菜单IDR_POPMENU       PopMenu-> Item1          ...
阅读全文
    GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。     GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的。     ClientToScreen把客户区坐标系下的REC...
阅读全文
一 属性设置 Edit Labels属性设置为True,可以就地编辑项文本,仅仅设置个属性是不够的。 View属性设置为Report或者是List 当View的属性为Report的时候只能编辑第一列 二 List Control的初始化 m_List_ctlDemo.InsertColumn(0, L"编号", LVCFMT_LEFT, 100); m_List_ctlDemo.InsertColumn(1, L"水果", LVCFMT_LEFT, 100); m_List_ctlDemo.InsertColumn(2, L"产地", LVCFMT_LEFT, 100); m_List_ctl...
阅读全文
2012-08-13 06:14 工业·编程 ⁄ 共 751字 暂无评论
一 前言 关联容器(associative container) map对象的元素是键值对,每个元素包含两部分键和键关联的值。 二 map对象的定义 使用关联容器map需要添加头文件 #include <map> std::map<int, CString> m_mapFruit; 该语句定义了一个名为m_mapFruit的map对象 三 map对象元素的插入 方法一 m_mapFruit.insert(std::map<int, CString>::value_type (0, L"苹果")); 方法二 m_mapFruit.insert(std::pair<...
阅读全文
2012-08-13 06:13 工业·编程 ⁄ 共 871字 暂无评论
用Sleep函数延时,如何时间太长,程序就像无响应一样,采用消息泵可以解决这个问题 5秒延时 COleDateTime odtStart = COleDateTime::GetCurrentTime(); COleDateTimeSpan odtsEnd = COleDateTime::GetCurrentTime()-odtStart; while(5>=odtsEnd.GetTotalSeconds()) { MSG msg; GetMessage(&msg,NULL,0,0); TranslateMessage(&msg); DispatchMessage(&msg); odtsEnd = COleDateTime::GetCurrentTime()-odtStart; } A...
阅读全文
一 开心的工作 这一点是最重要的,开心的工作好似天堂,不开心的工作那就是在地狱. 二 关闭电脑来思考 依个人经验,通常在早上刚刚睡醒,还赖在床上的时候思考最难的编程问题,当早上上班的时候,尽情的一展身手就可以了.或者带着编程问题睡觉.如果是上班的时候思考就将电脑关掉,一张纸和一张笔足以. 三 一蹴而就的完成一个模块 今天完成一点,明天再完成一点.这种编程方式我虽没有什么意见.我提倡寻找在精神和身体状体比较好的时候,...
阅读全文
2012-08-13 06:11 工业·编程 ⁄ 共 840字 暂无评论
一  获取指定目录下当前文件夹和文件的路径 以获取D://test目录下的文件夹和文件为例 Void 类名::BrowseCurrentDir(CString strDir) { CFileFind finder; CString strPath; BOOL bWorking = finder.FindFile(strDir); while (bWorking) { bWorking = finder.FindNextFile(); strPath=finder.GetFilePath(); //strPath就是所要获取Test目录下的文件夹和文件(包括路径) } stdFile.Close(); } 调用方式: BrowseCurrentDir(...
阅读全文
2012-08-13 06:09 工业·编程 ⁄ 共 935字 暂无评论
一 使用Shell函数 1 获取应用程序的安装路径 TCHAR buf[_MAX_PATH]; SHGetSpecialFolderPath(NULL,buf,CSIDL_PROGRAM_FILES,NULL); AfxMessageBox(buf); 2 获取应用程序数据路径的文件夹 TCHAR bufApplicateData[_MAX_PATH]; SHGetSpecialFolderPath(NULL,bufApplicateData,CSIDL_APPDATA,NULL); AfxMessageBox(bufApplicateData); 3 获取系统文件夹 TCHAR buf[_MAX_PATH]; SHGetSpecialFolderPath(NULL,buf,CSIDL_...
阅读全文