MFC
文章平均质量分 65
flydream0
这个作者很懒,什么都没留下…
展开
-
用VC写线程
HANDLE hWorkThread;hWorkThread=CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)StartWorkThread,//线程入口函数 &info, //传递参数给线程入口函数 0, NULL);//其中StartWorkThread为线程主函数,其必须为全局函数或静态成员函数.UIN原创 2011-11-10 09:15:20 · 1645 阅读 · 0 评论 -
MFC定时器的使用
参考:http://www.cnblogs.com/chengxuyuancc/archive/2012/06/08/2542269.htmlMFC提供了3个定时器函数来完成有关定时器功能:UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)( HWND, UINT, UINT, DWOR原创 2012-09-05 16:55:52 · 15304 阅读 · 0 评论 -
如何使用MScomm控件
1:如果添加MSComm控件?见:http://blog.csdn.net/flydream0/article/details/8002012 2:为对话框添加MSComm控件成员变量右击MSComm控件,然后选择Add Variable... 3:为对话框添加OnComm事件右击MSComm控件,然后选择Add Event Handle.. 4:打开/关闭串口原创 2012-09-28 19:12:35 · 11764 阅读 · 2 评论 -
如何在VC中使用DbgViewer打印信息
DbgViewer是一个很好的打印工具,在MFC下,直接使用OutputDebugString函数就可以打印信息了,例://退出系统OutputDebugString("正在退出系统...");//...下载地址:http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx如果你使用的是win7系统,那么得更改下注册原创 2012-09-12 15:26:14 · 2340 阅读 · 0 评论 -
CListCtrl的用法总结
1 CListCtrl的风格CListCtrl的风格有四种:LVS_ICON: 为每个item显示大图标LVS_SMALLICON: 为每个item显示小图标LVS_LIST: 显示一列带有小图标的itemLVS_REPORT: 显示item详细资料分别对应着资源管理器查看菜单下的大图标,小图标,列表,详细资料。可以在控件属性视图下设置:View属性.也可以用代原创 2012-09-18 15:14:34 · 10950 阅读 · 3 评论 -
如何在安装部署时实现注册MSComm控件
用MSComm很是方便,但是也得付出代价,那就是在没有注册MSComm控件的PC机上安装时,得注册此控件,网上的资料大部分都是手动注册MSComm控件的方法,但是,不可能每个客户都手动来操作一遍,因此,这种方法在发布时是不可行的,更好的方法是让用户安装程序时让安装程序自动注册MSComm.注:关于如何手动注册MSComm控件可参考:http://blog.csdn.net/flydream0/原创 2012-09-24 16:02:28 · 9076 阅读 · 3 评论 -
VS2010如何安装MSComm控件
VS2010在默认情况下是不包含MSComm控件的,MSComm是在VC6.0中的控件,据说MSComm控件有些缺陷,看来微软是打算放弃此控件了。不过对于已经熟悉使用此控件的人来说还是不太方便,我是那种喜欢偷懒的人,所以在网上找了方法将MSComm控件加入到VS2010中,并做下笔记,这就是我写本文章的目的。第一步:下载MSComm控件下载地址:http://download.csdn.n原创 2012-09-20 22:36:01 · 39526 阅读 · 18 评论 -
如何在VC下检测当前存在的串口及串口热拔插
当我们在用VS进行串口编程时,在打开串口前,经常想知道当前PC上存在多少个串口,哪些串口可用?哪些串口已经打开了,最好是在一个Combo Box中列表系统当前所有可用的串口以供选择,然而如何获取系统当前可用的串口有哪些呢? 这里介绍的方法也是最简单也是最笨的一种方法,即一个一个去试,试完了就知道了。至于还有没有其它更好的方法,暂不在本文所讨论的范围之内。一个在对话框的OnInitDia原创 2012-10-18 18:38:12 · 11175 阅读 · 6 评论 -
如何在VC下使用USB-CAN II接口卡操作CAN通信
广州致远电子的USB-CAN II接口卡是比较普遍的CAN采集,测试工具,在进行有关CAN的开发中经常用使用到此设备。然而如何在VC中调用此设备提供的API呢?其实很简单,有关它的API介绍及使用手册在http://www.embedcontrol.com/products/PCI/USBCAN.asp 这个网址可以找到,这里只介绍它的使用示例。 1 连接USB-CAN II设备示例代原创 2012-10-19 09:26:25 · 25358 阅读 · 27 评论 -
在VC下手工为对话框添加自定义消息
第一步:在头文件中类定义代码内手工添加消息处理函数首先需要知道,自定义消息处理函数的声明必须为返回值类型为LRESULT,形参数有两个:WPARAM wParam,LPARAM lParam,且必须加上afx_msg前缀。如下:afx_msg LRESULT OnCANMsgIncoming(WPARAM wParam,LPARAM lParam);//自定义消息第二步:在cp原创 2012-10-29 10:24:06 · 2865 阅读 · 1 评论 -
使用CAsyncSocket类进行网络编程
1 服务器端由先得专门为服务器端做一个Socket通信类CNewSocket类,此类继承CAsyncSocket类,专门负责服务器端socket通信事情:NewSocket.h:#pragma once#include "afxsock.h"//此类专门用来与客户端进行socket通信class CNewSocket : public CAsyncSocket{public原创 2013-01-26 20:37:26 · 13417 阅读 · 2 评论 -
CString与char *互转总结
1 前言今天在网上看论坛,发现大家对CString与Char *互转各说一词,其实我发现提问者所说的情况与回答问题的人完全不是同一情况,这里做一总结.首先大家得清楚一件事,一般在网上提出问题的人大部分使用的都是VC,那么你就应该知道,在VC下编程,工程属性中有一属性Charecter Set属性,其值可以设置为Use Multi-Byte Charecter Set 和 Use原创 2013-01-25 22:52:52 · 97962 阅读 · 15 评论 -
自定义定时器的一种方法
这几天在用MFC做有关定时器的东西,发现MFC自带的定时器方式SetTimer方式不适合用于频繁重新计时的方式,过多地Stop和SetTimer程序会死掉,因此,自已用线程的方式做了一个定时器类:#pragma once#include "afxwin.h"#define ONESHOT 0#define PERIOD 1typedef int (*tp_ontimer)(void *p原创 2012-09-05 17:27:39 · 3427 阅读 · 0 评论 -
滑动条+编辑框用来做用户参数设置界面
在做MFC界面编辑中,有时候要做一个设置或修改界面供用户对某一参数进行控制.这个时候就要用动滑动条了.第一步:在对话框界面上添加滑动条和编辑框,并设置属性. 假设这里的滑动条为垂直的,则在属性面板了找到Orientatin属性修改为Vertical. 为滑动条创建控制变量 m_sd_oil. 假设编辑框的ID为IDC原创 2012-08-27 10:08:56 · 3111 阅读 · 0 评论 -
子对话框怎么获取主对话框的信息
若主对话框是CParentDlg,子对话框是CChildDlg:第一步:在子对话框的头文件的类定义中添加:CDialog *m_pMianDlg;第二步:在子话框类的定义文件中添加设置函数,并实现:void set_parent_dlg(CDialog * parnet_dlg);实现:void CWarnPage::set_parent_dlg(CDialog *原创 2012-08-24 11:22:34 · 3619 阅读 · 0 评论 -
MFC 对话框加载菜单
step1: 在Resource View里添加一个菜单,假设ID为:IDR_MU_MAINstep2: 在对话框的初始化内 BOOL CLPC1114UpdaterDlg::OnInitDialog()函数处添加如下代码:CMenu mainmenu;mainmenu.LoadMenu(IDR_MU_MAIN);SetMenu(&mainmenu);重新编译就可以了.原创 2011-11-16 10:48:00 · 1882 阅读 · 0 评论 -
对话框界面风格的问题
在用VS2010用MFC开发对话框程序时,如果我们在工程属性内将Character Set属性设置为:Use Multi-Byte Character Set.那么默认情况下对话框的风格是win2K的,为什么会这样呢? 打开stdafx.h头文件,找到以下内容:#ifdef _UNICODE#if defined _M_IX86#pragma comment(linker,"/原创 2011-11-18 09:00:29 · 3139 阅读 · 0 评论 -
CListBox控件的Multicolumn属性
在MFC编程中,如果用到了ListBox这个控件,如果你想要用它来显示多列,那么你就要注意了,ListBox有一个属性叫:Multicolumn,它的解说如下: Specifies a multicolumn list box that is scrolled horizontally.意思是说,当列表框一列显示不了所有的item时,就会换列显示,并不是我们想像的那个做表单的多列,如果你想原创 2011-11-18 14:30:16 · 10605 阅读 · 0 评论 -
CEdit 用做滚屏显示
在写代码中,我们经常喜欢用CEdit控件来动态滚屏显示内容,如在串口程序中,用CEdit控件来显示串口的信息,显示完一行数据,自动跳到下一行,如果超出一屏,那么自动滚屏.为了确保上述功能,得按以下几个步骤来做:1>首先确保CEdit的属性是否支持垂直滚动.即确保CEdit控件的vertical scroll属性是否为true.2>在代码中插入以下代码:CEdit *pEt = (C原创 2011-11-08 10:33:11 · 3350 阅读 · 2 评论 -
在对话框程序中操作菜单项
在做基于对话框的程序时,有时我们要在这个对话框中加载菜单,于是可能要在对话框程序代码中修改菜单荐的状态或操作菜单项的其它操作,可是当我们用代码操作菜单项时: GetMenu()->GetSubMenu(0)->EnableMenuItem(ID_ISP_DISPLAYMEMORY,MF_BYCOMMAND | MF_ENABLED);编译时没什么问题,运行时,程序直接崩溃.该怎么原创 2011-11-16 18:06:08 · 1479 阅读 · 0 评论 -
Tab Control中添加Dialog的一种方法
第一步: 建立对话框工程,在对话框加入Tab Control控件,并为这个控制创建控件变量,如:CTabCtrl m_tab_mode;第二步: 在资源视图中加入对话框资源做为Tab Control的子页面,修改style属性为Child,border属性为None.完成这些后为这个子页面添加相对应的类.这样就可以加入去Tab Control中去了.如这里的类名分别为:CW原创 2012-08-22 18:46:30 · 8248 阅读 · 1 评论 -
打开对话框的用法
打开对话框是一种使用很频繁的对话框,它一般由一个打开按键和一个编辑框组合来使用,打开按键用来触发打开事件,而编辑框用来显示用户选定文件的路径,其示例代码如下:void CFlashPage::OnBnClickedBtFileOpen(){ // TODO: 在此添加控件通知处理程序代码 //过滤器字符串 CString szFilters="update file (*.bin)|*原创 2012-08-29 12:32:04 · 1808 阅读 · 0 评论 -
如何修改MFC的图标
修改左上角的图标和任务栏里图标 在对话框构造函数中1 CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/)2 : CDialog(CTestDlg::IDD, pParent)3 {4 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);5 } 改过后:转载 2012-08-20 12:24:16 · 17642 阅读 · 1 评论 -
用MFC写线程
这是VC的另一种方式:1 在类内声明成员函数,这个函数做为线程的入口函数:static UINT ReceiveThread(void *param);2 线程入口函数的实现:UINT CTestDlg::ReceiveThread(void *param){ CTestDlg *dlg=(CTestDlg*)param; CListBox *box=(CList原创 2012-08-20 18:23:44 · 3615 阅读 · 2 评论 -
如何向窗口发送消息
CWnd类的SendMessage和PostMessage成员函数.第一步:在头文件中自定义消息,如:#define WM_USER_MSG (WM_USER +100)第二步:通过类向导点击Message选项卡,添加自定义消息WM_USER_MSG.第三步:实现自定义消息的响应函数.第四步:发送消息.发送消息有两种方式.1 同步发送(SendMessage原创 2012-08-31 12:03:42 · 6203 阅读 · 0 评论 -
如何修改MFC界面风格
在将一个VC6.0的工程用VS2010打开的时候,发现运行的时候界面风格是Windows2000的风格,于是做以下修改就变成系统默认的风格了:在stdafx.h头文件中,添加或修改如下指令://#ifdef _UNICODE#if defined _M_IX86#pragma comment(linker,"/manifestdependency:\"type='win32' name原创 2012-08-20 14:16:47 · 10609 阅读 · 6 评论 -
用ListBox作滚屏显示的一种方法
void CTestDlg::ShowInfo(CString str, int code){ m_ListInfo.InsertString(m_ListInfo.GetCount(),str); m_ListInfo.SetCurSel(m_ListInfo.GetCount()-1);}如上所示:m_ListInfo为继承自CListBox的列表框:class C原创 2012-08-20 18:31:08 · 2673 阅读 · 1 评论 -
USBCAN-2E-U与USBCAN-II的使用区别
USBCAN-II已经停产,目前它的升级版本为USBCAN-2E-U,之前我有过一篇文章讨论USBCAN-II的使用方法,见:点http://blog.csdn.net/flydream0/article/details/8088248.本文的目的是讨论两者在使用上的区别,以便将原有的USBCAN-II的源码移植到USBCAN-2E-U上来.仔细看了下USBCAN-2E-U的开发手册,发现相对于U原创 2013-04-25 17:16:29 · 18171 阅读 · 4 评论