Win32-Application的窗口和对话框

Win32 Application,没有基于MFC的类库,而是直接调用C++接口来编程。

 

一、弹出消息窗口

(1)最简单的,在当前窗口中弹出新窗口。新窗口只有“YES”按钮。

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR     lpCmdLine,int       nCmdShow)
{MessageBox(NULL, "我的Win32程序", "HelloWorld", MB_OK);return 0;
}

 

(2)获取已经打开的窗口,并在该窗口中弹出新窗口,而且新窗口有“YES/NO/CANCEL”按钮,可以捕获该返回值。

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR     lpCmdLine,int       nCmdShow)
{// TODO: Place code here.HWND hWnd = ::FindWindow(NULL, "无标题 - 记事本");int nRet = MessageBox(hWnd, "我的Win32程序", "HelloWorld", MB_YESNOCANCEL|MB_ICONQUESTION);if(IDYES == nRet){MessageBox(hWnd, "你点击了\"是\"按钮", "返回值", 0);    }else if(IDNO == nRet){MessageBox(hWnd, "你点击了\"否\"按钮", "返回值", 0);    }else{MessageBox(hWnd, "你点击了\"取消\"按钮", "返回值", 0);    }return 0;
}

 

二、对话框

(1)通过DialogBox新增一个对话框,并设置对话框的消息处理回调函数MainProc,接收对话框的返回值并做相应处理:

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR     lpCmdLine,int       nCmdShow)
{int nRet;nRet = DialogBox(hInstance, (LPCSTR)IDD_DIALOG1, NULL, MainProc);if(IDCANCEL == nRet){MessageBox(NULL, "CANCEL", "返回值", 0);return -1;}return 0;
}

 

 

回调函数中,通过GetDlgItemInt获取对话框的输入整型值、通过SetDlgItemInt设置对话框的输出整型值(如果是字符串,Int改为Text),通过EndDialog关闭对话框,并返回不同的返回值:

BOOL CALLBACK MainProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam
)
{OutputDebugString("测试运行状态\n");if(WM_COMMAND == uMsg){if(LOWORD(wParam) == IDCANCEL){EndDialog(hwndDlg, IDCANCEL);return IDCANCEL;}else if(LOWORD(wParam) == IDOK){int nLeft = GetDlgItemInt(hwndDlg, IDC_LEFT, NULL, TRUE);int nRight = GetDlgItemInt(hwndDlg, IDC_RIGHT, NULL, TRUE);int nResult = nLeft + nRight;SetDlgItemInt(hwndDlg, IDC_RESULT, nResult, TRUE);}}return FALSE;
}

 

备注:

  对话框的资源属性,可以编辑弹出位置、对其方式、显示效果、是否可编辑等等。

  Ctrl+D,可以编辑对话框的焦点顺序。

转载于:https://www.cnblogs.com/ruanchao/p/8370540.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python面试题总结(4)--数据类型(列表)

