首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

hwnd的句柄可以不要输入么

2014-01-23 
hwnd的句柄可以不用输入么?BOOL WINAPI SetDlgItemText(_In_HWND hDlg,_In_int nIDDlgItem,_In_LPCTSTR lp

hwnd的句柄可以不用输入么?
BOOL WINAPI SetDlgItemText(
  _In_  HWND hDlg,
  _In_  int nIDDlgItem,
  _In_  LPCTSTR lpString
);

请问下这个hdlg可以不用输入的吗?这个参数是否有默认参数?
谢谢!
[解决办法]
如果你调用这个API函数,肯定是需要传递的。第一个参数不可能有默认值,那么后面几个参数都需要有默认值。
如果你是在一个CWnd类中调用这个SetDlgItemText,你可能调用的CWnd::SetDlgItemText()这个函数名与Win32 API SetDlgItemText同名,是该类对API函数的封装。这个时候你就不用写第一个参数了。如果仍然想调用Win32函数,就需要加上作用域标示符::,表示调用Win32 API函数,而不是调用CWnd类的SetDlgItemText方法。
不清楚这样解释你明白了没?
[解决办法]
MFC 对其进行了包装,只不过名字仍保留为 SetDlgItemText:

void CWnd::SetDlgItemText(int nID, LPCTSTR lpStr);
{
    return ::SetDlgItemText(GetSafeHwnd(), nID, lpStr);
}
你在 MSDN 查到的是 Windows API。如果你想查 MFC 的,需搜索 "CWnd::SetDlgItemText"。

热点排行