Windows API 之 GetDlgItemTextA

旧题回顾: Windows API 之 SetDlgItemTextA

GetDlgItemTextA

GetDlgItemTextA,用于获取Dialog组件内容,如TextEdit的文本 官方说明

函数原型:
        UINT GetDlgItemTextA(
            [in]  HWND  hDlg,  //包含控件的对话框的句柄。
            [in]  int   nIDDlgItem, //组件ID
            [out] LPSTR lpString,  //输出缓冲区,用于保存返回的内容
            [in]  int   cchMax //缓冲区长度
        );
用例:
		char string[15];
		GetDlgItemTextA(hModule, IDC_EDIT1, string, sizeof(string)); //IDC_EDIT1为组件ID
注意事项:
    1.  如果字符串的长度(包括 null 字符)超过限制,则会截断字符串。

源码示例:
开发工具:Visual Studio 2022
开发语言:C++(空项目)
字符集环境:多字节字符集(包含了ASCII)
#include <Windows.h>
#include "resource.h"

INT_PTR CALLBACK Dlgproc(HWND hModule, UINT type, WPARAM wParam, LPARAM lParam)
{
	switch (type) {  //对话框初始化事件
	case WM_INITDIALOG:
	{
		SetDlgItemTextA(hModule, IDC_EDIT1, "Hello");
		MessageBoxA(hModule, "初始化啦!", "提示", 0);
		break;
	}
	case WM_COMMAND: { //触发的组件ID
		switch (wParam)
		{
		case IDOK: { //确认
			char string[15];
			GetDlgItemTextA(hModule, IDC_EDIT1, string, sizeof(string));
			MessageBoxA(hModule, string, "提示", 0);
			EndDialog(hModule, 0); //关闭窗口并返回值0
			break;
		}
		case IDCANCEL: {  //取消
			MessageBoxA(hModule, "取消!", "提示", 0);
			EndDialog(hModule, 1); //关闭窗口并返回值1
			break;
		}
		default:
			break;
		}
		break;
	}
	case WM_CLOSE: { //对话框关闭事件
		EndDialog(hModule, 123); //关闭窗口并返回值123
		break;
	}
	default://默认不做任何处理
		break;
	}
	return false;
}

int main(int argc, char* argv[])
{
	int ret = DialogBoxParamA(NULL, MAKEINTRESOURCE(IDD_DIALOG1), NULL, Dlgproc, 0);
	return 0;
}

源码地址:https://github.com/WongHouLeong/Windows-API/tree/1a99353d8de24240b6b12308234c7656576045ee

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值