当前位置:首页 > 代码 > 正文

mfc程序源代码(Mfc编程)

admin 发布:2022-12-19 19:24 151


今天给各位分享mfc程序源代码的知识,其中也会对Mfc编程进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

求助一个用MFC来编写的计算器程序代码

主代码如下。。这个是我自己做的。就怕你看不懂了。。。

不过敢上来问,应该是比较精通的了。。

#include

"stdafx.h"

#include

stdio.h

#include

stdlib.h

#include

windows.h

#include

windowsx.h

#include

"resource.h"

#include

"MainDlg.h"

#define

TURE

1

#define

FALSE

BOOL

WINAPI

Main_Proc(HWND

hWnd,

UINT

uMsg,

WPARAM

wParam,

LPARAM

lParam)

{

switch(uMsg)

{

HANDLE_MSG(hWnd,

WM_INITDIALOG,

Main_OnInitDialog);

HANDLE_MSG(hWnd,

WM_COMMAND,

Main_OnCommand);

HANDLE_MSG(hWnd,WM_CLOSE,

Main_OnClose);

}

return

FALSE;

}

BOOL

Main_OnInitDialog(HWND

hwnd,

HWND

hwndFocus,

LPARAM

lParam)

{

return

TRUE;

}

BOOL

IsInt(TCHAR*

str)

{

int

i=atoi(str);

TCHAR

strtemp[256];

wsprintf(strtemp,"%i",i);

if(strcmp(str,strtemp)==0)

{

return

TURE;

}

else

{

return

FALSE;

}

}

TCHAR

str1[256],str2[256],str3[256];

int

i1,i2,i3;

void

Main_OnCommand(HWND

hwnd,

int

id,

HWND

hwndCtl,

UINT

codeNotify)

