在一个按钮的处理函数里面怎么调用自己定义的一个类里面的函数?

swordkm 2012-07-14 12:01:53
我自定义的类// huanfang.cpp: implementation of the huanfang class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Pdz.h"
#include "huanfang.h"


#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#define MAX_INDEX 100

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

huanfang::huanfang()
{

}

huanfang::~huanfang()
{

}

void huanfang::swap(int *a, int *b)
{
int t;
t=*a;
*a=*b;
*b=t;
}

void huanfang::QuickSort(int a[], int l, int r)
{
int i=l; /*从左至右的游标*/
int j=r+1; /*从右到左的游标*/
int pivot=a[l];
if (l >= r) return;
/*把左侧>= pivot的元素与右侧<= pivot 的元素进行交换*/
while (1)
{
do
{/*在左侧寻找>= pivot 的元素*/
i = i + 1;
} while (a[i] < pivot);
do
{/*在右侧寻找<= pivot 的元素*/
j = j - 1;
} while (a[j] > pivot);
if (i >= j) break; /*未发现交换对象*/
swap(&a[i],&a[j]);
}

/*设置p i v o t*/
a[l] = a[j];
a[j] = pivot;
QuickSort(a, l, j-1); /*对左段排序*/
QuickSort(a, j+1, r); /*对右段排序*/
}

void huanfang::Huanf(int Array[][MAX_INDEX], int n)
{
int i,j;
int a,b,m;
int tempArray1[MAX_INDEX];
int tempArray2[MAX_INDEX];
a=n/2;
b=a+1;
m=n%4;
switch(m)
{
case 0:
case 2:
/*穿心对调*/
for(i=0;i<n;i++)
for(j=0;j<n/2;j++)
{
if(i<n/2)
{
if(i%2==1&&Array[i][j]%2==0)/*偶行换偶*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
else if(i%2==0&&Array[i][j]%2==1)/*奇行换奇*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
}
else
{
if(i%2==1&&Array[i][j]%2==1)/*偶行换奇*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
else if(i%2==0&&Array[i][j]%2==0)/*奇行换偶*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
}

}
/*End穿心对调*/
if(m==2)
{
for(i=0;i<n/2;i++)
{
if((i!=0)&&(i!=a-1)&&(i!=b-1)&&(i!=n-1))
{
swap(&Array[i][a-1],&Array[n-1-i][a-1]);
swap(&Array[b-1][i],&Array[b-1][n-1-i]);
}
}
swap(&Array[0][a-1],&Array[0][b-1]);
swap(&Array[a-1][0],&Array[b-1][0]);
swap(&Array[2][0],&Array[2][n-1]);
swap(&Array[0][2],&Array[n-1][2]);
}
break;
case 1:
case 3:
/*穿心对调*/
for(i=0;i<n;i++)
for(j=0;j<n/2;j++)
{
if(i<n/2)
{
if(i%2==1&&Array[i][j]%2==0) /*偶行换偶*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
else if(i%2==0&&Array[i][j]%2==0)/*奇行换奇*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
}
else if(i>n/2)
{
if(i%2==1&&Array[i][j]%2==0)/*偶行换偶*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
else if(i%2==0&&Array[i][j]%2==0)/*奇行换奇*/
{
swap(&Array[i][j],&Array[n-1-i][n-1-j]);
}
}
}
/*End穿心对调*/
/*重排米字*/
for(i=0;i<n;i++)
{
tempArray1[i]=Array[i][i];
tempArray2[i]=Array[a][i];
}

QuickSort(tempArray1,0,n-1);
QuickSort(tempArray2,0,n-1);
for(i=0;i<n;i++)
{
Array[i][i]=tempArray2[i];
Array[a][i]=tempArray1[i];
}
for(i=0;i<n;i++)
{
tempArray1[i]=Array[i][n-1-i];
tempArray2[i]=Array[i][a];
}
QuickSort(tempArray1,0,n-1);
QuickSort(tempArray2,0,n-1);
for(i=0;i<n;i++)
{
Array[i][n-1-i]=tempArray2[i];
Array[i][a]=tempArray1[i];
}
/*End重排米字*/

if(m==3)
{
for(i=0;i<n/2;i++)
{
if((i!=a-1)&&(i!=b-1)&&(i!=a+1))
{
swap(&Array[i][a-1],&Array[n-1-i][a-1]);
swap(&Array[a-1][i],&Array[a-1][n-1-i]);
}
}
swap(&Array[a-1][a-1],&Array[a+1][a+1]);
swap(&Array[a-1][b-1],&Array[a+1][b-1]);
}
break;
default:
break;
}
return;
}

void huanfang::main()
{
int Ne[MAX_INDEX][MAX_INDEX];
int i,j,n,m_nNumdigit;
while(1)
{
n=m_nNumdigit;
if(n==0)
break;

/*数组赋初值*/
for(i=0;i<n;i++)
for(j=0;j<n;j++)
Ne[i][j]=i*n+(j+1);

Huanf(Ne,n);

for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("%-4d",Ne[i][j]);
if(j==n-1)
printf("\n\n");
}
printf("\n\n");
getch();
}
}
[color=#FF0000]在按钮的处理函数里面应该怎么调用啊?????[/color]
...全文
225 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
swordkm 2012-07-14
  • 打赏
  • 举报
回复
你能帮我看看我自己定义的这个类有没有问题?我怕是这个问题,因为我通过定义该类对象后,出现的错是function does not take 0 parameters。
sunxc123 2012-07-14
  • 打赏
  • 举报
回复
通过定义该类的对象或者指向该类的指针 都可以
牛 魔 王 2012-07-14
  • 打赏
  • 举报
回复
创建对象,调用类的方法就如楼上2位所说。还有什么问题?
qq1766433514 2012-07-14
  • 打赏
  • 举报
回复
在按钮函数里创建那个类,用类名.函数名(参数);来调用
如果按钮函数在类中,按钮函数申明时加上static前缀,调用类中函数用this->函数名(参数);
贪玩的老鼠 2012-07-14
  • 打赏
  • 举报
回复
huanfang有用的就是两个排序!
定义该类对象后,出现的错是function does not take 0 parameters
如果你调用Huanf,QuickSort你需要传入相应的参数,如果你没传的话就会出现上面的提示
zgl7903 2012-07-14
  • 打赏
  • 举报
回复

#include "youClass.h"

void CXXXXClass::OnBnClickXXXButton()
{
youClass myClass;
myClass.Function();
}
swordkm 2012-07-14
  • 打赏
  • 举报
回复
调用Huanf,QuickSort,swap需要传入相应的参数,应该怎么传入呢?我是设置了一个编辑框来输入数字,我定义了编辑框的一个变量为m_nNumber,需要怎么样把这个数字传进去呢?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