zoukankan      html  css  js  c++  java
  • MFC面板中显示内容及按钮消息的添加

    一.窗口面板中显示内容

     

         画出一个圆

     

    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 按钮,画出来的圆半径变大。如图效果:

  • 相关阅读:
    平时十二测
    无题十四
    暑假第十测
    无题十三
    noip错题集
    无题十二
    BZOJ整理
    志愿者招募
    修车
    任务安排
  • 原文地址:https://www.cnblogs.com/sr1993/p/3697848.html
Copyright © 2011-2022 走看看