要做一个登录系统,密码的输入要用*隐藏
希望用inputbox做因为控制台不够简洁方便
#include <windows.h>
#include <iostream>
using namespace std;
int main() {
char password[50] = { 0 }; // 声明一个长度为50的字符数组用来保存密码,初始化为0
int ret; // 声明一个整型变量用于存储MessageBox的返回值
do {
ret = MessageBox(NULL, "请输入密码:", "登录系统", MB_OKCANCEL | MB_ICONINFORMATION); // 弹出一个MessageBox,让用户输入密码
if (ret == IDOK) { // 如果用户点击了“确定”按钮
HWND hwnd = GetForegroundWindow(); // 获取当前活动窗口的句柄
if (hwnd) { // 如果句柄有效
HWND edit = GetDlgItem(hwnd, 0x000003E8); // 获取对话框中ID为0x000003E8的控件的句柄,即密码框
if (edit) { // 如果句柄有效
SendMessage(edit, EM_SETPASSWORDCHAR, '*', 0); // 将密码框的显示字符设为'*'
SendMessage(edit, WM_SETTEXT, 0, (LPARAM)password); // 将密码保存到password数组中
break; // 跳出循环
}
}
}
} while (ret == IDOK); // 如果用户点击了“确定”按钮,继续弹出MessageBox让用户输入密码
cout << "输入的密码是:" << password << endl; // 输出输入的密码
return 0; // 返回0表示程序执行成功
}
解决办法:1.查找资料,直接将字符串定义为wchar_t数组,然后使用memcpy函数拷贝。2.大lao指点博客名:JFL1224