SetDlgItemText GetDlgItemText SetDlgItemInt 和GetDlgItemInt GetDlgItem

SetDlgItemText

函数功能

在对话框中设置控件的标题或文本。

函数声明

WINUSERAPI
BOOL
WINAPI
SetDlgItemTextA(
    _In_ HWND hDlg,
    _In_ int nIDDlgItem,
    _In_ LPCSTR lpString);

第一个参数

输入参数,包含控件的对话框的句柄。

第二个参数

输入参数,要设置标题或文本的控件。

第三个参数

输入参数,要复制到控件的文本

返回值

类型:布尔

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零。要获取扩展的错误信息,请调用GetLastError

补充

所述SetDlgItemText功能发送WM_SETTEXT消息发送到指定的控制。

实现代码

GetDlgItemText

函数功能

在对话框中检索与控件关联的标题或文本。

函数声明

GetDlgItemTextA(
    _In_ HWND hDlg,
    _In_ int nIDDlgItem,
    _Out_writes_(cchMax) LPSTR lpString,
    _In_ int cchMax);

第一个参数

输入参数,包含控件的对话框的句柄。

第二个参数

输入参数,要检索其标题或文本的控件的标识符。

第三个参数

输出参数,接收标题或文本的缓冲区。

第四个参数

输入参数,要复制到lpString指向的缓冲区的字符串的最大长度(以字符为单位)。如果字符串的长度(包括空字符)超过了限制,则字符串将被截断。

返回值

类型:UINT

如果函数成功,则返回值指定复制到缓冲区的字符数,不包括终止的空字符。

如果函数失败,则返回值为零。要获取扩展的错误信息,请调用GetLastError

补充

如果字符串与缓冲区一样长或更长,则缓冲区将包含带有终止空字符的截断字符串。

所述GetDlgItemText函数发送WM_GETTEXT消息发送到控制。

实现代码

SetDlgItemInt

函数功能

将对话框中控件的文本设置为指定整数值的字符串表示形式。

函数声明

BOOL
WINAPI
SetDlgItemInt(
    _In_ HWND hDlg,
    _In_ int nIDDlgItem,
    _In_ UINT uValue,
    _In_ BOOL bSigned);

第一个参数

输入参数,包含控件的对话框的句柄。

第二个参数

输入参数,要更改的控件。

第三个参数

输入参数,用于生成项目文本的整数值。

第四个参数

输入参数,指示uValue参数是带符号的还是无符号的。如果此参数为TRUE,则对uValue进行签名。如果此参数为TRUE并且uValue小于零,则在字符串的第一个数字之前放置一个减号。如果此参数为FALSE,则uValue为无符号。

返回值

类型:布尔

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零。要获取扩展的错误信息,请调用GetLastError

补充:

要设置新文本,此函数将WM_SETTEXT消息发送到指定的控件。

实现代码

GetDlgItemInt

函数功能

将对话框中指定控件的文本转换为整数值。

函数声明

UINT
WINAPI
GetDlgItemInt(
    _In_ HWND hDlg,
    _In_ int nIDDlgItem,
    _Out_opt_ BOOL *lpTranslated,
    _In_ BOOL bSigned);

第一个参数

输入参数,包含感兴趣的控件的对话框的句柄。

第二个参数

输入参数,要翻译其文本的控件的标识符。

第三个参数

输出参数,类型:布尔*
表示成功或失败(TRUE表示成功,FALSE表示失败)。

如果此参数为NULL,则该函数不返回有关成功或失败的信息。

第四个参数

输入参数,指示函数是否应该在开始时检查文本中是否有负号,并在发现一个整数值时返回带符号的整数值(TRUE表示应这样做,FALSE则不应该)。

返回值

类型:UINT

如果函数成功,则lpTranslated指向的变量将设置为TRUE,并且返回值是控制文本的转换后的值。

如果函数失败,则将lpTranslated指向的变量设置为FALSE,并且返回值为零。注意,因为零是可能的转换值,所以零返回值本身并不表示失败。

如果lpTranslated为NULL,则该函数不返回有关成功或失败的信息。

