MessageBox函数的返回值
你要的爱吉他谱MessageBox()函数的常⽤返回值
IDABORT:Abort 按钮被选中。
IDCANCEL:Cancel按钮被选中。
IDIGNORE:Ignore按钮被选中。
IDNO:NO按钮被选中。
IDOK:OK按钮被选中。
IDRETRY:RETRY按钮被选中。
IDYES:YES按钮被选中。
附上原书MessageBox对第四个参数的扩展描述
MessageBox的第四个参数可以是在WINUSER.H中定义的⼀组以前缀MB_开始的常数的组合。您可从第⼀组中选择⼀个常数指出希望在对话框中显⽰的按钮:
#define MB_OK 0x00000000L
#define MB_OKCANCEL 0x00000001L
#define MB_ABORTRETRYIGNORE 0x00000002L数学的应用
#define MB_YESNOCANCEL 0x00000003L
#define MB_YESNO 0x00000004L
#define MB_RETRYCANCEL 0x00000005L
如果在HELLOMSG中将第四个参数设置为0,则仅显⽰「OK」按钮。可以使⽤C语⾔的OR(|)操作符号将上⾯显⽰的⼀个常数与代表内定按钮的常数组合:超新学习通
#define MB_DEFBUTTON1 0x00000000L
#define MB_DEFBUTTON2 0x00000100L
#define MB_DEFBUTTON3 0x00000200L
嫖娼卖淫
#define MB_DEFBUTTON4 0x00000300L
还可以使⽤⼀个常数指出消息框中图⽰的外观:张棪琰演员
#define MB_ICONHAND 0x00000010L
#define MB_ICONQUESTION 0x00000020L
#define MB_ICONEXCLAMATION 0x00000030L
#define MB_ICONASTERISK 0x00000040L
这些图⽰中的某些有替代名称:
#define MB_ICONWARNING MB_ICONEXCLAMATION
#define MB_ICONERROR MB_ICONHAND
#define MB_ICONINFORMATION MB_ICONASTERISK
#define MB_ICONSTOP MB_ICONHAND
虽然只有少数其它MB_常数,但您可以⾃⼰参考表头⽂件或 / Platform SDK / Ur Interface Services / Windowing / DialogBoxes/ Dialog Box Reference / Dialog Box Functions⾥的⽂件。
学写windows程序。之前⽼师就推荐过《windows程序设计》,⾃⼰也从图书馆借来读过,总感觉看不懂。经过⼀年多的积累,重读这本书,纪录下历程作为积累。
我个⼈不是计算机专业的,作为⼀个业余爱好,不⾜之处请多指教。
MessageBox的函数原型为:
钢铁是怎样炼成的阅读感想>新耳机如何煲机int WINAPIMessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);
在 windows程序设计 中
Charles Petzold 所举实例如下
#include<windows.h>
int WINAPIWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, intiCmdShow)
{
MessageBox(NULL, TEXT ("Hello, Windows 98!"), TEXT ("HelloMsg"), 0);
return 0 ;
}
运⾏后结果如图所⽰———⼀个简单的消息框和⼀个确定按钮。点击确定后直接退出程序了。没有什么功能,根据以前学过的vb和delphi的经验,任何按钮下都应该有可以实现某种特殊功能。
于是百度⼀下相关,找到类似的例⼦,我把它改成这样
UINT nRet =MessageBox(NULL, L"确定要删除此记录?", L"提⽰", MB_OKCANCEL |MB_ICONERROR);
if (nRet == IDOK)
{
//MessageBox(NULL,TEXT("123"), TEXT("OK"), NULL);
//功能1
}
el if (nRet == IDCANCEL)
{
//MessageBox(NULL, TEXT("11"),TEXT("cancel"), NULL);
//功能2
}
长蒿return 0 ;
运⾏结果如下
这⾥我们定义了⼀个UINT (MessageBox函数原型的最后⼀个参数)类型名为nRet 的参数以接收⽤户选择的按钮;语句if (nRet == IDOK)中IDOK和IDCANCEL⼀样都是常数。
按下确定后执⾏了
MessageBox(NULL,TEXT("123"), TEXT("OK"), NULL);
实现了我们想要的功能.
/
修改按钮⽂本(⼀般⽤于国际化)
HHOOK hHook;
LRESULT __stdcall CBTHookProc( long nCode,WPARAM wParam,LPARAM lParam)
{
if (nCode==HCBT_ACTIVATE)
{
SetDlgItemText((HWND)wParam,IDYES,"&Yes");
SetDlgItemText((HWND)wParam,IDNO ,"&No");
SetDlgItemText((HWND)wParam,IDOK,"&OK");
SetDlgItemText((HWND)wParam,IDCANCEL,"&Cancel");
UnhookWindowsHookEx(hHook);
}
return 0;
}
使⽤⽅法:在调⽤MessageBox前加⼊以下函数
hHook=SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTHookProc,AfxGetInstanceHandle(),NULL);
/