我正在开发一个MFC应用程序,并且在使用MessageBox时添加了一些错误检查,该文档找到了这里。
int MessageBox(
[in, optional] HWND hWnd,
[in, optional] LPCTSTR lpText,
[in, optional] LPCTSTR lpCaption,
[in] UINT uType
);Note: The utype parameter is a list of styles separated with |
上面是MessageBox的实现。我的问题是HWND参数。在编写对MessageBox的调用时,VisualStudio2017 Professional没有要求HWND参数。起初,我认为这是因为它是可选的,但其他两个可选的LPCTSTR参数并不像它们看起来的那样可选,并且要求我至少使用""来满足它们。
目前,我对MessageBox的调用只使用最后三个参数。我的电话是:
int BoxReturnVal = MessageBox("foo1", "foo2", MB_OK | MB_ICON);。
我的问题是,为什么在编写函数调用时不请求HWND参数,我是否需要担心所有这些?
提前谢谢你!
发布于 2022-07-27 18:03:12
您并不是在调用您认为是的MessageBox()函数。
您正在查看MessageBox() API中的Win32函数,但是MFC在CWnd类中有自己的MessageBox()方法。后一个没有HWND参数,是您实际调用的那个参数。
https://stackoverflow.com/questions/73142525
复制相似问题