
MFC
文章平均质量分 72
Qsir
这个作者很懒,什么都没留下…
展开
-
Windows应用程序交互过程
Windows的应用程序一般包含窗口(Window),它主要为用户提供一种可视化的交互方式(窗口是由线程(Thread)创建的).Windows 系统通过消息机制来让系统和用户进行交互,用户通过触发事件来触发消息,消息(Message)被发送,保存,处理,一个线程会维护自己的一套消息队列(Message Queue)[仅当线程有对应的创建窗口和处理窗口消息时候],在发生输入事件之后,Windows 系统将事件转换为一个消息并将消息放入程序的消息队列中.程序通过执行一块称之为「消息循环」的程序代码从消息队列中转载 2022-08-17 15:05:27 · 1232 阅读 · 0 评论 -
VC/MFC如何设置对话框背景颜色
方法一:调用CWinApp类的成员函数SetDialogBkColor来实现。 (这个函数已经废弃)?1void SetDialogBkColor(COLORREF clrCtlBk = RGB(192, 192, 192), COLORREFclrCtlText = RGB(0, 0, 0));其中函数转载 2017-05-16 14:20:43 · 479 阅读 · 0 评论 -
MFC之ComboBox控件用法
本文以实例形式较为详细的讲述了MFC中ComboBox控件的用法。分享给大家供大家参考之用。具体方法如下:一、ComboBox简介:ComboBox控件是由一个文本输入控件和一个下拉菜单组成的。用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本。从工具栏中拖一个Combo Box控件.右击添加变量,变量名为cbBox.二、用法:1.为控件添加选项,指转载 2017-05-14 13:11:28 · 5110 阅读 · 0 评论 -
Combo box的使用
以下内容摘自:http://blog.sina.com.cn/s/blog_4b559bf30100gi6i.htmlCComboBox控件详解CComboBox控件又称作组合框控件,其有三种形态可供选择,1.简单组合框(Simple)2.下拉组合框(Drop-down)3.下拉列表式组合框(Drop-down list). CComboBox控件的常用设置属性说明:转载 2017-05-14 14:55:33 · 898 阅读 · 0 评论 -
CTabControl使用(系统配置程序部分功能)
cpp] view plain copyprint?标签控件相当于一个页面容器,可以容纳多个对话框; CTabCtrl类主要成员函数 Int GetCueSel()const ; 获取标签控件中当前选择标签索引 BOOL GetItem(int nItem,TCITEM* pTabCtrItem)const; //获取标签某个标签的信息 BOOL SetItem转载 2017-05-19 16:56:08 · 726 阅读 · 0 评论 -
LIST_VIEW_和LVITEM用法
ListCtrl在工作中,常常用到,也常常看到大家发帖问怎么用这个控件,故总结了一下自己的使用经验,以供参考使用。先注明一下,这里,我们用m_listctrl来表示一个CListCtrl的类对象,然后这里我们的ListCtrl都是report形式,至于其他的如什么大图标,小图标的暂时不讲,毕竟report是大众话的使用。其次,我们这里用条款一,条款二来描述第一点,第二点,这个是参照转载 2017-06-01 10:14:14 · 1605 阅读 · 0 评论 -
LVITEM结构-列表视图控件的一个数据结构
列表视图控件(List Control)列表视图控件是一种非常常用的控件,在需要以报表形式显示数据时,列表控件通常是最好的选择,许多专用的数据报表控件,也是在它的基础上派生而来。与树视图类似,列表控件可以由多个子项目组成,并且支持大图标、小图标、列表和报表4种方式显示信息,如图1所示。图1 列表视图的4种显示方式列表视图包含一个项目列表,而其中每个项目由图标、项目名称和多个子项组成,每转载 2017-06-01 10:47:00 · 691 阅读 · 0 评论 -
MFC 常用系统函数
1、获取当前路径: char path[MAX_PATH]; GetCurrentDirectoryA(MAX_PATH,path);12122、获取系统时间 需要添加头文件:#include SYSTEMTIME sysTime; GetLocalTime(&sysTime); printf("%4d%02d%02d%02d%02d",sys转载 2017-06-16 16:33:11 · 664 阅读 · 0 评论 -
如何用SendMessage模拟某一按钮的点击事件
今天在写程序的时候,用到了进程间的通信,上网查了些相关的资料,一般都是通过消息、共享内存、 socket,管道(Pipe),信箱(Mailslot),等等。因为我进程间通信的时候数据量不太大,所以就先测试了一下消息。一 般情况下,用消息来实现进程通信相对比较简单,自定义消息、手动添加消息映射、编写响应函数,发送端先FindWindow(),然后就向目标进程 SendMessage()。自定转载 2017-06-06 10:29:59 · 5804 阅读 · 0 评论 -
MFC中动态创建控件以及事件响应实现方法
本文实例讲述了MFC中动态创建控件以及事件响应实现方法,分享给大家供大家参考。具体实现方法如下:动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。一、创建动态控件: 为了对照,我们先来看一下静态控件的创建。 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件I转载 2017-06-07 12:17:14 · 6531 阅读 · 1 评论 -
VS2010 手动为控件添加事件处理函数
越来越感觉到VS2010 的类向导的坑了,在一些大项目中类向导直接不能使用。今天在为一个按钮控件添加事件处理函数时。类向导死活添加不上函数。无奈只能手动添加了。 下面记录下来,以备以后查询和给有需要的提供参考吧 手动为控件添加事件处理函数比较简单,只需要几步就可以完成。 一,在你的.cpp里面找到BEGIN_MESSAG_MAP()……………………END_MESSAG_M转载 2017-06-07 13:14:58 · 3960 阅读 · 0 评论 -
MFC动态创建控件并响应事件代码实现过程
MFC动态创建控件以及响应动态创建的控件的事件的实现方法如下。1.创建对象 用new进行动态创建一个对象。然后调用Create函数创建窗口,在函数的父窗口参数中传入this或者用AfxGetMainWnd()获取的父窗口对象指针。最后一个窗口ID先自定义一个ID名。2.定义ID宏 在cpp文件中,定一个创建对象时自定义的ID的宏,给予一个数字,不要和系统资源的ID值重复转载 2017-06-07 13:23:17 · 2319 阅读 · 0 评论 -
MFC总结之CListCtrl用法及技巧(一)
本文根据本人在项目中的应用,来谈谈CListCtrl的部分用法及技巧。当初学习时,查了很多资料,零零碎碎的作了些记录,现在主要是来做个总结,方便以后查阅。主要包括以下十三点内容:基本操作、获取选中行的行号、复选框操作、动态设置选中行的字体颜色、设置选中行的背景颜色、禁止拖动表头、让第一列居中显示、设置行高与字体、虚拟列表技术、点击表头时进行归类、向上与向下移动、动态调整大小问题、避免闪烁问题。转载 2017-06-07 14:42:44 · 771 阅读 · 0 评论 -
MFC总结之CListCtrl用法及技巧(二)
续第一篇:MFC总结之CListCtrl用法及技巧(一) http://blog.youkuaiyun.com/zwgdft/article/details/7560592 本篇重点介绍:禁止拖动表头、让第一列居中显示、设置行高与字体、虚拟列表技术、点击表头时进行归类、向上与向下移动、动态调整大小问题、避免闪烁问题。 6、禁止拖动表头 重载OnNotify转载 2017-06-07 14:44:43 · 1006 阅读 · 0 评论 -
MFC消息映射BEGIN_MESSAGE_MAP详解
MFC的消息映射对于对开发者处理消息可谓十分方便。MFC类继承众多,虚函数表占内存大导致微软直接不采用虚函数方式。发现《VC++深入详解》只大概说了消息映射的原理,没有详细介绍其实现,所以写篇小文章探究下。一、首先在使用消息映射之前,必须先声明DECLARE_MESSAGE_MAP()DECLARE_MESSAGE_MAP()是个宏定义,对应的源码为:[cpp]转载 2017-06-07 16:31:31 · 1363 阅读 · 0 评论 -
MFC BEGIN_MESSAGE_MAP()
MFC BEGIN_MESSAGE_MAP()1BEGIN_MESSAGE_MAP(CpassApp, CWinApp)2 ON_COMMAND(ID_HELP, CWinApp::OnHelp)3END_MESSAGE_MAP()这些都是宏定义,不是函数。 在BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()之间添加你的消息响应函数,转载 2017-06-07 16:40:43 · 569 阅读 · 0 评论 -
MFC CListCtrl 取消选中
最近写一个程序,用到CListCtrl 。其中取消选中,我开始使用的是SetItemState(i, NULL, NULL);一直觉得程序有问题,但是没有去深究。今天回过头来找原因,发现原来是这句错了。正确的写法应该是SetItemState(i, 0, -1); /////////////////////////////////////////////另外引转载 2017-06-08 09:16:31 · 2203 阅读 · 0 评论 -
MFC隐藏和显示一个控件的方法
通常,我们在用MFC做界面的时候,控制控件的出现和隐藏很重要,同时这也体现出界面的友好和灵活性。那么,怎样在MFC中实现一个控件的隐藏和显示呢?这里,我就说一个我知道的简单方法。第一、先获得控件对象。这里用一个EditBox控件为例。 CEdit *edit = (CEdit*)GetDlgItem(IDC_EDIT_XXXX); 其中,IDC_转载 2017-06-22 11:19:03 · 1496 阅读 · 0 评论 -
在MFC中使用Static text控件显示消息
1-新建一个MFC对话框xxDlg,从工具栏拖一个Static text控件到面板上,右键编辑属性,将ID改为IDC_ShowMsg2-打开类视图,在CxxDlg上右键——>添加成员函数void ShowMsg(LPCTSTR msg);3-在void CMymfcDlg::ShowMsg(LPCTSTR msg){TODO}的TODO中添加如下代码:[cpp] view转载 2017-06-22 11:21:59 · 3547 阅读 · 0 评论 -
mfc 怎样动态设置static text 的可见属性
要设置STATIC的其它属性,首先要将ID号IDC_STATIC更改为其他的ID,不能和IDC_STATIC一样就可以了,比如IDC_STATIC1.然后使用GetDlgItem(IDC_STATIC1)->ShowWindow(SW_HIDE)可以隐藏STATIC控件追问我想显示该用什么?SW_HIDE追答SW_SHOW转载 2017-06-22 11:25:02 · 2621 阅读 · 0 评论 -
VC++ 获取系统时间的方法汇总
1.使用CTime类(获取系统当前时间,精确到秒)?123456CString str;//获取系统时间CTime tm;tm=CTime::GetCurrentTime();//获取系统日期str=tm.Format("现在时间是%Y年%m月%d日 %X");MessageBox(str,NULL,MB_转载 2017-06-22 13:14:29 · 1251 阅读 · 0 评论 -
MFC获得主窗口和父窗口指针
VC++中有关句柄和指针及其转换1.MFC窗口的句柄和指针的转换 (1) 一般窗口对象都会有一个其对应的句柄变量,所以我们可以取此对象的m_hWnd属性来得到句柄。 (2)使用GetSafeHwnd函数取得程序所在窗口类的句柄 (3)使用FromHandle函数来通过句柄得到其想要的指针 其他的一些方法: GetActive转载 2017-07-12 11:11:04 · 1273 阅读 · 0 评论 -
自绘控件的4种方法
本篇文章主要介绍了"自绘控件的4种方法",主要涉及到自绘控件的4种方法方面的内容,对于自绘控件的4种方法感兴趣的同学可以参考一下。 在您决定开发 Windows 提供的常规免费自定义控件范围之外的控件之后,您必需确定自己的控件将有多少独到之处 — 在功能和外观两方面。例如,我们假定您正在创建一个类似于计速表的控件。由于公共控件库 (ComCtrl32.dll) 中转载 2017-07-12 13:42:06 · 892 阅读 · 0 评论 -
vc 中对对话框的几种操作
注:以下代码以一个名为CTest6Dlg的对话框类为例--------------------------------------------------------------------------------1. 在任务栏隐藏对话框 ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);---------转载 2017-07-03 13:28:44 · 1052 阅读 · 0 评论 -
菜单编写(VC_Win32)
菜单在 .rc 文件中的格式.rc 中的菜单格式虽然现在微软的编译器中都会自动生成好用的 rc 资源但是还是可以了解下它内部代码的意义.这里是不太建议直接在 .rc 文件中修改菜单因为修改了.rc 文件后还需在其他文件中修改对应地方,否则在编译中会报错.所以还是建议在编译器的资源管理器中修改对话框.格式:menuID MENU [,载入特性选项]{菜单项列表}转载 2017-07-13 09:56:18 · 638 阅读 · 0 评论 -
另一种判断文件存在的方法--_access和_waccess
_access, _waccessDetermine file-access permission.int _access( const char *path, int mode );int _waccess( const wchar_t *path, intmode );RoutineRequired HeaderOptional HeadersC转载 2017-07-05 10:14:12 · 692 阅读 · 0 评论 -
Sleep函数
简介:函数名: sleep功 能: 执行挂起一段时间用 法: unsigned sleep(unsigned milliseconds);在VC中使用带上头文件#include 在gcc编译器中,使用的头文件因gcc版本的不同而不同#include 注意:在VC中Sleep中的第一个英文字符为大写的"S"在标准C中是sleep, 不要大写.. 下面使用大写转载 2017-07-05 10:16:17 · 881 阅读 · 0 评论 -
CListCtrl的用法总结
1 CListCtrl的风格CListCtrl的风格有四种:LVS_ICON: 为每个item显示大图标LVS_SMALLICON: 为每个item显示小图标LVS_LIST: 显示一列带有小图标的itemLVS_REPORT: 显示item详细资料分别对应着资源管理器查看菜单下的大图标,小图标,列表,详细资料。可以在控件属性视图下设置:View属性.也可以用代转载 2017-06-15 13:48:44 · 527 阅读 · 0 评论 -
采用CreateThread()创建多线程程序
采用CreateThread()创建多线程程序在window环境下,Win32 提供了一系列的API函数来完成线程的创建、挂起、恢复、终结以及通信等工作:1、主要的函数列表:序号函数名功能1CreateThread()创建一个新线程2ExitThread()正转载 2017-07-20 16:33:22 · 620 阅读 · 0 评论 -
CreateThread()与beginthread()的区别详细解析
很多开发者不清楚这两者之间的关系,他们随意选一个函数来用,发现也没有什么大问题,于是就忙于解决更为紧迫的任务去了。等到有一天忽然发现一个程序运行时间很长的时候会有细微的内存泄露,开发者绝对不会想到是因为这两套函数用混的结果我们知道在Windows下创建一个线程的方法有两种,一种就是调用Windows API CreateThread()来创建线程;另外一种就是调用M转载 2017-07-20 16:56:43 · 283 阅读 · 0 评论 -
MFC列表控件ListControl和树控件TreeControl
列表控件 列表相关的类:CListCtrl-父类是CWnd,本质是一个控件; CListView-父类是CView,本质是一个视图。相当于在视图中嵌入了一个CListCtrl控件 列表控件的使用 1.1 显示方式:LVS_ICON/LVS_SMALLICON/LVS_LIST/LVS_REPORT 1.2 图标:CListCtrl::SetImageList;CListCt转载 2017-07-17 14:50:50 · 2132 阅读 · 0 评论 -
TCITEM结构体
Specifies or receives the attributes of a tab item. It is used with the TCM_INSERTITEM, TCM_GETITEM, and TCM_SETITEM messages. This structure supersedes the TC_ITEM structure.用于指定或者接受tab控件的条目的属性转载 2017-07-17 15:28:31 · 898 阅读 · 0 评论 -
GetClientRect()和GetWindowRect()
GetClientRect() 是得到客户区坐标系下客户区的RECTGetWindowRect()是得到屏幕坐标系下整个窗口的RECT GetSystemMetrics()是获得屏幕分辨率大小 根据不同参数: int width = GetSystemMetrics ( SM_CXSCREEN ); int height= GetSystemMetric转载 2017-07-17 16:48:10 · 1437 阅读 · 0 评论 -
InvalidateRect()、UpdateWindow()、RedrawWindow()区别
先看一段移动图片的程序: 绘图工作都在ReDraw()中 响应MouseMove 改变图片的位置,鼠标移动后需要重绘窗口 实验一: ReDraw()在MouseMove函数中调用[html] view plain copyprint?OnMouseMove(UINT nFlags, CPoint point) {转载 2017-07-17 17:00:26 · 598 阅读 · 0 评论 -
VC 使用SetCheck(TRUE)函数的注意事项
只有“可用”的窗口控件可以使用SetCheck(TRUE)函数,而SetCheck(FALSE)没有此限制。如果控件“不可用”,使用SetCheck(TRUE)会使程序线程挂起,处于无响应状态。为了防止此类问题出现,可按如下方法重载SetCheck函数:void SetCheck(int nCheck){ if(IsWindow(this->m_hWnd)) {转载 2017-07-21 09:13:41 · 4505 阅读 · 0 评论 -
IsDlgButtonChecked()
IsDlgButtonChecked编辑锁定本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!IsDlgButtonChecked该函数可以确定某个按钮控件是否有选中标志,或者三态按钮控制是否为灰色的、选中的、或两者都不是。外文名IsDlgButtonChecked 目录1 函数功能2 其他信息转载 2017-07-21 09:17:00 · 1831 阅读 · 0 评论 -
CreateEvent的用法
事件对象就像一个开关:它只有两种状态---开和关。当一个事件处于”开”状态,我们称其为”有信号”否则称为”无信号”。可以在一个线程的执行函数中创建一个事件对象,然后观察它的状态,如果是”无信号”就让该线程睡眠,这样该线程占用的CPU时间就比较少。产生事件对象的函数如下: HANDLE CreateEvent( LPSECURITY_ATTRIBUTES转载 2017-07-21 09:29:04 · 2603 阅读 · 0 评论 -
多线程编程之一——问题提出
一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:void CSingleThreadDlg::OnSleepSixSecond() {Sleep(6000); /转载 2017-07-21 10:17:44 · 302 阅读 · 0 评论 -
多线程编程之二——MFC中的多线程开发
五、MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程转载 2017-07-21 10:20:13 · 437 阅读 · 0 评论 -
标签页式样的对话框参考
http://blog.youkuaiyun.com/akof1314/article/details/5979405Visual Studio 2008 SP1自带的示例里面,有个工程为PropSheetDemo,此示例介绍了CMFCPropertySheet属性表的使用,截图如下:http://img.blog.youkuaiyun.com/20141112163539593?watermark/2/text/a转载 2017-07-18 10:36:15 · 521 阅读 · 0 评论