zoukankan      html  css  js  c++  java
  • 学习:MessageBox API

    函数功能:

    MessageBox 函数用于显示一个模态对话框,其中包含一个系统图标、 一组按钮和一个简短的特定于应用程序消息,如状态或错误的信息。

    消息框中返回一个整数值,该值指示用户单击了哪个按钮。

    API 函数原型:

    注释:In 说明该参数是输入的,opt 说明该参数是可选参数。

    int WINAPI MessageBox(
    In_opt HWND hWnd,
    In_opt LPCTSTR lpText,
    In_opt LPCTSTR lpCaption,
    In UINT uType
    );

    具体说明参考:https://fishc.com.cn/forum.php?mod=viewthread&tid=46730&extra=page%3D1%26filter%3Dtypeid%26typeid%3D420

    示例代码:

    #include<windows.h>
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) {
    	MessageBox(NULL, TEXT("This is My First MessageBox"), TEXT("Message"), MB_OK);
    	return 0;
    }
    

    实现1:一个含有"中止","重试"和"跳过"三个按钮在里面的对话框

    我们可以在MessageBox的第四个参数utype中发现 MB_ABORTRETRYIGNORE 有"中止","重试"和"跳过"三个按钮在里面,那么我们也可以实现

    对于其中MB_OK | MB_ABORTRETRYIGNORE代码中的|的理解:其实都是进行了宏定义

    那么|操作就可以理解为或操作,有一则为一

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) {
    	MessageBox(NULL, TEXT("This is My First MessageBox"), TEXT("Message"), MB_OK | MB_ABORTRETRYIGNORE);
    	return 0;
    }
    

    对于代码中TEXT的理解:其实是为了解决编码的问题,如果一些字符是单字节,而有些字符又是双字节,就会导致不统一,我们进入TEXT的定义中发现

    再到__TEXT中发现进行L粘连quote,如果是中文字符的话就会进行UNICODE编码处理

    关于UNICODE的知识参考:https://fishc.com.cn/forum.php?mod=viewthread&tid=124473&highlight=Unicode%2B%B5%C4%BD%E2%BE%C8%B7%BD%B0%B8


    实现2:只有点击是按钮,才能结束MessageBox

    我们通过发现返回值为IDYES的时候才会是点击是的按钮,那么我们实现可以通过if来判断

    #include<windows.h>
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) {
    	int ret;
    	while (true) {
    		ret = MessageBox(NULL, TEXT("This is My First MessageBox"), TEXT("Message"), MB_YESNO); //利用变量ret来接收返回值
    		if (ret == IDYES) {
    			break;
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    33、VCF格式
    10、Perl5中19个最重要的文件系统工具
    9、perldoc文档阅读器
    32、Differential Gene Expression using RNA-Seq (Workflow)
    31、NGS 常用分析软件
    16、SGE作业调度系统的简介
    8、非root权限下安装perl以及perl模块
    31、SAM文件中flag含义解释工具--转载
    30、 bowtie和bowtie2使用条件区别及用法
    C#中委托。
  • 原文地址:https://www.cnblogs.com/zpchcbd/p/11890182.html
Copyright © 2011-2022 走看看