【问题标题】:Where do i find standard system icons of messageboxes via WinApi?我在哪里可以通过 WinApi 找到消息框的标准系统图标?
【发布时间】:2011-11-12 01:08:47
【问题描述】:

我在哪里可以通过 WinApi 找到消息框的标准系统图标?我想创建一个高级对话框(带有详细信息扩展)作为 WinApi 资源,但我想使用系统默认图标,如:

对于 .NET,我知道我会在 System.Drawing.SystemIcons 中找到它们,但是我在哪里可以使用原生 C 和 WinApi 找到它们?我该如何应用它们?

【问题讨论】:

    标签: c winapi dialog icons messagebox


    【解决方案1】:

    您应该能够使用LoadIcon 获取它们。要获取问号图标使用LoadIcon(NULL, IDI_QUESTION),其他标识符是IDI_ERRORIDI_WARNINGIDI_INFORMATION

    【讨论】:

      【解决方案2】:

      没错,

      如果有人需要我的代码来设置图标并播放相应的声音。

      HICON hIcon = NULL;
      if(mbdIcon == MBD_ICON_INFORMATION) {
          hIcon = LoadIcon(NULL, IDI_INFORMATION);
          MessageBeep(MB_ICONASTERISK);
      } else if(mbdIcon == MBD_ICON_QUESTION) {
          hIcon = LoadIcon(NULL, IDI_QUESTION);
          MessageBeep(MB_ICONQUESTION);
      } else if(mbdIcon == MBD_ICON_WARNING) {
          hIcon = LoadIcon(NULL, IDI_WARNING);
          MessageBeep(MB_ICONWARNING);
      } else if(mbdIcon == MBD_ICON_ERROR) {
          hIcon = LoadIcon(NULL, IDI_ERROR);
          MessageBeep(MB_ICONERROR);
      } else {
          ShowWindow(hPictureIcon, SW_HIDE);
      }
      if(hIcon != NULL)
      {
          Static_SetIcon(hPictureIcon, hIcon);
      }
      

      愿它为某人节省几分钟。 :)

      【讨论】:

      • 我认为这可能会改变对这个问题和这个答案的理解。最好是一个独立的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      • 2022-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      相关资源
      最近更新 更多