MFC面板中显示内容及按钮消息的添加

5 篇文章 0 订阅

一.窗口面板中显示内容

 

     画出一个圆

 

1.       首先建立一个MFC项目,我这里取名为 draw

2.       在左边类视图中找到CDrawView类,面板上显示的东西和它有关,再找到CDrawView里面的 OnDraw ( CDC *pDC),双击它。

3.       可以看到void CDrawView::OnDraw(CDC* pDC)这个函数,在这里面写代码,在面板上显示出来。

 

4.在函数里面写代码 pDC->Ellipse(30,30,60,60);    其中Ellipse是椭圆,参数为两个点的坐标值(int x1,int y1,int x2,int y2);这样,一个圆就画好了,运行一下,可以看到窗口面板上画了一个圆。

 

②.在窗口面板上显示100个数,1100,十行十列。

1.       把上面画圆的代码注释掉。还是在OnDraw函数里面写下面代码:

int x=10,y=10,temp=10;   //x为横坐标,y为纵坐标,起始位置为(10,10)
	CString str;
	for(int i=1;i<=100;i++)

	{		str.Format("%d",i);  //把整型的数转换为字符串型

		
	pDC->TextOut(x,y,str);   //把数字在(x,y)处显示出来
	x+=30;
	if(i==temp)   //  当一行中满10个数,换行,y增加
	{
		y+=30;
		temp+=10;
		x=10;
	}
 }


 

Ps:加法效率要比除法效率高,因此我们在上面换行时用到了temp这个变量,而没有用到  if (i%10==0)

③.消息的添加:点击鼠标左键,在窗口面板上画圆

1.       找到左边类视图中的CDrawView 在名字上点右键,点击Add Windows Message Handler (添加窗口消息句柄)

1.       在弹出的对话框的最左边一栏找到 VM_LBUTTONDOWN (鼠标左键的消息),双击,VM_LBUTTONDOWN跑到右边空白处,再双击右边的VM_LBUTTONDOWN,进入到void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)函数里面。

1.       在函数里面写入下面代码:

       CDC *pdc=GetDC();    //通过GetDC();函数创建了一个CDC类型对象指针

       int r=10;

       pdc->Ellipse(point.x-r,point.y-r,point.x+r,point.y+r);

1.       这样功能就实现了,当我们在窗口面板上点击左键,就会画出一个圆。编译,运行,如下效果。

④.在上面的基础上,添加一个菜单按钮使每次点击,画出来的圆半径+10

 

找到左边的资源视图,找到里面的Menu,再找到里面的IDR_MAINFRAME,双击,出现菜单栏的编辑状态,在帮助右边双击下,出现对话框,在Caption里面输入按钮的名称,这里我输入 radius+10  如图:

1.       对按钮添加消息,在 radius+10处鼠标右键,点击ClassWizard,对话框中Project里面是draw ObjectIDs 选择 ID_MENUITEM32771(刚才新建按钮的ID,查看ID的方法,双击按钮),Classname选择 CDrawView(因为,要在视图中显示出来),Message选择COMMAND,再点击右边的AddFunction  ,再点击下面的EditCode ,进入函数界面。

 

3.在②的代码中,我们是用的变量r作为半径,因此在void CDrawView::OnMenuitem32771()中写代码:r+=10;编译一下,一个错误,drawView.cpp(136) : error C2065: 'r' : undeclared identifier,因为变量r是在void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)这里面定义的,不是全局变量,因此把 int r=10;移到函数外边。

 

4.编译,运行,在面板中鼠标左键画圆,点击菜单栏中的 radius+10 按钮,画出来的圆半径变大。如图效果:

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在MFC界面上创建一个按钮,并处理其点击事件(单击消息),可以按照以下步骤进行操作: 1. 打开您的 MFC 应用程序项目,并找到您要添加按钮的对话框(一般是在 .dlg 文件)。 2. 在 MFC 的资源视图,双击打开对应的对话框资源文件。 3. 在对话框编辑器,选择“工具箱”面板(如果未显示,可以通过“视图”->“工具箱”打开)。 4. 在工具箱面板,找到“按钮”控件图标,并将其拖放到对话框的适当位置。 5. 在属性视图,为按钮控件设置一个唯一的 ID 值。可以在“ID”属性进行设置。 6. 确保选按钮控件,然后在属性视图,切换到“消息映射器”选项卡。 7. 单击“添加事件处理程序”按钮(带有一个闪电图标),或者右键单击按钮控件并选择“添加事件处理程序”。 8. 在弹出的对话框,选择“单击”事件,并点击“添加并编辑”按钮。 9. Visual Studio 将为您自动生成一个处理按钮点击事件的函数。在生成的代码,您可以添加您所需的逻辑来响应按钮的单击事件。 以下是一个示例代码,展示了如何处理按钮的单击事件: ```cpp void CMyDialog::OnButtonClicked() { // 在此处添加按钮单击事件的处理逻辑 AfxMessageBox(_T("按钮被点击了!")); } ``` 在此示例,CMyDialog 是您的对话框类名,OnButtonClicked 是自动生成的处理函数名。您可以根据需要添加自定义的逻辑来处理按钮的单击事件。 请注意,如果您在对话框类没有自动生成的处理函数代码,可以手动添加对应的消息映射和处理函数。确保在消息映射器正确关联按钮的 ID 和对应的处理函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值