MFC
什么石头
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MFC 所有控件随窗口大小自适应
MFC中当我们添加了很多控件后,布局就是一个很难控制的方面,当程序运行在不能的PC上就会有不一样的布局,如何解决呢方法很多,我第一次是自己算出控件的位置,然后按照比例缩放,但是方法很麻烦,还不易控制,后来一个同事用如下代码很容易实现,非常不错分享给大家:1. *.h 添加消息[cpp] view plaincopyprint?publ转载 2014-12-17 17:50:31 · 1018 阅读 · 0 评论 -
GetParent与GetOwner的区别
GetParent返回值可能是父窗口也可能是Owner窗口,如果调用GetParent的是子窗口则返回父窗口,如果是WS_POPUP属性的窗口,则返回Owner窗口,否则返回NULL。GetOwner返回的是Owner窗口,如果没有Owner窗口,则会检查是否有父窗口,有则返回,无则返回NULL。只想得到父窗口,可以调用GetAncestor(hwnd, GA_PARENT).转载 2014-12-08 09:45:26 · 2201 阅读 · 0 评论 -
关于#include "stdafx.h
1)Standard Application Frame Extend没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了。为避免这种浪费,AppW转载 2014-12-09 09:56:37 · 1320 阅读 · 0 评论 -
listcontrol 使用MENU菜单 复制列表控件某行某列到剪贴板
void CClientDlg::OnNMRClickListBox(NMHDR *pNMHDR, LRESULT *pResult){// TODO: 在此添加控件通知处理程序代码;*pResult = 0; Invalidate();CString copytext ;//获得对话框内列表控件句柄;HWND ListhWnd = ::GetDlgItem原创 2014-12-25 13:56:11 · 1690 阅读 · 0 评论 -
MFC编程中error信息的出现,以及解决方法
一,使用FindWindow()时出现过的错误提示:1>e:\mydemotest\mydemotest\mydemotestdlg.cpp(189): error C2664: “FindWindowW”: 不能将参数 2 从“const char [10]”转换为“LPCWSTR”1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数原创 2014-12-11 11:22:40 · 1909 阅读 · 0 评论 -
spy++使用方法
spy++ 是微软 Visual Studio 编译器自带的一款工具。它可以显示系统对象(包括进程、线程和窗口)之间关系的图形树,搜索指定的窗口、线程、进程或消息, 查看选定的窗口、线程、进程或消息的属性等等。因此,在 spy++ 的帮助下,我们进行程序调试将容易得多。 下面,我们通过一个简单的示例,来教大家如何使用 spy++ 查看指定窗口的属性。转载 2014-12-11 11:45:40 · 2217 阅读 · 0 评论 -
函数FindWindow()简介
HWND FindWindow( LPCTSTR lpClassName, // pointer to class name LPCTSTR lpWindowName // pointer to window name ); 其中lpClassName是窗口的类名,你可以用spy++来查看其类的名称;lpWindo原创 2014-12-11 10:42:40 · 2374 阅读 · 0 评论 -
GetSafeHwnd()和GetSafeHandle()的主要区别(对窗口句柄和窗口指针区分有详细讲解)
GetSafeHwnd()和GetSafeHandle()的主要区别:1.使用者不同:(1)窗体使用:GetSafeHwnd()用于获取窗体的安全句柄(即HWND),有了HWND我们就可以方便的对HWND指向的窗体进行所需的操作了;(2)GDI对象使用:GetSafeHandle(),用于获取GDI对象的句柄。注意:在使用指针时强烈建议这转载 2014-12-11 10:35:58 · 973 阅读 · 0 评论 -
从子窗口中获取父窗口的句柄例子
HWND hTemp=::GetParent(this->GetSafeHwnd());//GetSafeHwnd()会返回当前窗口的句柄,GetParent(子句柄)这个函数将获得子句柄的父窗口的句柄while(hTemp){HWND hParent=hTemp;hTemp=::GetParent(hParent);if(!hTemp){::SendMessage(h原创 2014-12-12 15:40:31 · 8115 阅读 · 0 评论 -
OnMouseHover()和OnMouseLeave()(让窗口捕获并响应WM_MOUSEHOVER和WM_MOUSELEAVE消息)
当鼠标停留在程序窗口一定时间后,会产生一个WM_MOUSEHOVER消息;当鼠标离开程序窗口后,会产生一个WM_MOUSELEAVE消息。那如何才能使窗口响应这两个消息呢?按下面的步骤,即可让指定的窗口能捕获并响应WM_MOUSEHOVER和WM_MOUSELEAVE消息了:1、在窗口类的头文件中添加:[cpp] view plaincopy转载 2015-01-19 15:28:30 · 738 阅读 · 0 评论 -
每日工作记录
2014.12.29 17:391。.将打印输出的回调函数写到了解决方案MMVideoSDK中的VideoPlay.c 里,为 void CVideoPlay::g_NofityMessageCallBack(UINT unMsgType,void *pParameter2,void *pUserData )2。在CBaseDecorder.h 中定义了一个静态数组 st原创 2014-12-29 18:00:02 · 791 阅读 · 0 评论 -
MFC Radio Button 使用 分组 RadioButton 用法
环境:VS2010分组 将radio1、radio2、radio3分为1组,radio4、radio5分为另一组; 方法:设置 radio1 的 属性: group、tabstop、auto均为true 设置 radio2 的 属性: group设为false, tabstop、auto均为true 设置 radio3 的 属性:group设为false, tabstop、a转载 2015-02-09 11:04:25 · 644 阅读 · 0 评论 -
vs2010 mfc中 出现: “当前不会命中断点。源代码与原始版本不同”
这是由于文件格式变化引起的; 解决办法: 1. 打开设置断点不起作用的 cpp 文件 2. 打开编辑菜单,点“全选” (Ctrl + a ); 3. 打开编辑菜单,高级,点“设置选定内容的格式”转载 2015-01-04 13:40:44 · 459 阅读 · 0 评论 -
MFC List Control滚动条
参考文章:http://bbs.youkuaiyun.com/topics/390302636?page=1-----------------------------------------------------------------------------------------------------------------------------------------起因是这样的,转载 2015-01-22 00:07:11 · 7704 阅读 · 0 评论 -
子窗口全屏和还原实现
一、定义三个变量BOOL m_bFullSceen;//全屏标志CWnd* m_pWndSave;//保存父窗口指针WINDOWPLACEMENT m_wpmSave;//保存窗口位置信息二、变量初始化m_bFullSceen(FALSE)三、调用函数(鼠标双击窗口实现窗口全屏化)//ON_MESSAGE(UM_LBUTTON_DBLCLK, OnLBu转载 2015-01-04 18:33:44 · 1152 阅读 · 0 评论 -
MFC中crect 中的left top right bottom释义
x0, y0),(x1, y1)-->(left, top),(right, bottom)其中(x0, y0)是这个矩形区域的左上角,(x1, y1)是这个矩形区域的右下角。只要这两个点确定了,这个矩形区域就被唯一确定下来。谢谢转载 2015-01-05 16:52:03 · 2002 阅读 · 0 评论 -
OnPaint()与OnDraw()
又是一个老掉牙的问题啊,前面说的双缓冲绘图就是相关的话题了啊。http://blog.sina.com.cn/s/blog_52f9dd620100a77r.htmlOnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。On转载 2014-12-08 11:47:46 · 525 阅读 · 0 评论 -
OnEraseBkGnd()
在OnEraseBkGnd中,如果你不调用原来缺省 的OnEraseBkGnd只是重画背景则不会有闪烁.而在OnPaint里面, 由于它隐含的调用了OnEraseBkGnd,而你又没有处理OnEraseBkGnd 函数,这时就和窗口缺省的背景刷相关了.缺省的 OnEraseBkGnd操作使用窗口的缺省背景刷刷新背景(一般情况 下是白刷),而随后你又自己重画背景造成屏幕闪动.转载 2014-12-08 11:33:24 · 657 阅读 · 0 评论 -
关于WS_CLIPCHILDREN风格
ModifyStyle(0, WS_CLIPCHILDREN);一个窗口使用这个之后,当前窗口在重绘时,不再重绘被子控件覆盖的区域。指定了的话,不会绘制子窗口覆盖的部分, 如果没有指定,那么就会绘制被遮盖的部分,并不影响子窗口的显示,只是在高速刷新窗体的时候,会产生闪烁显现。原创 2014-12-17 11:55:52 · 731 阅读 · 0 评论 -
CFile、CStdioFile、FILE和其他文件操作(转+总结)
CFile//创建/打开文件CFile file;file.Open(_T("test.txt"),CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite);文件打开模式可组合使用,用“|”隔开,常用的有以下几种:CFile::modeCreate:以新建方式打开,如果文件不存在,新建;如果文件已存在,把该文转载 2015-01-07 15:10:23 · 718 阅读 · 0 评论 -
添加OnInitDialog函数图解
第一步:第二步:第三步:原创 2015-01-06 16:14:14 · 1030 阅读 · 0 评论 -
MFC改变static text颜色和内容及字体大小
1. 打开资源视图。2. 双击打开STATIC所在的对话框。3. 修改STATIC的ID属性,这里假设为IDC_STATICMessage。4.为对话框添加类,假设为CMyDialog.5. 选择对话框,在属性面板上点击消息,并选择WM_CTLCOLOR。6.在对话框对应类的CPP中会新增下面的代码:HBRUSH DataSummaryDlg::On转载 2015-01-06 15:44:24 · 16375 阅读 · 4 评论 -
MFC中获得系统时间的方法
1.使用CTime类CString str; //获取系统时间CTime tm; tm=CTime::GetCurrentTime(); str=tm.Format("现在时间是%Y年%m月%d日 %X"); MessageBox(str,NULL,MB_OK);2: 得到系统时间日期(使用GetLocalTime)SYSTEMTIME st;CString st转载 2015-01-08 17:26:39 · 1072 阅读 · 0 评论 -
CString const char*与char*之间的转换关系
CString是个好东西,有很多好用的成员函数,并且动态分配内存空间。但在MFC学习初期,容易把CString与const char*,char*混淆。遇到三种类型数据转换时,总是得过且过。下面就剖析一下三者之间的转换关系与方法。 1、CString与const char*(LPCTSTR---是在Unicode环境下const char*的宏定义) CString转载 2014-12-20 18:49:29 · 426 阅读 · 0 评论 -
用MFC如何高效地绘图
显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题。而且多数人认为MFC的绘图函数效率很低,总是想寻求其它的解决方案。MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非常简单,只要使用方法得当,再加上一些技巧,用MFC可以得到效率很高的绘图程序。我想就我长期(呵呵当然也只有2年多)使用MFC绘图的经验谈谈我的一些观点。1、显示的图形为什么会闪烁?转载 2015-01-29 00:12:00 · 432 阅读 · 0 评论 -
统计某个字符数
C/C++ code?12345678int times=0;for (int i=0;i{ if (setStr.GetAt(i)==';'){times++;}}转载 2014-12-22 13:47:06 · 381 阅读 · 0 评论 -
分割字符串的AfxExtractSubString函数
函数原型:BOOL AfxExtractSubString(CString& rString, LPCTSTR lpszFullString, int iSubString, TCHAR chSep = '\n')参数说明:rString 保存输出的子字符串lpszFullString 待分割的字符串iSubString 提取的子字符串的序号,转载 2014-12-22 13:43:48 · 10043 阅读 · 1 评论 -
CWnd与HWND的区别与转换
一、区别HWND是句柄,CWnd是MFC窗体类,CWnd中包含HWND句柄成员对象是m_hWnd.HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。 CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m_hWnd成员。二、如何得到窗口对象指针C转载 2014-12-05 17:56:01 · 349 阅读 · 0 评论 -
CPaintDC、CClientDC、CWindowDC和CMetaFileDC类的主要特点及区别
1、 设备环境(DC) (1)在Windows中,显示工作是基于设备环境的。所谓设备环境(DC)是一种Windows数据结构,该结构包含应用程序设备输出时所需要的信息。 (2)在使用任何绘图函数之前必须建立一个设备环境对象。 (3)在Visual C++ 6.0的MFC中提供了设备环境类CDC,它封装了绘图所需要的所有函数,其中包括了大多数的Windows API中的GDI函转载 2014-12-08 11:21:11 · 403 阅读 · 0 评论 -
LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR的区分与转化
http://blog.youkuaiyun.com/jize00/article/details/4379478首先在编译程序时经常会遇到这种问题:错误 1 error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [3]”转换为“LPCTSTR” 1、觉得很烦,一般的做法就是不管三七二十一,在字符串前面加一个‘L’:转载 2014-12-08 10:59:07 · 421 阅读 · 0 评论 -
DRAWITEMSTRUCT结构
DRAWITEMSTRUCT结构如下:typedef struct tagDRAWITEMSTRUCT { UINT CtlType; //控件类型; UINT CtlID; //组合框、列表框等控件的ID标识号; UINT itemID; //菜单项的ID标识号或列表框、组合框中某一项的索引值; UINT itemAction; //转载 2014-12-08 11:06:44 · 630 阅读 · 0 评论 -
软件时效思路
我做过一个软件,因为这个软件要求系统时间不能出错,因为它的一些工作是依据时间来进行统计的,如果出错,统计值会错.因此,我的办法是:在软件第一次运行时,提醒用户确定当前系统时间是正确的,如果不确定,不给用.然后向软件所在的文件夹写一个加密文件,记录当前时间.以后每次运行时先比较当前系统时间,如果当前系统时间晚于记录时间,写入新时间,如果当前系统时间早于记录时间一定的间隔(比如一天什么转载 2015-01-13 16:17:07 · 828 阅读 · 0 评论 -
MFC控件: Date Time Picker
有些地方我们可能需要用户输入时间信息.MFC里面有个控件Date Time Picker可以方便的实现该功能.发现MFC控件信息有些混乱,在ToolBox中叫Date Time Picker,在Properties页面看到的就是Date-Time Control了,然后对应的类名又变成CDateTimeCtrl了. 当然还好没有不同控件名字比较类似,所以还不至于造成混淆.说到时间我们想到的转载 2014-12-23 14:52:56 · 2630 阅读 · 0 评论 -
MFC美化界面
转自:http://vcer.net/1046595482643.html 本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础: 1. 大致了解MFC框架的基本运作原理; 2. 熟悉Windows消息机制,熟悉MFC的消息映射和反射机制; 3. 熟悉OOP理论和技术; 本文根据笔者多年的开发经验,并结合简单的例子一一展开,希望对读者有所帮助。美化界面之开转载 2015-02-13 17:29:56 · 3142 阅读 · 0 评论
分享