VC中怎么定位MessageBox出现的位置
怎么让MessageBox出现在指定的(x,y)处AFXAPIAfxMessageBox(UINTnIDPrompt,UINTnType=MB_OK,UINTnIDHel...
怎么让MessageBox出现在指定的(x,y)处
AFXAPI AfxMessageBox
( UINT nIDPrompt,
UINT nType = MB_OK,
UINT nIDHelp = (UINT) -1
)
中最后一个参数nIDHelp是什么意思
MessageBox和AfxMessageBox有什么区别,为什么要有两个显示消息的函数,它们分别在什么情况下使用 展开
AFXAPI AfxMessageBox
( UINT nIDPrompt,
UINT nType = MB_OK,
UINT nIDHelp = (UINT) -1
)
中最后一个参数nIDHelp是什么意思
MessageBox和AfxMessageBox有什么区别,为什么要有两个显示消息的函数,它们分别在什么情况下使用 展开
4个回答
2013-04-12
展开全部
MessageBox 是Windows系统库 user32.dll 的一个导出函数,用于显示一个提示消息对话框,其原型定义如下 :int MessageBox( HWND hWnd, // handle to owner window LPCTSTR lpText, // text in message box LPCTSTR lpCaption, // message box title UINT uType // message box style ); 可以看到有四个参数,第一个是消息框所有者窗口句柄,可以是NULL,第二个是 消息框的文本内容,第三个是消息框标题,第四个参数是消息框样式(按钮和图标)。CWnd类对MessageBox进行了封装,对其第一个参数传递了CWnd类的成员变量 m_hWnd,因此,调用CWnd类的成员函数MessageBox时,不能使用第一个参数,并且,最后两个参数也有默认值。 AfxMessageBox 是应用程序框架函数,是一个全局的函数,其内部实现也是使用了MessageBox。它有两次重载,如下:int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 );int AFXAPI AfxMessageBox( UINT nIDPrompt, UINT nType = MB_OK, UINT nIDHelp = (UINT) -1 ); lpszText 是消息框的内容;nType 与MessageBox中相同;nIDHelp 是帮助上下文ID,如果是0则使用默认的帮助上下文。nIDPrompt 是一个资源中的字符串表中的字符串资源ID,可以使用一个字符串资源作为消息框的内容。 因为 MessageBox 是标准调用的DLL导出函数,所以可以在C代码中使用,而 AfxMessageBox 则只能在C++代码中使用,一般都是在MFC程序中使用AfxMessageBox。 AfxMessageBox 内部处理了MessageBox的参数,然后调用 MessageBox来实现。而实际上MessageBox只是一个宏,真正的函数是MessageBoxA和MessageBoxW,这两个函数都没有提供控制其出现位置的参数,所以,不能控制其出现的位置。
2013-04-12
展开全部
1.可以以下面的方式调用AfxMessageBox。
AfxMessageBox(“Are you sure?”,MB_YESNO|MB_ICONQUESTION);
2.与AfxMessageBox类似的函数MessageBox,它是CWnd的类成员函数:
int MessageBox( LPCTSTR lpszText,LPCTSTR lpszCaption = NULL,
UINT nType = MB_OK );
与AfxMessageBox不同的是,它多了一个lpszCaption参数,从名字上就可以推断出它表示消息框的标题,这样就可以设置消息框的标题,而不必采用可执行文件名作为标题了。
3.两个函数的区别:AfxMessageBox比MessageBox简单一些,因为它是一个全局函数所以不需要对应的一个窗口类,但是不能控制消息框标题,常用于调试程序时的内部数据输出或警告;MessageBox比较正式,常用在要提交的应用程序版本中,可以控制标题内容而不必采用含义不明的可执行文件名为标题。
AfxMessageBox(“Are you sure?”,MB_YESNO|MB_ICONQUESTION);
2.与AfxMessageBox类似的函数MessageBox,它是CWnd的类成员函数:
int MessageBox( LPCTSTR lpszText,LPCTSTR lpszCaption = NULL,
UINT nType = MB_OK );
与AfxMessageBox不同的是,它多了一个lpszCaption参数,从名字上就可以推断出它表示消息框的标题,这样就可以设置消息框的标题,而不必采用可执行文件名作为标题了。
3.两个函数的区别:AfxMessageBox比MessageBox简单一些,因为它是一个全局函数所以不需要对应的一个窗口类,但是不能控制消息框标题,常用于调试程序时的内部数据输出或警告;MessageBox比较正式,常用在要提交的应用程序版本中,可以控制标题内容而不必采用含义不明的可执行文件名为标题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-12
展开全部
MessageBox出现位置是居中的,这个位置不能控制。如果你想要控制出现位置,只能自己做个对话框来代替MessageBox了,MessageBox是API函数,基本上各种编程语言和编程环境下,只要是编写windows程序都可以用。而AfxMessageBox则是Afx开发小组制作的只能用于VC的MFC程序中的一个函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
afxmessagebox就是调用MessageBox的。你可以先调用messagebox然后movewindow即可。或者自己做个mymsgbox{messagebox;movewindow(hwnd,...);}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询