请注意,如果bSigned参数为TRUE,并且文本开头有减号(–),则GetDlgItemInt会将文本转换为带符号的整数值。否则,该函数将创建一个无符号整数值。为了在这种情况下获得正确的值,请将返回值强制转换为int类型。

要获取扩展的错误信息,请调用GetLastError。

补充:

该GetDlgItemInt功能通过发送的控制的检索指定控制的文本WM_GETTEXT消息。该函数通过在文本开头去除多余的空格,然后转换十进制数字来转换检索到的文本。当到达文本末尾或遇到非数字字符时,该函数停止翻译。

如果转换后的值大于INT_MAX(对于带符号的数字)或UINT_MAX(对于无符号的数字),则GetDlgItemInt函数返回零

实现代码

GetDlgItem

函数功能

在指定的对话框中检索控件的句柄。

函数声明

HWND
WINAPI
GetDlgItem(
    _In_opt_ HWND hDlg,
    _In_ int nIDDlgItem);

第一个参数

输入参数,包含控件的对话框的句柄。

第二个参数

输入参数,要检索的控件的标识符。

返回值

类型:HWND

如果函数成功,则返回值是指定控件的窗口句柄。

如果函数失败,则返回值为NULL,指示无效的对话框句柄或不存在的控件。要获取扩展的错误信息,请调用GetLastError。

补充

可以将GetDlgItem函数与任何父子窗口对一起使用,而不仅限于对话框。只要hDlg参数指定了父窗口并且子窗口具有唯一的标识符(由创建子窗口的CreateWindow或CreateWindowEx函数中的hMenu参数指定),GetDlgItem就会向子窗口返回有效的句柄

实现代码

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MFC打开文件和文件夹 一、利用API实现打开文件对话框和利用MFC来实现打开文件对话框。 方法一:API部分: // OPENFILENAME ofn; // TCHAR szFile[MAX_PATH]; // ZeroMemory(&ofn,sizeof(ofn)); // ofn.lStructSize = sizeof(ofn); // ofn.lpstrFile = szFile; // ofn.lpstrFile[0] = TEXT('/0'); // ofn.nMaxFile = sizeof(szFile); // ofn.lpstrFilter = TEXT("all/0*.*/0jpg/0*.jpg/0bmp/0*.bmp/0"); //定义三个选项,all,text和exe // ofn.nFilterIndex = 1; //定义首选项是哪一个 // ofn.lpstrFileTitle = NULL; // ofn.nMaxFileTitle = 0; // ofn.lpstrInitialDir = NULL; // ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; // if(GetOpenFileName(&ofn)) // { // ::SetDlgItemText(this->m_hWnd,IDC_EDIT1,szFile); // } 方法二、MFC实现 // CFileDialog dlg(TRUE, NULL, NULL, // OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, // NULL); // // if(dlg.DoModal() == IDOK) // { // szFilename = dlg.GetPathName(); // ::MessageBox(NULL,szFilename,NULL,MB_OK); // } 注意:打开文件的方式和打开文件夹的方式是不同的。打开文件的方式是不断的打开直到出现末端为文件,否则遇到文件夹还要继续打开。而打开文件夹则是只要选择到一个路径的文件夹就打开。 下面的这种方式是打开文件夹:MFC实现。 static TCHAR strDirName[MAX_PATH]; BROWSEINFO bi; CString szString = TEXT("选择一个源文件子文件夹"); bi.hwndOwner = ::GetFocus(); bi.pidlRoot = NULL; bi.pszDisplayName = strDirName; bi.lpszTitle = szString; bi.ulFlags = BIF_BROWSEFORCOMPUTER | BIF_DONTGOBELOWDOMAIN | BIF_RETURNONLYFSDIRS; bi.lpfn = NULL; bi.lParam = 0; bi.iImage = 0; LPITEMIDLIST pItemIDList = ::SHBrowseForFolder(&bi); if(pItemIDList == NULL) { return ; } ::SHGetPathFromIDList(pItemIDList, strDirName); CString str = strDirName; if(str != "" && str.Right(1) != '//') str += '//'; ::SetDlgItemText(this->m_hWnd,IDC_EDIT1,str);

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻梦&之璐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值