{

switch(id)

{

case

IDC_OK:

{

GetDlgItemText(hwnd,IDC_EDIT1,str1,sizeof(str1));

GetDlgItemText(hwnd,IDC_EDIT2,str2,sizeof(str2));

int

i1,i2,i3;

if(!IsInt(str1))

{

MessageBox(hwnd,TEXT("第一个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR);

return

;

}

if(!IsInt(str2))

{

MessageBox(hwnd,TEXT("第二个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR);

return

;

}

i1=atoi(str1);i2=atoi(str2);i3=i1+i2;

wsprintf(str3,"%i",i3);

SetDlgItemText(hwnd,IDC_EDIT3,str3);

}

break;

case

IDC_OK2:

{

GetDlgItemText(hwnd,IDC_EDIT4,str1,sizeof(str1));

GetDlgItemText(hwnd,IDC_EDIT5,str2,sizeof(str2));

if(!IsInt(str1))

{

MessageBox(hwnd,TEXT("第一个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR);

return

;

}

if(!IsInt(str2))

{

MessageBox(hwnd,TEXT("第二个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR);

return

;

}

i1=atoi(str1);

i2=atoi(str2);

i3=i1-i2;

wsprintf(str3,"%i",i3);

SetDlgItemText(hwnd,IDC_EDIT6,str3);

}

break;

case

IDC_OK3:

{

GetDlgItemText(hwnd,IDC_EDIT7,str1,sizeof(str1));

GetDlgItemText(hwnd,IDC_EDIT8,str2,sizeof(str2));

if(!IsInt(str1))

{

MessageBox(hwnd,TEXT("第一个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR);

return

;

}

if(!IsInt(str2))

{

MessageBox(hwnd,TEXT("第二个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR);

return

;

}

i1=atoi(str1);i2=atoi(str2);

i3=i1*i2;

itoa(i3,str3,10);

SetDlgItemText(hwnd,IDC_EDIT9,str3);

}

break;

case

IDC_OK4:

{

GetDlgItemText(hwnd,IDC_EDIT10,str1,sizeof(str1));

GetDlgItemText(hwnd,IDC_EDIT11,str2,sizeof(str2));

if(!IsInt(str1))

{

MessageBox(hwnd,TEXT("第一个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR);

return

;

}

if(!IsInt(str2))

{

MessageBox(hwnd,TEXT("第二个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR);

return

;

}

i1=atoi(str1);

i2=atoi(str2);

i3=i1/i2;

itoa(i3,str3,10);

//else

str3="除不掉";这里仍然有个bug!

SetDlgItemText(hwnd,IDC_EDIT12,str3);

}

break;

case

IDC_OK5:

{

GetDlgItemText(hwnd,IDC_EDIT13,str1,sizeof(str1));

i1=atoi(str1);

itoa(i1,str2,2);

SetDlgItemText(hwnd,IDC_EDIT14,str2);

}

break;

case

IDC_OK6:

{

GetDlgItemText(hwnd,IDC_EDIT15,str1,sizeof(str1));

if(!IsInt(str1))

{

MessageBox(hwnd,TEXT("第一个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR);

return

;

}

if(!IsInt(str2))

{

MessageBox(hwnd,TEXT("第二个数不是整数!"),TEXT("错误"),MB_OK|MB_ICONERROR);

return

;

}

i1=atoi(str1);

itoa(i1,str2,16);

SetDlgItemText(hwnd,IDC_EDIT16,str2);

}

break;

default:

break;

}

}

void

Main_OnClose(HWND

hwnd)

{

EndDialog(hwnd,

0);

}

如何查看MFC源码

mfc.bsc是可以查看MFC源代码的文件,其位置在MFC源代码文件夹下,Visual Studio版本不一样的话,位置也不一样

如果不小心删除了电脑中的mfc源代码?

你如果是手动删除一个已经编写了相应事件代码或者绑定了成员变量的控件,是不会自动为你删除相关的代码的。

根据MFC的结构,和消息机制,以一个按钮为例,如果编辑了事件,有四个地方是有相应的代码的:

1、消息函数。就是你的双击按钮,自动为你添加的那个On....什么函数,如:OnOK()、OnCancel()等。在有些书里,这叫“事件实现源”。

2、类成员。其实,你会发现,这个按钮单击函数(或者你自己添加的消息函数,如双击消息、鼠标移动消息等),是该对话框的一个成员。一般是public的。它是消息传递机制的原说明

vc 如何打开MFC项目源代码

双击xxx.rc文件打开资源编辑器,在资源视图中点击右键添加资源,选择菜单(menu),在菜单行上面添加"文件","帮助"等,然后打开对话框资源,在属性窗口中找到"menu"这项,选择刚刚建立的菜单资源即可,

f5运行就看到了

MFC源代码是如何链接到程序中的

1. 预处理

预处理相当于根据预处理指令组装新的C/C++程序。经过预处理,会产生一个没有宏定义,没有条件编译指令,没有特殊符号的输出文件,这个文件的含义同原本的文件无异,只是内容上有所不同。

读取C/C++源程序,对其中的伪指令(以#开头的指令)进行处理

①将所有的“#define”删除,并且展开所有的宏定义

②处理所有的条件编译指令,如:“#if”、“#ifdef”、“#elif”、“#else”、“endif”等。这些伪指令的引入使得程序员可以通过定义不同的宏来决定编译程序对哪些代码进行处理。预编译程序将根据有关的文件,将那些不必要的代码过滤掉。

③处理“#include”预编译指令,将被包含的文件插入到该预编译指令的位置。

(注意:这个过程可能是递归进行的,也就是说被包含的文件可能还包含其他文件)

删除所有的注释

添加行号和文件名标识。

以便于编译时编译器产生调试用的行号信息及用于编译时产生的编译错误或警告时能够显示行号

保留所有的#pragma编译器指令

2. 编译

将预处理完的文件进行一系列词法分析、语法分析、语义分析及优化后,产生相应的汇编代码文件。

3. 汇编

将编译完的汇编代码文件翻译成机器指令,并生成可重定位目标程序的.o文件,该文件为二进制文件,字节编码是机器指令。

汇编器是将汇编代码转变成机器可以执行的指令,每一个汇编语句几乎都对应一条机器指令。所以汇编器的汇编过程相对于编译器来讲比较简单,它没有复杂的语法,也没有语义,也不需要做指令优化,只是根据汇编指令和机器指令的对照表一一翻译即可。

4. 链接

通过链接器将一个个目标文件(或许还会有库文件)链接在一起生成一个完整的可执行程序。

由汇编程序生成的目标文件并不能立即就被执行,其中可能还有许多没有解决的问题。

例如,某个源文件中的函数可能引用了另一个源文件中定义的某个符号(如变量或者函数调用等);在程序中可能调用了某个库文件中的函数,等等。所有的这些问题,都需要经链接程序的处理方能得以解决。

链接程序的主要工作就是将有关的目标文件彼此相连接,也就是将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的这些目标文件成为一个能够被操作系统装入执行的统一整体。

至此,大致经过这几个步骤,一个完整的可执行程序产生了。

MFC程序它的全部源代码在哪里找?

6.0的

D:\Program Files\Microsoft Visual Studio\VC98\MFC

2003的

D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc

可能安装目录不同,位置也不同,你可以进高度模式进去看源文件,

2003也可以在classView中看到

mfc程序源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Mfc编程、mfc程序源代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/20226.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载