"mfc"中怎样往类里加成员函数?

"mfc"中怎样往类里加成员函数?,第1张

首先选到CLASSVIEW,然后右击需要添加成员函数的类,选择ADD MEMBER FUNCTION,出来的对话框,比如说public int add(int y,int x)

Function Type:int

Function Declare:add(int y,int x)

Acess:选择public

最后两个static virtual你的函数是静态就选择static,是虚函数就选择virtual。

这样就成功往类里加成员函数了。

MFC基于对话框——右键d出菜单,并响应函数。

1、新建一个菜单资源,比如把菜单的ID号为IDR_MENU1。

2、在ClassWizard中

void CArcSoft_EffectDlg::OnRButtonDown(UINT nFlags, CPoint point)

{// TODO: Add your message handler code here and/or call default

CMenu menu//定义下面要用到的cmenu对象

menu.LoadMenu(IDR_MENU1)//装载自定义的右键菜单;

CMenu *pContextMenu=menu.GetSubMenu(0)//获取第一个d出菜单,所以第一个菜单必须有子菜单;

CPoint point1//定义一个用于确定光标位置的位置;

GetCursorPos(&point1)//获取当前光标的位置,以便使得菜单可以跟随光标

pContextMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point1.x,point1.y,AfxGetMainWnd())//在指定位置显示d出菜单;

CDialog::OnRButtonDown(nFlags, point1)};

这时,当右键点击对话框,就可以将菜单调出来了,如何响应菜单项有如下 *** 作:

3、在资源视图中右键单击菜单项,建立类向导(ClassWizard),此时会d出一个对话框,点击第二个,加入到已存在的类,按确定。

4、在资源视图中为菜单中的每一项建立类向导,并添加Command响应函数,然后在这个函数中加入语句就可以啦。

ON_COMMAND(ID_COPY, OnCopy)//加Command响应函数,自动出现的灰色语句

void CArcSoft_EffectDlg::OnCopy()

{// TODO: Add your command handler code here

MessageBox("复制成功!")

MFC文档的菜单栏中添加一个command响应函数

基于CFormView的应用程序,经常会在菜单栏中添加一个按钮,点击该按钮时,会d出一个对话框~~

具体实现方式如下

1.新建一个对话框资源,同时新建一个对话框类和该资源对应,舍对话框类名为CTestDialog

2.在资源视图中找到Menu 这个文件夹,双击里面的文件IDR_MAINFRAME,在这里可以添加自己想要的菜单,也可把原来的【文件】、【编辑】等菜单给删掉~~

添加菜单的方法:右击右侧空白区域,选择properties,d出的对话框中,把pop_up勾选掉,添加一个ID和CAPTION,设ID为ID_MYTEST,caption|为【测试】

(要注意的是,最好选择View类,而不是Frame类或其他类)

3.Ctrl+Wd出类向导,message maps中的class name 选择为View类,

从Object IDs中找到我们上一步设置的ID_MYTEST,右侧的message选择Command命令,添加一个命令响应函数;

4.在该函数中添加

CTestDialog dlg

dlg.DoModal()

5.对应的菜单项添加WM_COMMAND消息,在命令响应函数中DoModal/Create/ShowWindow()你的对话框即可。

6.消息映射:

ON_COMMAND(菜单编号,处理函数)

.h

public:

处理函数

.cpp

处理函数

{

CDialog dc

dc.domodal()

}

d出非模态对话框的方法:

(1)用类向导给菜单栏中菜单添加一个响应函数

(2) 在头文件中加入

#include "Dlg.h"

public:

CDlg *Dlg

(3)在代码中加入

Dlg=new CDlg(this)

Dlg->Create(IDD_DIALOG1)// IDD_DIALOG1为对应的菜单栏中那个按钮的ID

Dlg->ShowWindow(SW_RESTORE)

弦的弦心距中有一组量相等那么它们所对应

(1)窗口创建函数

这里主要讨论函数Create和CreateEx。它们封装了Win32窗口创建函数::CreateWindowEx。Create的原型如下:

BOOL CWnd::Create(LPCTSTR lpszClassName,

LPCTSTR lpszWindowName, DWORD dwStyle,

const RECT&rect,

CWnd* pParentWnd, UINT nID,

CCreateContext* pContext)

Create是一个虚拟函数,用来创建子窗口(不能创建桌面窗口和POP UP窗口)。CWnd的基类可以覆盖该函数,例如边框窗口类等覆盖了该函数以实现边框窗口的创建,视类则使用它来创建视窗口。

Create调用了成员函数CreateEx。CWnd::CreateEx的原型如下:

BOOL CWnd::CreateEx(DWORD dwExStyle, LPCTSTR lpszClassName,

LPCTSTR lpszWindowName, DWORD dwStyle,

int x, int y, int nWidth, int nHeight,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11929341.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存