mfc程序:如何把一个纯C++改写成MFC程序啊?

如何把一个纯C++改写成MFC程序啊?2007-09-23 | Filed Under by admin
/////////////////////////////////////////////////////////////////////////////////////
#include<iostream.h>
/////////////////////////////////////////////////////////////////////////////////////
char mingwen[100],miwen[100];
/////////////////////////////////////////////////////////////////////////////////////
void main()
{
char sg[6][6]={
{ ,g,f,e,d,c},
{g,q,l,b,d,x},
{f,z,t,n,v,g},
{e,c,e,r,p,f},
{d,h,y,m,o,i},
{c,s,w,a,u,k}
};//给二维数组赋值,作为被查询对象。

/////////////////////////////////////////////////////////////////////////////////////
for(int i=0; i<6;i++)//输出sg[j]。
{
cout <<endl;
for(int j=0;j<6;j++)
{
cout << sg[j]<< ;
}
}
cout << endl;
cout <<"请连续输入(不包括j)的明文:"<<endl;
int k,l;
cin >> mingwen;
for(int mw=0;mingwen[mw]>63;mw++)
{

for(k=1;k<6;k++)
{
for(l=1;l<6;l++)
{

if(sg[k][l]==mingwen[mw])//查找是否有匹配字符

cout<<sg[k][0]<<sg[0][l];//输出被匹配字符所在行
}//列所对应的字母。比如输入‘q’则输出“gg”,若输入“ql”
} // ,则输出"gggf",依次类推。。。
}cout<<endl;
cout <<"输入你所需要解密的密文:"<<endl;
cin >> miwen;

for(mw=0;miwen[mw]>63;mw+=2)//a64 a96
{
for(k=1;k<6;k++)
{
for(l=1;l<6;l++)
{
if(sg[k][0]==miwen[mw]&&sg[0][l]==miwen[mw+1])
cout<<sg[k][l];
}
}
}
cout<<endl;
}

这是用纯c++编程实现的一个简单的加密,解密程序。
本人想用mfc来实现。要求基于对话框来实现,其中有些不懂。如下语句:
cout <<"请连续输入(不包括j)的明文:"<<endl;//在mfc中用什么语句代替啊?
int k,l;
cin >> mingwen;//在mfc中用什么语句代替啊?
for(int mw=0;mingwen[mw]>63;mw++)
{

for(k=1;k<6;k++)
{
for(l=1;l<6;l++)
{

if(sg[k][l]==mingwen[mw])//查找是否有匹配字符
//在mfc中用什么语句代替啊?
cout<<sg[k][0]<<sg[0][l];//输出被匹配字符所在行
}//列所对应的字母。比如输入‘q’则输出“gg”,若输入“ql”
} // ,则输出"gggf",依次类推。。。
}cout<<endl;

以上用mfc来改写怎么弄好啊?

相关提议:

发表者:thisisll
没仔细看你的

对话框你可以直接输出
得到dlg的dc
用dc textout就可以
也可以写到edit里,static里
这个更简单,直接
setdlgitemtext()
发表者:goodboyws 你要的应该是算法部分吧,直接移过去就可以了
发表者:oyljerry 算法部分直接port,然后compile,有什么问题,再改改
发表者:mitsmi 就改改界面而已嘛
发表者:andy_cai 最简单的对话框的话
把mian函数里的内容放到对话框的确认按钮函数onbnclickedok里
cout那个你只要在对话框中中输入部分加注释文字而已
然后text框中输入,程序中getdlgitemtext函数获取
再赋值给mingwen这个数组(代替了cin语句)

其他类似

就这样子而已,粗略看了一下,其他都不用改的

楼主可能最基本的对话框都没做过的样子,个人认为mfc比纯c简单的多,实践一下就会了
发表者:ddmor
其实楼主的意思就是将控制台程序改成有windows界面的程序而已。当然对话框模式编写要快捷一点,从控制台到图形界面其实也没有什么变化,只是用户输入输出需要自己来实现,这样也复合图形界面的本质嘛,否则不要求输入输出界面好看,用控制台程序就很实惠啦。
cout <<"请连续输入(不包括j)的明文:"<<endl;//在mfc中用什么语句代替啊?
楼上的高手都讲到了有几种方式。
1。第一种自己控制文本的输出
就是用cdc类的textout函数输出文本到对话框窗体中,这种方式很简单,不过美中不足的是需要在ondraw中使用,否则窗体一刷新就没有了,而且还有一个弱点是只能打印单行文本,textout是不能识别cstring中的回车换行符号的,那就只有自己动动脑筋,分隔一下了。
2。使用标准文本控件
使用static,listbox,editor等控件来完成文本输出和输入。输入可以自己再写一个对话框来完成。文本的输出就用setdlgitemtext(),文本的获取就用getdlgitemtext()就可以了。相信楼主很快就会掌握
3。重定义标准输入输出
这种方式当然就是自己定义一个标准输入输出窗体类来完成了。像很多文字编辑软件都有这样的应用,使用wincvs的朋友就可以体会到她的命令行界面的功能的强大,还有其他软件比如ultraedit,emeditor,editplus,vc6的信息输出也采用这种技术。这方面的信息你可能需要从网上找个例子参考来写了,我这里就不详说了。

发表者:mackz 在对话框上,输入输出用编辑框实现,其余差不多。

发表者:mackz 你这个mingwen在哪里赋值了?

发表者:yhz 最简单的办法就是你先把你的c++代码用你熟悉的编译器编译成一个console的exe程序。
然后在gui里面用createpipe创建匿名管道,重定向stdout、stdin、stderr。再用createprocess调用你的程序,然后你只管从管道里面读和往管道里写就行了。

这样界面和内核分离,以后要有什么改动的,也方便。

发表者:goodluckyxl cstring operator "[]"调用getat()方法
返回一个tchar
char = cstring or char = cstring.getat(i);

你可以使用
cstring = char; //因为cstring 重载了 = 可以转化


[url=http://mail.qq.com/zh_CN/htmledition/announcement_qzone.html][ft=#FFFFFF,,]此旍
Tags:  mfc退出程序 mfc程序设计 mfc应用程序 mfc程序

延伸阅读

最新评论

发表评论