1. 已知 AList [1,2,3,1,2],对 AList 列表元素去重,写出具体过程。 答: AList [1,2,3,1,2] BList set(AList)print(BList) print(list(BList))输出结果: {1, 2, 3} [1, 2, 3]2. 如何实现 “1,2,3” 变成 [“1”,“2”,“3”…

项目团队要以十当一

如何建立起一支高效的团队,并有效的管理团队,一直是IT项目经理津津乐道的话题。任何一个IT项目经理对此都有自己一番不同的见解,根据自己团队特点,项目经理正在用自身独有的管理艺术改变着自己的团队。项目团队要以十当一&#xf…

Centos中配置环境变量

以Java的开发环境Jdk为例。 将jdk-9.0.1放置在/usr/local下(UNIX规范),然后我们将jdk配置到环境变量中去。 $ mv jdk-9.0.1 /usr/local $ vim /etc/profile 修改 /etc/profile ,最底部加入以下内容 export JAVA_HOME/usr/local/jd…

python面试题总结(5)--数据类型(字典)

1. 字典操作中 del 和 pop 有什么区别 答:del 可以根据索引(元素所在位置)来删除的,没有返回值。 pop 可以根据索引弹出一个值,然后可以接收它的返回值。 参考一 参考二 2. 按照字典的内的年龄排序 d1 [ {‘name’…

js下载文件 java_[Java教程]使用js实现点击按钮下载文件

[Java教程]使用js实现点击按钮下载文件0 2016-11-11 19:02:54有时候我们在网页上需要增加一个下载按钮,让用户能够点击后下载页面上的资料,那么怎样才能实现功能呢?这里有两种方法:现在需要在页面上添加一个下载按钮,点…

underscore.js源码研究(5)

概述 很早就想研究underscore源码了,虽然underscore.js这个库有些过时了,但是我还是想学习一下库的架构,函数式编程以及常用方法的编写这些方面的内容,又恰好没什么其它要研究的了,所以就了结研究underscore源码这一心…

人心散了、项目必然要败

最近接手一个项目,是从半路上接过来的。按照常理,只要脑子没被驴踢,是不会接人家的烂摊子的。我之所以接这个项目,一方面是因为这个项目中的开发人员是我部门的人(本人是部门主管),另一方面是因…

国家自科委管文科学部认定的国内30种重要期刊

国家自科委管文科学部认定的国内30种重要期刊 A类刊物(22种) 1、管理科学学报(双月刊) 2、系统工程理论与实践(月刊) 3、管理世界(月刊) 4、数量经济技术经济研究(月刊&a…

面向对象的四个要点

•把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件•把所有对象都划分成类(class)。•按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。•对象彼此间仅能通过发送消息互相联系。

Django二次开发对接FastDFS

1.自定义文件存储器类 配置文件settings中加入如下配置 # 设置Django的文件存储类、(名字固定) DEFAULT_FILE_STORAGEutils.fdfs.storage.FDFSStorage# 设置fdfs使用的client.conf文件路径(名字自己定义) FDFS_CLIENT_CONF./util…

微信支付 java 集成案例_Spring Boot项目中集成微信支付v3

1. 前言最近忙的一批,难得今天有喘气的机会就赶紧把最近在开发中的一些成果分享出来。前几日分享了自己写的一个微信支付V3的开发包payment-spring-boot-starter,就忙里偷闲完善了一波。期间给微信支付提交了6个BUG,跟微信支付的产品沟通了好…

单挑力扣(LeetCode)SQL题:1308. 不同性别每日分数总计

相信很多学习SQL的小伙伴都面临这样的困境,学习完书本上的SQL基础知识后,一方面想测试下自己的水平;另一方面想进一步提升,却不知道方法。 其实,对于技能型知识,我的观点一贯都是:多练习、多实…

需求与范围驾驭深刻反省总结

每天都在讲范围、说需求,真的到了想整理出点什么的时候,却一下子不知从何说起。也许是熟悉麻痹症吧。根据我的破经历,在需求方面有几个是最搞人的,只要我们方法得当,虽然不一定能够完全驾驭,但起码可以改善…

16. vim

vim编辑器是vi的升级版本,带颜色显示安装yum install -y vim-enhanced将passwd文件复制到其他目录下,vim后没有颜色 一般模式上下左右方向键或kjhl四个键移动光标n方向键 向特定方向移动n位ctrl b 或 pageup 向上翻页ctrl f 或 pagedown 向下翻页0或sh…

软件生命周期

软件生命周期由软件定义、软件开发和运行维护 ( 也称为软件维护 )3 个时期组成,每个时期又进一步划分成若干个 阶段 。

Jmeter(三)_配置元件

HTTP Cookie Manager 用来存储浏览器产生的用户信息 Clear Cookies each Iteration:每次迭代请求,清空cookies,GUI中定义的任何cookie都不会被清除。Implementation:默认HC4CookieHandlerCookie Policy:将用于管理Cook…

山寨版项目管理经验小结

不知道这个标题是否合适。 忙了互联网,再忙作软件,今天好不容易闲下来,写点最近总结的一些经验。最近在和北京几家大的软件公司的合作过程中,也许我所看到的,可能不代表全部,但是值得从事这个行业的人重视。…

Django项目--首页静态化

0前言 1.使用Celery生成静态页面 task.py中新增任务函数generate_static_index_html(),任务函数生成静态页面。 app.task def generate_static_index_html():产生首页静态页面# 获取商品的种类信息types GoodsType.objects.all()# 获取首页轮播商品信息goods_bann…

C语言指针,申请、释放内存,线程

2019独角兽企业重金招聘Python工程师标准>>> 1:普通情况下,C语言的指针是使用虚拟地址,并非物理地址; 2:C语言mallco函数可以根据输入的值,申请一块连续的内存;free(*p&a…