学写基于对话框的程序

用汇编写基于对话框的程序,可以和写VB程序一样清晰简单,并且相当多的程序都是这样的结构。用VB写的所以程序几乎都是这样的

。设计程序界面

和在VC中一样,界面(对话框已经各种控件)一般是以资源的方式存在的。编辑资源文件完全可以使用VC的资源编辑器。但是熟悉

一下资源文件的写法及意义是编程所必须的。下面是一个资源文件的例子:

#include "\masm32\include\resource.h"
#define IDC_EDIT 3000
#define IDC_BUTTON 3001
#define IDC_EXIT 3002
MyDialog DIALOG 10, 10, 205, 60
STYLE 0x0004 | DS_CENTER | WS_CAPTION | WS_MINIMIZEBOX |
WS_SYSMENU | WS_VISIBLE | WS_OVERLAPPED | DS_MODALFRAME | DS_3DLOOK
CAPTION "我的对话框"
{
EDITTEXT IDC_EDIT, 15,17,111,13, ES_AUTOHSCROLL | ES_LEFT
DEFPUSHBUTTON "显示编辑框中的内容", IDC_BUTTON, 141,10,52,13
PUSHBUTTON "退出程序", IDC_EXIT, 141,26,52,13
}

记住,在使用QE时为了使得编译成功,必须将它保存为rsrc.rc这个文件名(使用命令行就无所谓了)。选择Project->Compile Resource File。资源文件就编译成功了,就可以被连接使用了。建议你用VC的资源编辑器打开这个资源文件看看。

第一行的#include "\masm32\include\resource.h"就和C一样,是包含一个头文件,这个文件中有各种常数的定义,如    

PUSHBUOTTON等,感兴趣的话,可以打开这个文件看看。

接下来定义了一些常数,就和C中的用法一样,是为了增强程序的可读性。

"MyDialog DIALOG 10, 10, 205, 60"这一句用DIALOG这个关键字定义一个名为MyDialog的对话框,名字当然可以随便取。后面  的4个数字是对话框的位置大小,一般是在资源编辑器中调试。

"STYLE 0x0004 | DS_CENTER | WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU | WS_VISIBLE | WS_OVERLAPPED | DS_MODALFRAME | DS_3DLOOK "是描述对话框的风格的。如WS_MINIMIZEBOX是说有最小化按钮。DS_3DLOOK是说对话框是3D外形

等等。这些一般在资源编辑器中改动,各种常数的意义,可以在MSDN中查找。

CAPTION "我的对话框"就是指定对话框的标题是"我的对话框"

再下面用{}框起来的就是对话框中的各个控件。这个例子中用到了EDITTEXT编辑框控件,PUSHBUTTON按钮控件,

DEFPUSHBUTTON默认按钮控件(默认选中状态),IDC_EDIT,IDC_EXIT,IDC_BUTTON分别是他们3个的ID号,注意上面的定义,是不

能相同的。不一定非要使用#define来预先定义,使用数字也可以,前者可以增强程序的可读性。其他的很多控件如单选框,复

选框等等的使用可以在资源编辑器下编辑后查看源代码获得。

程序的界面就设计完了,接下来是设计程序。

时间: 2024-09-02 14:38:28

学写基于对话框的程序的相关文章

c++-win32编程中基于对话框的程序和普通的窗口程序有什么区别?

问题描述 win32编程中基于对话框的程序和普通的窗口程序有什么区别? 很疑惑,既然窗口可以直接编写,为什么还要基于对话框来写程序? 解决方案 这就好比你将滚动条用于窗口一部分和使用滚动条控件,效果最终一样,但是后者Windows会为你处理一些鼠标和键盘上的逻辑,使得编程更容易,对话框中一般使用大量控件,Windows会为你处理比如输入焦点转移.键鼠等逻辑.

C++基于对话框的程序,运行时候编辑框不显示颜色,字体也不变化,怎么回事?

