Создайте всплывающее окно в Rust с помощью Windows API - PullRequest
0 голосов
/ 06 декабря 2018

Я хотел бы создать диалоговое окно или всплывающее окно в Rust аналогично PowerShell .

Я пытаюсь найти документацию по API Windows для этого.Самое близкое, что я нашел до сих пор, это макрос CreateDialogA ( эквивалент ржавчины winapi ).

Я нашел на нем некоторые вещи, такие как Создание нового диалогового окна (C ++) , но большая его часть не применима к проекту Rust.

Возможно шаблон диалога уместен?

1 Ответ

0 голосов
/ 07 декабря 2018

main.rs

extern crate winapi;

use std::ptr::null_mut as NULL;
use winapi::um::winuser;

fn main() {
    let l_msg: Vec<u16> = "Wassa wassa wassup\0".encode_utf16().collect();
    let l_title: Vec<u16> = "\u{20BF}itconnect\0".encode_utf16().collect();

    unsafe {
        winuser::MessageBoxW(NULL(), l_msg.as_ptr(), l_title.as_ptr(), winuser::MB_OK | winuser::MB_ICONINFORMATION);
    }
}

При этом используется функция MessageBoxW .

Аргумент winuser::MB_OK может быть winuser::MB_OK, winuser::MB_OKCANCEL, winuser::MB_ABORTRETRYIGNORE, winuser::MB_YESNOCANCEL, winuser::MB_YESNO, winuser::MB_RETRYCANCEL или winuser::MB_CANCELTRYCONTINUE.

Аргумент winuser::MB_ICONINFORMATION может быть winuser::MB_ICONHAND, winuser::MB_ICONQUESTION, winuser:: MB_ICONEXCLAMATION или winuser::MB_ICONASTERISK.

Cargo.toml должен включать в себя:

[dependencies.winapi]
version = "0.3"
features = ["winuser"]

popup

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...