`
isiqi
  • 浏览: 16050384 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

使用DialogBox创建Windows程序

阅读更多

使用DialogBox创建Windows程序

一般的使用SDK编写的WIN32程序(使用WinMain和WindProc进行消息处理),
生成的EXE文件都比较小,但是也会存在不足,即创建的窗口,界面的控件布局比较麻烦。
为此可以使用资源的方法解决窗口布局麻烦的问题,即在资源文件里面建好窗口和菜单,
然后再调用DiaglogBox函数创建Windows窗口,再在DLGPROC里面处理Window消息。

函数声明如下:
int DialogBox(
HINSTANCE hInstance,
LPCTSTR lpTemplate,
HWND hWndParent,
DLGPROC lpDialogFunc
);
HINSTANCE hInstance:为资源句柄
LPCTSTR lpTemplate:指向需要创建的窗口模板的长指针,可用MAKEINTRESOURCE来通过窗口ID获取
HWND hWndParent:父窗口句柄
DLGPROC lpDialogFunc:窗口的消息处理函数

窗口消息处理的回调函数定义如下:
BOOL CALLBACK DialogProc(
HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
这里,如果返回为TRUE则表示消息已经处理完了,如果是FALSE,表示还没处理好,系统会根据消息类型,
进行默认的处理。

调用DialogBox的时候,会创建资源里面的窗口,创建完后即进入所创建窗口的消息循环函数里面,
直到调用EndDialog()函数返回的时候,才会返回DialogBox函数。

注意,当使用SHCreateMenuBar的时候,如果创建的菜单是资源文件里面的,必须设置SHMENUBARINFO中
的dwFlags为SHCMBF_HMENU!

分享到:
评论

相关推荐

    window32 API大全 win32编程

    应用程序使用Win32光标函数可以创建、加载、显示、移动、限制和删除光标。 对话框函数(Dialog Box) 对话框是应用程序创建的一个临时窗口,用于获取用户的输入。应用程序通常使用对话框向用户显示一些命令提示...

    Visual C++/MFC学习笔记.doc

    VC入门1.1 如何学好VC1.2 理解Windows消息机制1.3 利用Visual C++/MFC开发Windows程序的优势1.4 利用MFC进行开发的通用方法介绍1.5 MFC中常用类、宏、函数介绍第二章 图形输出2.1 和GUI有关的各种对象2.2 在窗口中...

    VC++初级编程.zip

    1.3 利用Visual C++/MFC开发Windows程序的优势 1.4 利用MFC进行开发的通用方法介绍 1.5 MFC中常用类、宏、函数介绍 第二章 图形输出 2.1 和GUI有关的各种对象 2.2 在窗口中输出文字 2.3 使用点、刷子、笔进行绘图 ...

    计算机应用模型机研制技术

    6.6 通用对话框( CommonDialog Box)和通用控件 6.7 动态链接库 6.8 分时的多进程和多线程 6.8.1 创建线程的函数 6.8.2 有关创建线程的其他函数 6.9 对环境变量的操作 6.10 执行可执行文件 6.10.1 Shell调用 6.10.2 ...

    Visual C++MFC入门教程

    1.3 利用Visual C++/MFC开发Windows程序的优势 4 1.4 利用MFC进行开发的通用方法介绍 5 1.5 MFC中常用类,宏,函数介绍 5 第二章 图形输出 6 2.1 和GUI有关的各种对象 6 2.2 在窗口中输出文字 8 2.3 使用点,刷子,...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    序并没有结束,我们可以打开windows 任务管理器,可以看到我们的程序仍在执 行。 因为return a.exec();一句表示只要主窗口界面不退出,那么程 序就会一直执行。所以只有用第一种方法,将该语句也放到if 语句中,而在...

    微型嵌入式GUI演示程序

    DialogWindow 对话窗口 Button 按钮,多种风格 TextBox 单行文本框,可设置字体,背景颜色等 完全简体中文输入/显示/编辑 支持 EditBox 多行文本框,可设置字体,背景颜色等 完全简体中文输入/显示/编辑 支持 ...

    Zebra_Dialog:一个小巧,紧凑且高度可配置的jQuery插件,用于创建漂亮的模态对话框

    斑马对话 一个小巧,紧凑,易于移动且高度可配置的jQuery插件,用于创建响应式模态对话框 模态窗口是子窗口,要求用户与其进行交互,然后才能继续使用父应用程序。 模态窗口是最常用的用户界面元素之一,用于命令...

    delphi经典编程入门

    它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发...

    Visual C++ MFC入门教程[TXT]

    |------ 1.3 利用Visual C++/MFC开发Windows程序的优势 |------ 1.4 利用MFC进行开发的通用方法介绍 |------ 1.5 MFC中常用类,宏,函数介绍 +-- 第二章 图形输出 |------ 2.1 和GUI有关的各种对象 |------ 2.2 在...

    Visual_C++MFC入门教程

    |------ 1.3 利用Visual C++/MFC开发Windows程序的优势 |------ 1.4 利用MFC进行开发的通用方法介绍 |------ 1.5 MFC中常用类,宏,函数介绍 +-- 第二章 图形输出 |------ 2.1 和GUI有关的各种对象 |------ 2.2...

    VC++6.0 从入门到精通

    |------ 1.3 利用Visual C++/MFC开发Windows程序的优势 |------ 1.4 利用MFC进行开发的通用方法介绍 |------ 1.5 MFC中常用类,宏,函数介绍 +-- 第二章 图形输出 |------ 2.1 和GUI有关的各种对象 |------ 2.2 在...

    GTK+2.0 中文版(基于GNOME官方文档翻译)

    滚动窗口 Scrolled Windows 按钮盒 Button Boxes 工具栏 Toolbar 笔记本 Notebooks 菜单构件 手工创建菜单 手工菜单示例 使用套件 套件示例 无文档构件 快捷标签 Accel Label 选项菜单 Option ...

    Visual C++ 编程资源大全(英文源码 表单)

    33.zip Creating an expanding dialog 创建一个可扩展的对话框(15KB)<END><br>34,34.zip Expanding/Contracting Dialog Box 扩展/缩小对话框(24KB)<END><br>35,35.zip CFileDialog class that only ...

    VC++常用功能实例

    TreeList control中使用check box 103 有关属性对话框(property sheet )的几个提示 108 在MFC加入"这是什么?"的帮助提示 111 精通工具条 112 如何改变视窗的背景颜色 112 为MFC应用程序添加全屏幕显示功能 112 VC...

    VC++常用的共用函数100多页

    TreeList control中使用check box 103 有关属性对话框(property sheet )的几个提示 108 在MFC加入"这是什么?"的帮助提示 111 精通工具条 112 如何改变视窗的背景颜色 112 为MFC应用程序添加全屏幕显示功能 112 VC...

    GTK+2.0中文教程 html格式

    滚动窗口 Scrolled Windows 按钮盒 Button Boxes 工具栏 Toolbar 笔记本 Notebooks 菜单构件 手工创建菜单 手工菜单示例 使用套件 套件示例 无文档构件 快捷标签 Accel Label 选项菜单 Option Menu ...

    C++MFC教程

    |------ 4.D 利用AppWizard创建并使用ToolBar StatusBar Dialog Bar |------ 4.E General Window |------ 4.F 关于WM_NOTIFY的使用方法 +-- 第五章 对话框 |------ 5.1 使用资源编辑器编辑对话框 |------ 5.2 创建有...

Global site tag (gtag.js) - Google Analytics