使用 Windows API 在 Rust 中创建弹出窗口

Joe*_*lis 1 windows winapi rust

我想以与PowerShell类似的方式在 Rust 中创建一个对话框或弹出窗口。

我正在努力寻找有关 Windows API 的文档。到目前为止我发现的最接近的是CreateDialogA Rust winapi 等效)。

我在上面找到了一些东西,例如创建新对话框(C++),但其中大部分不适用于 Rust 项目。

也许对话模板是相关的?

Fre*_*nan 5

主程序.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);
    }
}
Run Code Online (Sandbox Code Playgroud)

这使用了MessageBoxW 函数

参数winuser::MB_OK可以是winuser::MB_OK, winuser::MB_OKCANCEL, winuser::MB_ABORTRETRYIGNORE, winuser::MB_YESNOCANCEL, winuser::MB_YESNO,winuser::MB_RETRYCANCELwinuser::MB_CANCELTRYCONTINUE

参数winuser::MB_ICONINFORMATION可以是winuser::MB_ICONHANDwinuser::MB_ICONQUESTIONwinuser:: MB_ICONEXCLAMATIONwinuser::MB_ICONASTERISK

Cargo.toml 应包括:

[dependencies.winapi]
version = "0.3"
features = ["winuser"]
Run Code Online (Sandbox Code Playgroud)

弹出窗口