MFC
文章平均质量分 59
stone-jin
这个作者很懒,什么都没留下…
展开
-
COM开发入门
1.COM注册和注销命令注册 regsvr32 **.ocx注销 regsvr32 -u **.ocx2.创建好的ActiveX工程后有三个主要的cpp介绍一下默认添加的三个基本类:CMyActiveXApp:提供了控件类的初始化(InitInstance)和销毁代码(ExitInstance)。CMyActiveXCtrl:用来实现控件建好后有什么功能。原创 2016-01-16 02:02:28 · 543 阅读 · 0 评论 -
COM一些小知识
1 COM组件是一个C++类,他从一系列接口派生而来,并实现了所有的接口。这些接口都是纯虚类。2 COM组件有三个最基本的接口类,分别是IUnknown、IClassFactory、IDispatch。 COM规范规定任何组件、任何接口都必须从IUnknown继承。 所以我们使用COM的一个简单流程如下: //**********************转载 2016-01-11 22:09:20 · 285 阅读 · 0 评论 -
COM学习笔记1_COM初步探索
原文:http://blog.csdn.net/hongjiqin/article/details/4433888COM组件的两个重要需求:1。 动态链接2。 隐藏实现细节COM初步探索一个典型C++客户和组件的例子// 组件模块interface IX{ virtual void __stdcall Fx1() = 0 ; virtual转载 2016-01-11 22:16:56 · 723 阅读 · 0 评论 -
COM学习笔记2_COM接口vbtl内存布局
原文:http://blog.csdn.net/hongjiqin/article/details/4433952 这里要注意的是,虽然图中显示IY的虚函数表中QueryInterface,AddRef和Release指向的函数地址与IX的虚函数表中对应函数相同,都直接指向CA::QueryInterface等。但其实并不完全是这样。如果看汇编实现,可以看到IY中转载 2016-01-11 22:18:59 · 381 阅读 · 0 评论 -
COM学习笔记3_IUnknown的三个接口函数
原文地址:http://blog.csdn.net/hongjiqin/article/details/4433986对于COM组件,正确处理IUnknown的三个接口函数非常重要。对于QueryInterface,一个参考处理如下:HRESULT __stdcall CA::QueryInterface(const IID& iid, void** ppv)转载 2016-01-11 22:24:14 · 994 阅读 · 0 评论 -
COM调用的时候需要先调用CoInitialize函数
void Cdirectshow_1Dlg::OnBnClickedButton1(){ HRESULT err = ::CoInitialize(NULL); if (FAILED(err)) { MessageBox(_T("Com初始化失败"), _T("COM初始化失败"), MB_OK); return; } r原创 2016-01-31 15:39:00 · 3837 阅读 · 0 评论 -
opencv或者libvlc库这种遇到窗口句柄想要放到MFC中的处理代码如下:
代码如下:namedWindow("view", WINDOW_AUTOSIZE); HWND hWnd = (HWND)cvGetWindowHandle("view"); HWND hParent = ::GetParent(hWnd); ::SetParent(hWnd, GetDlgItem(IDC_PICTURE)->m_hWnd); ::ShowWi原创 2016-01-31 20:33:40 · 1126 阅读 · 0 评论 -
MFC中的MoveWindow and SetWindowPos
MoveWindow只能设置窗口的大小和位置;SetWindowPos拥有MoveWindow的全部功能之外,还可以设置窗口的层叠关系(如,把指定的窗口放在所有窗口的最上层--always on top就可以用这个函数、或者把指定的窗口放在另一个窗口的下层,等等)。 没有什么优缺点可言,只是功能上的大小有别。你完全可以不用MoveWindow,而只用SetWindowPos;但是,在只要设转载 2016-02-03 13:49:07 · 4828 阅读 · 0 评论 -
MFC中如何从Unicode到多字节的转换
std::string cStringToString(const CString& src, UINT codepage = CP_UTF8){ std::string dst; if (src.IsEmpty()) { dst.clear(); return ""; } int length = ::WideCharT原创 2016-01-30 16:29:01 · 2038 阅读 · 0 评论 -
MFC中设置元素的字代码例子
GetDlgItem(IDC_HELLO)->SetWindowText(_T("版本号: 1.0.0"));原创 2016-02-03 14:34:09 · 324 阅读 · 0 评论 -
MFC显示图片信息,当前测试png jpg两种图片
MFC常常需要显示图片信息,当前测试了png jpg两种图片的显示方法,均可用。 CString FilePath = _T("D:\\jinbing\\test\\test_1_8_1\\mfc\\mfc\\img\\2.png"); CImage image; image.Load(FilePath); image.Draw(picture_control.Get原创 2016-01-09 14:00:16 · 1078 阅读 · 0 评论 -
怎么给MFC弹出右键选择框的效果,Cmenu
DWORD position = GetMessagePos(); CPoint cPoint(GET_X_LPARAM(position), GET_Y_LPARAM(position)); CMenu cMenu; cMenu.LoadMenu(IDR_MENU1); CMenu *first_menu = cMenu.GetSubMenu(0);原创 2016-01-09 12:47:44 · 715 阅读 · 0 评论 -
MFC中ListControl控件的使用
1.ListControl有几种模式:(1)ICON图标(2)Small Icon 小图标(3)List 列表(4)Report报表直观的理解:windows 资源管理器," 查看" 标签下的" 大图标,小图标,列表,详细资料 2.在MFC的资源页面操作可以让Dlg界面中添加一个control的控件,该控件如果要添加列首的话,用下面的函数m_listCont原创 2016-01-09 11:19:42 · 567 阅读 · 0 评论 -
MFC中客户区和非客户区概念的图示
问题:什么是客户区/非客户区?窗口(框架/frame)的客户区和视图(view)的客户区的区别?这些都是初学者很容易迷惑的地方,我也是很迷惑,不过经过一番折腾终于弄明白这些问题了。对于这些问题,我想只用两个图片来说明最直观!如下:1。在一个MDI(多文档)应用程序中每个概念如下图所标示:窗口框架的客户区就是指图中的灰色部分:即蓝色方框内区域,转载 2016-01-16 04:05:45 · 4839 阅读 · 0 评论 -
获取系统信息的函数
GetSystemMetrics ()用于得到被定义的系统数据或者系统配置信息.int WINAPI GetSystemMetrics( __in intnIndex);原创 2016-01-17 14:01:59 · 367 阅读 · 0 评论 -
MFC中自绘窗口的几个点
1.窗口分为客户区和非客户区。2.按钮一般分为四帧,第一帧:正常状态 第二帧:Hoven状态,即鼠标放在按钮时的状态 第三帧:鼠标按下状态 第四帧:失效状态3.绘制客户区自然就是要在WM_PAINT中进行,而非客户区的绘制就不能在这里了,而是在WM_NCPAINT,这里注意一下,以后还有很多消息是关于非客户区的,客户区和非客户区不要混淆,非客户区都是NC打头,Noc原创 2016-01-17 14:07:46 · 484 阅读 · 0 评论 -
MFC中重绘非客户区 NcPaint
1.需要响应WM_NCCALSIZE消息2.需要响应NCPAINT消息3.还需要响应WM_SIZEvoid 类名::OnSize(UINT nType, int cx, int cy) { CWnd::OnSize(nType, cx, cy); // TODO: Add your message handler code here ResetWindowRgn();转载 2016-01-17 14:49:19 · 3624 阅读 · 0 评论 -
MFC中如何改变标题栏的高度,OnNcCalSize
OnNcCalcSize改变标题栏等的高度 在创建窗口时,当收到 WM_NCCALCSIZE 消息时才指定客户区。不管什么时候,只要 Windows 想知道窗口客户区的大小,它便会发送这个消息。如果改写主窗口的 WM_NCCALCSIZE/OnNcCalcSize,一定要确保调用基类的默认窗口处理例程,以便实现缺省处理。这样程序一运行便会有得到默认的客户区矩形,然后你可以调整其大原创 2016-01-17 14:26:45 · 6026 阅读 · 2 评论 -
CWnd::OnSize
在窗口的大小更改后,框架调用该成员函数。afx_msg void OnSize( UINT nType, int cx, int cy );参数nType指定请求的调整大小的类型。 此参数可以是下列值之一:SIZE_MAXIMIZED 窗口最大化。SIZE_MINIMIZED 窗口最小化。转载 2016-01-17 16:08:34 · 897 阅读 · 0 评论 -
MFC自绘窗口的时候,OnSize
void CDialogEx::OnSize(UINT nType, int cx, int cy){ CDialog::OnSize(nType, cx, cy); //计算偏移 INT nYPos=1; INT nXPos=cx-nCloseWidth; //设置位置 m_rcButton[BST_CLOSE].SetRect(nXPos,原创 2016-01-17 16:12:18 · 1606 阅读 · 0 评论 -
MFC中CDC与HDC的区别以及二者之间的转换
CDC是MFC的DC的一个类HDC是DC的句柄,API中一个类似指针的数据类型MFC类的前缀都是C开头的H开头的大多数是句柄这是为了助记,是编程读/写代码的好的习惯。CDC中所有MFC的DC的基类,常用的CClientDC dc(this);就是CDC的子类(或成为派生类)。CDC等设备上下分类,都含有一个类的成员变量:m_nHdc,即HDC类型的句柄。转载 2016-01-18 00:54:17 · 781 阅读 · 0 评论 -
MFC的 CImage 解析
CImage作用:显示jpg,bmp等图片的功能。 我们可以通过它做界面的贴图功能。演示功能:1。保存图片保存图片只有一个函数,就是Save函数,该函数有两个参数,一个是文件的完整路径和文件名,一个是文件的扩展名。但是如果只有保存和显示图片功能,CImage的Save函数发挥不了太大的作用,不过是一个转存文件的工具。CImage的强大之处在于可以对图片进行修改,再进行保存。原创 2016-01-18 01:46:10 · 3511 阅读 · 0 评论 -
获取windows下任务管理器中的进程列表
#include #include #include using namespace std;int main(int argc, char** argv){ HANDLE hProcessSnp = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if(NULL == hProcessSnp) {原创 2016-01-19 13:56:46 · 5036 阅读 · 0 评论 -
Tab Control控件简单使用
本文讲述在普通对话框上添加标签的简单示例第一步拖一个Tab Control到对话框上并添加变量m_tabCtrl; 第二步添加两个对话框资源IDD_DIALOG1,IDD_DIALOG2并将style为Child, Border为None,再分别为其添加对应的基于CDialog m_page1,m_page2第三步在OnInitDialog()添加如下代码转载 2016-02-04 09:59:17 · 1065 阅读 · 1 评论