zoukankan      html  css  js  c++  java
  • C++之messagebox

    messagebox

    用于显示一个模态对话框,包含了一个系统图标、一组按钮和一个简短的特定于应用程序消息、如状态或错误信息
    
    消息框中将返回一个整数值,该值指示了用户点击哪个按钮
    

    函数原型

    _In_说明参数是可以输入的
    _opt_说明参数是可选的
    
    int WINAPI MessageBox(
      _In_opt_  HWND hWnd,//hWnd该消息框的父窗口句柄 如果参数为NULL,则没有父窗口
      _In_opt_  LPCTSTR lpText,//消息框的内容
      _In_opt_  LPCTSTR lpCaption,//消息框的标题
      _In_      UINT uType//指定一个决定对话框的内容和行为的位标志集,参数可通过指定下列标志和标志的组合,来显示消息框中的按钮&图标
    );
    
    uType参数定义:
    MB_OK	默认值,有一个“确认”按钮在里面
    MB_YESNO	有“是”和“否”两个按钮在里面
    MB_ABORTRETRYIGNORE	有“中止”,“重试”和“跳过”三个按钮在里面
    MB_YESNOCANCEL	有“是”,“否”和“取消”三个按钮在里面
    MB_RETRYCANCEL	有“重试”和“取消”两个按钮在里面
    MB_OKCANCEL	有“确定”和“取消”两个按钮在里面
    
    更多参考
    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("开始学习!"), TEXT("haha"), MB_OKCANCEL | MB_ICONQUESTION | MB_DEFBUTTON2);
    	return 0;
    }
    

    增设中止、重试、跳过功能

    uType定义如下MB_ABORTRETRYIGNORE包含中止、重试、跳过功能
    
    关于MB_OK | MB_ABORTRETRYIGNORE 中的|代表:进行宏定义
    关于TEXT代表:解决编码问题,如果一些字符是单字节,其他又是双字节,就会导致不一致,可从TEXT的定义中发现
    

    #include <windows.h>
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
    {
    	MessageBox(NULL, TEXT("开始学习!"), TEXT("haha"), MB_OK | MB_ABORTRETRYIGNORE);
    	return 0;
    }
    

    增设确认功能

    #include <windows.h>
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
    {	
    	int choice;//用choice来确认选择的值
    	while(true){  //循环一直运行
    		choice=MessageBox(NULL, TEXT("开始学习!"), TEXT("haha"), MB_YESNO);
    		if (choice == IDYES) {		//如果选择的是yes
    			break;
    		}
    	}
    	return 0;
    }
    
    联系邮箱:yang_s1r@163.com 博客园地址:https://www.cnblogs.com/Yang34/
  • 相关阅读:
    杭电 Problem
    杭电Problem 5053 the sum of cube 【数学公式】
    杭电 Problem 2089 不要62 【打表】
    杭电 Problem 4548 美素数【打表】
    杭电 Problem 2008 分拆素数和 【打表】
    杭电 Problem 1722 Cake 【gcd】
    杭电 Problem 2187 悼念512汶川大地震遇难同胞——老人是真饿了【贪心】
    杭电Problem 1872 稳定排序
    杭电 Problem 1753 大明A+B
    东北林业大 564 汉诺塔
  • 原文地址:https://www.cnblogs.com/Yang34/p/14391443.html
Copyright © 2011-2022 走看看