文章分类 -  MFC

摘要:一、VC程序调用VC编写的导出函数 a)定义 1)创建dll工程 2)在工程下添加源程序文件,并编写代码 源代码如下:1 _declspec(dllexport) int IntPlus(int a,int b)2 {3 return a+b;4 } 编译运行生成dll b)调用 1)创建普通的控制台工程并将要使用dll和lib文件拷贝至工程目录下 2)工程设置中,生命要使用的lib文件 3)编写源代码 1 #include<iostream> 2 usingnamespace std; 3 4 externint IntPlus(int a,int b); 5 6 ... 阅读全文
posted @ 2011-11-25 16:20 jeffkuang 阅读(395) 评论(0) 推荐(0)
摘要:当程序中需要用到画图的时候,就要选择画笔的颜色,在MFC中提供了一个CColorDialog的类,通过此类可以很方便的创建这样一个颜色对话框。其构造函数如下:1CColorDialog( COLORREF clrInit = 0, DWORD dwFlags = 0, CWnd* pParentWnd = NULL ); 该构造函数含有三个参数,其中clrInit:指定默认的颜色选择,默认是黑色。dwFlags:指定一组标记,用来定制颜色对话框的功能和它的外观。pParentWnd:指向颜色对话框父窗口,后者拥有者窗口的指针。我们可以使用dialog的doModal()函数创建颜色对话框。在. 阅读全文
posted @ 2011-11-25 16:11 jeffkuang 阅读(206) 评论(0) 推荐(0)
摘要:首先来说MFC中工具栏的创建方法,可以有两种方法创建工具栏: 第一种方式的步骤如下:(1)创建工具栏资源。这个在IDE中的资源编辑器中完成。(2)构造一个CToolBar对象。(3)调用Create()函数或者CreateEx()函数创建Windows工具栏,并把它与已经创建好的CToolBar对象关联起来。(两个Create函数是CTollBar的成员函数)。原型看看:1BOOL Create( CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP, UINT nID = AFX_IDW_TOOLBAR );2. 阅读全文
posted @ 2011-11-25 16:10 jeffkuang 阅读(188) 评论(0) 推荐(0)
摘要:要更改应用程序的窗口的外观,我们可以在两个时候更改,一是在应用程序窗口创建之前,二是在应用程序窗口创建之后进行更改。本文将两种方式记录下来。 在窗口创建之前修改:我们之前已经知道,在应用程序窗口创建之前会调用一个叫PreCreateWindow()的函数,要想在窗口创建之前修改程序窗口的外观跟大小,就应该在CMainFrame类(SDI程序)中的PreCreateWindow()函数中进行。1virtual BOOL PreCreateWindow( CREATESTRUCT& cs ); //PrecreateWindow()函数原型,参数稍后作解释。 PreCreateWindow 阅读全文
posted @ 2011-11-25 16:09 jeffkuang 阅读(180) 评论(0) 推荐(0)
摘要:通过一个简单的向导程序demo的设计,初步了解了MFC中一些基本对话框编程函数的编程以及一些基本控件的使用。首先来了解一些重要的函数:获取对话框上的项目指针:GetDlgItem(),注意此函数的返回值,一般都需要进行强制类型转换。获取窗口信息:GetWindowText(),而与之对应的是更改窗口信息:SetWindowText()直接取得对指定话框上项目的信息:GetDlgItemText() 想当于GetDlgItem()和GetWindowText()合用,当然,有SetDlgItemText() 相当于GetDlgItem()和SetItemText() 合用。GetDlgIte.. 阅读全文
posted @ 2011-11-25 16:08 jeffkuang 阅读(175) 评论(0) 推荐(0)
摘要:首先,在MFC中,具有PopUp属性的菜单是不能用来做命令响应的。在MFC中: 当点击一个菜单项的时候,最先接受到菜单项消息的是CMainFrame框架类,CMainFrame框架类将会把菜单项消息交给它的子窗口View 类,由View类首先进行处理;如果View类检测到没对该菜单项消息做响应,则View类把菜单项消息交由文档类Doc类进行处理;如果Doc类检测到 Doc类中也没对该菜单项消息做响应,则Doc类又把该菜单项消息交还给View类,由View类再交还给CMainFrame类处理。如果 CMainFrame类查看到CMainFrame类中也没对该消息做响应,则最终... 阅读全文
posted @ 2011-11-25 16:07 jeffkuang 阅读(222) 评论(0) 推荐(1)
摘要:首先区分一下窗口类、窗口类对象以及窗口要 区分这些关键是知道C++窗口类对象的生命周期与窗口的生命周期不是一致的!(这里容易误解的是C++窗口类对象就是窗口!)当一个窗口销毁时,与C++ 窗口类对象没有关系,他们之间的纽带在于这个C++窗口类内部成员变量(如m_hWnd),该变量保存了与这个C++窗口对象相关的那个窗口的句柄。当一 个窗口销毁时,会调用CWnd的DesdtroyWindow()函数,该函数销毁窗口后,与之相对应的窗口类的对象(如m_hWnd)设为NULL。另一方面,当我们析构一个C++窗口类对象时,即销毁对象时,与之相对应的窗口对象是应该销毁的,因为窗口对象与窗口之间的纽带已经 阅读全文
posted @ 2011-11-25 16:05 jeffkuang 阅读(168) 评论(0) 推荐(0)
摘要:前面已经知道,在一个windows程序中,winmain函数作为程序的入口函数,一个程序的是:设计窗口(给窗口设置相应的属性)——>注册窗口——>创建窗口——>显示并且更新窗口——>消息循环;但是当创建一个MFC程序时候,并没有看到winmain函数之类的东西,并且之前的程序框架与MFC也大有不同。现在,先来看看MFC中的程序框架以及程序运行机制吧。由于MFC是对其SDK的封装,所以程序运行逻辑方式应该是一样的。 在MFC程序中,同样还是有winmain函数参与,但是这个WinMain函数是在程序编译连接时,由链接器将该函数链接到程序的。知道WinMain的存在后,那么 阅读全文
posted @ 2011-11-25 16:04 jeffkuang 阅读(149) 评论(0) 推荐(0)
摘要:主要将window程序的运行,一些重要的API函数的初步了解,为下一步学习MFC基础基础。将学习到的东西记记~windows应用程序与操作系统之间通过消息传递实现,操作系统将事件都封装成一个MSG的消息结构体,两者之间的交互通过消息队列完成。来看看消息中具体应有的那些信息:1 typedef struct tagMSG { // msg 2 HWND hwnd;3 UINT message;4 WPARAM wParam;5 LPARAM lParam;6 DWORD time;7 POINT pt;8 } MSG; (1)HWND(第一个参... 阅读全文
posted @ 2011-11-25 16:03 jeffkuang 阅读(106) 评论(0) 推荐(0)