VC/MFC
文章平均质量分 61
雁落夕尘
爱运动、爱唱歌的80后,现从事于机器视觉行业,并将长期从事于这个行业,主要学习研究使用Win32 API,MFC,OpenCV,Qt,OpenGL,Halcon,图像处理算法相关技术。
展开
-
char *、CString和string使用总结
1、string 转 CString 方法一 CString.format("%s", string.c_str()); 方法二 char* pchar= string.c_str(); CString scstr(pchar);2、char * 转 CString CString.format("%s"原创 2013-11-21 20:53:18 · 771 阅读 · 0 评论 -
MFC PreTranslateMessage(MSG* pMsg)中调用DoModal()模态窗口问题
在PreTranslateMessage(MSG* pMsg)中调用DoModal()模态窗口如下: 1 BOOL CMainDlg::PreTranslateMessage(MSG* pMsg) 2 { 3 // TODO: Add your specialized code here and/or call the base class 4 if转载 2014-05-26 19:08:15 · 1661 阅读 · 0 评论 -
用VC创建文件夹
#include #include void main(){char tmp[28]={0},c[]="foldername";sprintf(tmp,"mkdir %s",c);system(tmp);}转载 2014-05-27 16:01:09 · 952 阅读 · 0 评论 -
MFC 获取当前工作路径和可执行文件路径
1. 获取Debug或Release所在的路径CString GetModuleDir() { HMODULE module = GetModuleHandle(0); char pFileName[MAX_PATH]; GetModuleFileName(module, pFileName, MAX_PATH); CString csFullPath(pFi转载 2014-06-11 16:26:48 · 770 阅读 · 0 评论 -
关于ScreenToClient
顾名思义:ScreenToClient也就是Screen(屏幕坐标) 到 Client(客户区坐标)的转换。也就是说这个函数可以把你在屏幕上鼠标的位置转换为你打开的程序的客户区的坐标(位置)。转载 2014-06-12 11:23:21 · 1790 阅读 · 0 评论 -
ini配置文件常用的四个函数
虽然ini配置文件正在逐渐地被注册表所代替,在MSDN中也说明操作ini文件的API函数都是为了兼容16位的,但ini文件并没有退出舞台,还是广泛地应用于软件开发中。下面为我日前写小程序时因为要操作到ini文件而整理的四个常用API函数。现在网上关于这方面的资料也很多,也有较多的免费CIniFile类,我算是来凑个热闹转载 2014-05-28 10:16:09 · 809 阅读 · 0 评论 -
VC MFC滑块(CSliderCtrl)控件
CSliderCtrl类里相关函数解释void CSliderCtrl::SetRange( int nMin, int nMax, BOOL bRedraw = FALSE );//设置滑块范围,nMin最小值,nMax最大值int CSliderCtrl::GetPos( ) const;//获取滑块位置void CSliderCtrl::SetPos( int nPo转载 2014-06-16 13:18:40 · 2738 阅读 · 0 评论 -
CString字符串截取
文件xxxx.dll去掉后面的.dll方法1、char str[] = "xxxx.dll"char*p;p=strrchr(str, '.');*p = 0;方法2、CString str="xxxx.dll";int n = str.ReverseFind('.')str = str.Left(str.GetLength()-n-1);例程2:(转载 2014-06-20 13:35:17 · 705 阅读 · 0 评论 -
vc状态栏的使用
状态栏位于主框架窗口的底部,主要用来显示一些提示信息,可细分为几个窗格。状态栏一般用于简要解释被选中的菜单命令、工具栏按钮命令,以及当前的操作对象的状态。另外,它还会显示 Scroll Lock、Num Lock、Caps Lock和Insert等键盘上特殊按键的状态。状态栏也是一个窗口,它有几个窗格,每个窗格显示不同的信息。类向导会为应用程序自动创建一个状态栏,该状态栏包括几个窗格,分别用来转载 2014-06-20 11:17:49 · 1661 阅读 · 0 评论 -
关于控件OnCtlColor
OnCtlColor在MFC类库提供了CWnd::OnCtlColor函数,在工作框架的子窗口被重画时将调用该成员函数.因此可以重载WM_CTLCOLOR消息的响应函数.此函数的原型:afx_msg HBRUSH OnCtlColor(CDC *pDC,CWnd *pWnd,UINT nCtlColor); 参数nCtlColor用于指定控件的类型,可以是:.CTLCOLOR_转载 2014-06-19 14:44:03 · 624 阅读 · 0 评论 -
CvArr、Mat、CvMat、IplImage、BYTE转换
一、Mat类型:矩阵类型,Matrix。 在openCV中,Mat是一个多维的密集数据数组。可以用来处理向量和矩阵、图像、直方图等等常见的多维数据。 Mat有3个重要的方法: 1、Mat mat = imread(const String* filename); 读取图像 2、imshow(const st转载 2014-06-20 16:18:09 · 546 阅读 · 0 评论 -
MFC从数据库里导出excel文档
[cpp] view plaincopyvoid CPctoolDlg::OnUserExcell() { if(!m_ExlApp.CreateDispatch("Excel.Application",NULL)) { AfxMessageBox("创建Excel服务失败!");转载 2014-07-14 10:57:33 · 900 阅读 · 0 评论 -
PostMessage与PostThreadMessage的区别
消息队列是属于线程的,Post消息就是把消息放到目标线程的消息队列中。这两者的区别在于,PostMessage通过指定目标窗口句柄来确定目标线程,通常情况下由窗口过程来处理消息;PostThreadMessage直接指定线程ID来确定目标线程,没有目标窗口,只能在消息循环中直接根据消息类型做相应的处理。在程序设计的选择方面,如果是UI线程,则应使用PostMessage;如果是工作线程,则应使用P转载 2014-09-28 15:38:50 · 774 阅读 · 0 评论 -
VC导出类得创建和使用
一、DLL的不同类型 使用MFC可以生成两种类型的DLL:MFC扩展DLL和常规DLL。常规DLL有可以分为动态连接和静态连接。Visual C++还可以生成WIN32 DLL,但不是这里讨论的主要对象。1、MFC扩展DLL 每个DLL都有某种类型的接口:变量、指针、函数、客户程序访问的类。它们的作用是让客户程序使用DLL,MFC扩展DLL可以有C++的接口。也就是它可以导出原创 2014-12-21 22:48:46 · 729 阅读 · 0 评论 -
MFC RadioButton用法详解
基础介绍:radio button通常都是成组使用的,在一组里面是互斥的。分组的原则是:1、首先将RadioButton控件定好Tab顺序,具体方法:工具栏“格式”—>“Tab键顺序”选项选中,然后按照预定的顺序依次点击对话框上面的RadioButton按钮,Tab键顺序设定完成。2、按照上面的Tab键顺序进行分组,然后设定每组第一个RadioButto转载 2014-12-10 10:39:24 · 1359 阅读 · 0 评论 -
MFC中添加的菜单项为什么始终是灰色的
好多人都碰到过这些事情,新加的按钮却是灰色的不能点击,好多时候原创 2014-06-09 15:32:40 · 3622 阅读 · 0 评论 -
MFC中CTreeView的使用
(一)树控制的主要功能树控制和视(Tree Control&View)主要用来显示具有一定层次结构的数据项,如资源管理器中的磁盘目录等,以供用户在其中进行各种选择。树控制中的每个数据项包括数据项名称的文本字符串和用于表示该数据项的图像,每个数据项下面均可包含各种子项,整个结构就象目录树一样。对于包含各种子项的数据项,可通过鼠标双击来展开或合拢,这可以通过控制树的不同风格来实转载 2014-06-10 13:28:48 · 1738 阅读 · 0 评论 -
MFC动态创建按钮及添加消息响应
动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。一、创建动态控件:为了对照,我们先来看一下静态控件的创建。放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示。静态控件不需要调原创 2013-11-21 16:26:30 · 898 阅读 · 0 评论 -
CDC与HDC
首先说一下什么是DC(设备描述表):Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备描述表(Device Context, DC)在DC表示的逻辑意义的“画布”上进行图形的绘制。DC是一种包含设备信息的数据结构,它包含了物理设备所需的各种状态信息 。Win32程序在绘制图形之前需要获取DC的句柄HDC,并在不继续使用时释放掉。CDC是MFC的DC的一个类HDC是DC的句柄原创 2013-12-02 18:33:36 · 1133 阅读 · 0 评论 -
创建静态库以及引用库文件
文件->新建->项目->win32控制台应用程序。输入静态库的名称mylib,点“下一步”。在应用程序类型里面选”静态库”,附加项里面把“预编译头”去掉。然后点“完成”。新建lib.h和lib.cpp两个文件,lib.h和lib.cpp的源代码如下://文件:lib.h #ifndef LIB_H #define LIB_H int add(int x,in原创 2013-12-13 18:36:45 · 725 阅读 · 0 评论 -
修改MFC主窗口界面标题和图标的方法
在VS2010下新建一个MFC的多文档应用程序,程序默认的标题是“文档名-工程名”。图标默认的是写着MFC的三个方块。但在很多软件中都不是使用的默认设置,开发者们都将标题和图标改过,以符合项目要求,而且直观好看。一.修改标题标题分为前后两部分,前面一部分默认是文档名,后面一部分默认是工程名,比如我新建一个叫做UITEST的工程,那标题就是“UITEST1-UITEST”。后面都用这原创 2013-12-20 11:50:32 · 3368 阅读 · 0 评论 -
OpenGL开发环境配置
基于OpenGL标准开发的应用程序运行时需有动态链接库OpenGL32.DLL、Glu32.DLL,这两个文件在安装Windows NT时已自动装载到C:\WINDOWS\SYSTEM32目录下(这里假定用户将Windows NT安装在C盘上)。OpenGL的图形库函数封装在动态链接库OpenGL32.DLL中,开发基于OpenGL的应用程序,必须先了解OpenGL的库函数。OpenGL函转载 2014-04-16 14:57:01 · 661 阅读 · 0 评论 -
LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
http://bbs.csdn.net/topics/390121452终极解决方案:VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次。在建立VS2010 Win32 Project项转载 2014-04-08 15:12:24 · 509 阅读 · 0 评论 -
VS2010编程环境常用设置
一 执行文件原创 2014-04-08 15:27:44 · 736 阅读 · 0 评论 -
静态链接库lib和动态链接库dll区别
1.什么是静态连接库,什么是动态链接库 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以转载 2014-05-15 10:29:51 · 760 阅读 · 0 评论 -
VC调试无法进入断点解决方法。
以前也碰到过同样的问题,但没有问个为什么,也没有探个究竟。昨天调试一个DLL,添加输出信息吧,太麻烦而且不容易定位,但设置断点后按“F5”,断点不可用,气泡提示“当前不会命中断点,还没有为该文档加载任何符号。”再右键->“位置”->“允许源代码与原始版本不同”,还是不行。77777我还不信了,整它! 后来才发现,“Alt+F7”->“配置属性”->“调试”->“命令”中输入的 exe转载 2014-05-20 10:41:03 · 759 阅读 · 0 评论 -
线程同步互斥的控制方法
四种进程或线程同步互斥的控制方法 1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 3、信号量:为控制一个具有有限数量用户资源而设计。 4、事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。 临界区(Critical Section)转载 2014-05-14 10:29:14 · 621 阅读 · 0 评论 -
ScrollBar的使用
在对话框中添加一个垂直滚动条控件,关联一个变量CScrollBar m_vScroll,在头文件定义CRect rt_mvScroll保存滚动条控件的位置,定义一个int nVscroll,保存滑块的位置在OnInitDialog()里面添加[c-sharp:firstline[1]] view plaincopyCRect rect转载 2014-05-21 16:54:54 · 586 阅读 · 0 评论 -
OpenCV 2.4.8 or OpenCV 2.4.9组件结构全解
最近发现了一个好的博客,转载 2014-06-23 13:55:43 · 1422 阅读 · 0 评论 -
OffsetRect的使用
OffsetRect函数将指定的矩形移动到指定的位置BOOL OffsetRect(LPRECT lprc, // 矩形int dx, // 横向偏移int dy // 纵向偏移);参数:Lprc:[输入输出]指向一个RECT结构,其中包含了被移动矩形的逻辑坐标Dx:[输入]指定的矩形左右移动的量。当向左移动的时候,这个参数必须是一个转载 2014-05-22 16:46:34 · 1924 阅读 · 0 评论 -
关于PreTranslateMessage
PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当你需要在MFC之前处理某些消息时,常常要在这里添加代码. MFC消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,我们可以改变MFC的消息控制流程,甚至可以作一个全新的控制流出来。只有穿过消息队列转载 2014-05-22 17:10:56 · 587 阅读 · 0 评论 -
WM_CTLCOLOR和OnCtlColor消息的用法
WM_CTLCOLOR消息用来完成对EDIT、STATIC、BUTTON等控件设置背景和字体颜色,其用法如下:1.首先在自己需要设置界面的对话框上点击右键-->建立类向导-->加入WM_CTLCOLOR消息-->自动生成OnCtlColor()函数,此函数可以对本对话框的控件的界面外观做修饰,用法如下:将类向导产生的函数做如下修改: HBRUSH CDialogColor::OnC转载 2015-06-10 10:40:39 · 805 阅读 · 0 评论