问题描述 C++基于对话框的程序,运行时候编辑框不显示颜色,字体也不变化,怎么回事? 我添加三处代码如下:就是不显示颜色和字体 HBRUSH CADODataBase2Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { try { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change any attributes of the DC here if

C++基于对话框的程序的框架实例_C 语言

本文实例讲述了C++基于对话框的程序的框架.分享给大家供大家参考.具体如下: resource.cpp源文件如下: 复制代码 代码如下: #include "resource.h"    CMyApp theApp;    BOOL CMyApp::InitInstance()  {      CMainDialog dlg;      m_pMainWnd = &dlg;   //给m_pMainWnd 主窗口      dlg.DoModal();      return

请问怎么在基于对话框的程序中加入IE控件?

问题描述 我在项目开始的时候选择activeX控件了,但是不知道该怎么加一个IE控件到对话框中呢?我看"项目"那里没有啊. 解决方案 解决方案二:有没有人帮帮我啊,我才开始学vc.net的解决方案三:应该有一个IE的图标的...MicrosoftWeb浏览器控件解决方案四:直接在对话框上右击,选插入"Activex控件",选择"MicrosoftWeb浏览器"控件就行了解决方案五:工具菜单->选择工具箱项->COM组件->选中&

如何给基于对话框的应用加启动画面

很多基于对话框的程序都有一个启动画面,那么如何为自己的对话框程序也加一个这样的画面呢?本文将一步一步教你实现每一个细节.其实VC++开发环境中有一个现成的 Splash Screen 组件,用这个组件很容易实现基于框架类(也就是CMainFrame)的程序的启动画面,那么如果是对话框程序,没有框架类怎么办呢?所以这个组件功能不是想象的那么强.要实现基于对话框应用程序的启动画面必须另辟蹊径.本文将定制一个C++类:CSplashWnd,用这个类可以增强原来的 Splash Screen 组件功能.

mfc-基于MFC对话框的程序中如何打开一个单文档

问题描述 基于MFC对话框的程序中如何打开一个单文档 我是MFC的初学者,现在遇到了一个问题,就是如何在基于对话框的程序中,如何通过一个对话框中的按钮打开一个单文档.(我的目的是想在打开的单文档中绘制折线图),求各位大神指点 解决方案 你干嘛用基于对话框的程序,你完全可以创建一个基于单文档的程序,再添加对话框,这比你先创建一个对话框的程序,再添加文档视图支持简单的多. 解决方案二: 在MFC下使用OpenGL的一个简单的例子(基于单文档程序)MFC应用程序类型:单文档.多文档与基于对话框MFC窗

基于对话框的简单双缓冲绘图框架

   基于文档视图结构程序的双缓冲绘图框架比较多,那么如何在对话框上绘图呢?以前通常的做法是拖一个静态文本控件或其它控件当作绘图区域或者在这个区域上创建一个视图出来.看了微软的一个示例程序DrawCli(一个绘图的单文档程序),产生了一些灵感,决心把它移植到对话框绘图上,摸索了一下,搞了一个基于对话框的简单双缓冲绘图框架.      具体代码如下,对话框头文件代码:      [cpp] view plaincopy #include <vector>   //@brief 直线结构体   s

vc++6 0-想在基于对话框的MFC程序里,根据不同用户禁用某些子菜单

问题描述 想在基于对话框的MFC程序里,根据不同用户禁用某些子菜单 用户分权限分为高.低譬如, 如果用户权限为高,则考勤管理这个菜单可以用, 如果用户权限为低,则考勤管理这个菜单不可以用 越详细越好,谢谢啦 解决方案 详细不起来,你怎么判断的权限要结合你现有的程序才能知道怎么写. 如果需要详细代码,请采纳我的回答,并且上传代码到网盘,然后贴出地址. 解决方案二: ModifyMenu()函数可使设置菜单项,低级用户时把那一项设置为不可用就好了. RemoveMenu()函数可删除菜单项, Del

24色位图,字母图片验证码识别,基于MFC对话框的程序,在线求助,高手帮帮忙

问题描述 24色位图,字母图片验证码识别,基于MFC对话框的程序,在线求助,高手帮帮忙 24色位图(如下图)字母图片验证码识别,基于MFC对话框的程序,在线求助,高手帮帮忙