/*
舒城ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
MessageBox
彈框函數(shù)
MessageBox
(NULL,TEXT("窗口內(nèi)容"),
TEXT("窗口標(biāo)題"),
圖標(biāo)|按鈕);
*/
#
include
#
include
//
包含頭文件:Windows.h
int
main
(void)
{
MessageBox
(NULL,TEXT("歡迎使用本軟件"),
TEXT("歡迎"),MB_OK);//只有OK
/*
按鈕參數(shù):
MB_OK
有一個(gè)“確定”在框里面
MB_YESNO
有“是”和“否”在里面
MB_ABORTRETRYIGNORE
有Abort(放棄),Retry(重試)和Ignore(跳過)在里面
MB_YESNOCANCEL
有“是”和“否”和“取消”在里面
MB_RETRYCANCEL
有“重試”和“取消”
在里面
MB_OKCANCEL
有“確定”和“取消”在里面
返回值:
按下的按鈕
返回的值
確定
1
取消
2
放棄
3
重試
4
跳過
5
是
6
否
7
*/
int
i
=
MessageBox
(NULL,TEXT("按“確定”輸出
6,按“取消”輸出
7"),
TEXT("你好"),MB_YESNO);
printf("%d\n",i);
/*
圖標(biāo):
MB_ICONEXCLAMATION
一個(gè)驚嘆號(hào)出現(xiàn)在消息框
MB_ICONWARNING
一個(gè)驚嘆號(hào)出現(xiàn)在消息框
MB_ICONINFORMATION
一個(gè)圓圈中小寫字母i組成的圖標(biāo)出現(xiàn)在消息框
MB_ICONASTERISK
一個(gè)圓圈中小寫字母i組成的圖標(biāo)出現(xiàn)在消息框
MB_ICONQUESTION
一個(gè)問題標(biāo)記圖標(biāo)出現(xiàn)在消息框
MB_ICONSTOP
一個(gè)停止消息圖標(biāo)出現(xiàn)在消息框
MB_ICONERROR
一個(gè)停止消息圖標(biāo)出現(xiàn)在消息框
MB_ICONHAND
一個(gè)停止消息圖標(biāo)出現(xiàn)在消息框
*/
MessageBox
(NULL,TEXT("你是豬嗎?"),
TEXT("問題"),MB_ICONQUESTION|MB_YESNO);//注:圖標(biāo)在前,按鈕在后。中間用“|”分割。
return
0;
}
if(c=='-')
{
if(strcmp(str2,"")==0) /*如果str2為空,說明是負(fù)號(hào),而不是減號(hào)*/
flag=-1; /*設(shè)置負(fù)數(shù)標(biāo)志*/
else
{
num1=atof(str2); /*將第二個(gè)操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/
strcpy(str2,""); /*將str2清空*/
act=2; /*做計(jì)算減法標(biāo)志值*/
setfillstyle(SOLID_FILL,color+3);
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*畫矩形*/
outtextxy(5*width,height,"0."); /*顯示字符串*/
}
}
if(c=='*')
{
num1=atof(str2); /*將第二個(gè)操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/
strcpy(str2,""); /*將str2清空*/
act=3; /*做計(jì)算乘法標(biāo)志值*/
setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*height/2);
outtextxy(5*width,height,"0."); /*顯示字符串*/
}
if(c=='/')
{
num1=atof(str2); /*將第二個(gè)操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/
strcpy(str2,""); /*將str2清空*/
act=4; /*做計(jì)算除法標(biāo)志值*/
setfillstyle(SOLID_FILL,color+3);
bar(2*width+width/2,height/2,15*width/2,3*height/2);
outtextxy(5*width,height,"0."); /*顯示字符串*/
}
if(c=='^')
{
num1=atof(str2); /*將第二個(gè)操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/
strcpy(str2,""); /*將str2清空*/
act=5; /*做計(jì)算乘方標(biāo)志值*/
setfillstyle(SOLID_FILL,color+3); /*設(shè)置用淡綠色實(shí)體填充*/
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*畫矩形*/
outtextxy(5*width,height,"0."); /*顯示字符串*/
}
if(c=='%')
{
num1=atof(str2); /*將第二個(gè)操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/
strcpy(str2,""); /*將str2清空*/
act=6; /*做計(jì)算模運(yùn)算乘方標(biāo)志值*/
setfillstyle(SOLID_FILL,color+3); /*設(shè)置用淡綠色實(shí)體填充*/
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*畫矩形*/
outtextxy(5*width,height,"0."); /*顯示字符串*/
}
if(c=='=')
{
num2=atof(str2); /*將第二個(gè)操作數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)*/
switch(act) /*根據(jù)運(yùn)算符號(hào)計(jì)算*/
{
case 1:result=num1+num2;break; /*做加法*/
case 2:result=num1-num2;break; /*做減法*/
case 3:result=num1*num2;break; /*做乘法*/
case 4:result=num1/num2;break; /*做除法*/
case 5:result=pow(num1,num2);break; /*做x的y次方*/
case 6:result=fmod(num1,num2);break; /*做模運(yùn)算*/
}
setfillstyle(SOLID_FILL,color+3); /*設(shè)置用淡綠色實(shí)體填充*/
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*覆蓋結(jié)果區(qū)*/
sprintf(temp,"%f",result); /*將結(jié)果保存到temp中*/
outtextxy(5*width,height,temp); /*顯示結(jié)果*/
}
if(c=='c')
{
num1=0; /*將兩個(gè)操作數(shù)復(fù)位0,符號(hào)標(biāo)志為1*/
num2=0;
flag=1;
strcpy(str2,""); /*將str2清空*/
setfillstyle(SOLID_FILL,color+3); /*設(shè)置用淡綠色實(shí)體填充*/
bar(2*width+width/2,height/2,15*width/2,3*height/2); /*覆蓋結(jié)果區(qū)*/
outtextxy(5*width,height,"0."); /*顯示字符串*/
}
if(c=='Q')exit(0); /*如果選擇了q回車,結(jié)束計(jì)算程序*/
}
putimage(x,y,rar,XOR_PUT); /*在退出之前消去光標(biāo)箭頭*/
return; /*返回*/
}
/*窗口函數(shù)*/
void mwindow( char *header )
{
int height;
cleardevice(); /* 清除圖形屏幕 */
setcolor( MaxColors - 1 ); /* 設(shè)置當(dāng)前顏色為白色*/
setviewport( 20, 20, MaxX/2, MaxY/2, 1 ); /* 設(shè)置視口大小 */
height = textheight( "H" ); /* 讀取基本文本大小 */
settextstyle( DEFAULT_FONT, HORIZ_DIR, 1 );/*設(shè)置文本樣式*/
settextjustify( CENTER_TEXT, TOP_TEXT );/*設(shè)置字符排列方式*/
outtextxy( MaxX/4, 2, header ); /*輸出標(biāo)題*/
setviewport( 20,20+height+4, MaxX/2+4, MaxY/2+20, 1 ); /*設(shè)置視口大小*/
drawboder(); /*畫邊框*/
}
void drawboder(void) /*畫邊框*/
{
struct viewporttype vp; /*定義視口類型變量*/
setcolor( MaxColors - 1 ); /*設(shè)置當(dāng)前顏色為白色 */
setlinestyle( SOLID_LINE, 0, NORM_WIDTH );/*設(shè)置畫線方式*/
getviewsettings( vp );/*將當(dāng)前視口信息裝入vp所指的結(jié)構(gòu)中*/
rectangle( 0, 0, vp.right-vp.left, vp.bottom-vp.top ); /*畫矩形邊框*/
}
/*設(shè)計(jì)鼠標(biāo)圖形函數(shù)*/
int arrow()
{
int size;
int raw[]={4,4,4,8,6,8,14,16,16,16,8,6,8,4,4,4}; /*定義多邊形坐標(biāo)*/
setfillstyle(SOLID_FILL,2); /*設(shè)置填充模式*/
fillpoly(8,raw); /*畫出一光標(biāo)箭頭*/
size=imagesize(4,4,16,16); /*測(cè)試圖象大小*/
rar=malloc(size); /*分配內(nèi)存區(qū)域*/
getimage(4,4,16,16,rar); /*存放光標(biāo)箭頭圖象*/
putimage(4,4,rar,XOR_PUT); /*消去光標(biāo)箭頭圖象*/
return 0;
}
/*按鍵函數(shù)*/
int specialkey(void)
{
int key;
while(bioskey(1)==0); /*等待鍵盤輸入*/
key=bioskey(0); /*鍵盤輸入*/
key=key0xff? key0xff:key8; /*只取特殊鍵的掃描值,其余為0*/
return(key); /*返回鍵值*/
}
#include
#include
char format[]="%s%s\n";
char hello[]="Hello";
char world[]="world";
HWND hwnd;void main(void)
asm
//push NULL
//call dword ptr GetModuleHandle
//mov hwnd,eax push MB_OK mov eax,offset world push eax mov eax,offset hello push eax push 0//說明此處不能將前面注釋掉代碼處得到的hwnd壓棧,否則對(duì)話框彈不出來。
call dword ptr MessageBox
}
}
WINDOWS程序MessagBox
WINDOWS或控制臺(tái) assert
C/C++ code
// crt_assert.c
// compile with: /c
#include stdio.h
#include assert.h
#include string.h
void analyze_string( char *string );?? // Prototype
int main( void )
{
char? test1[] = "abc", *test2 = NULL, test3[] = "";
printf ( "Analyzing string '%s'\n", test1 ); fflush( stdout );
analyze_string( test1 );
printf ( "Analyzing string '%s'\n", test2 ); fflush( stdout );
analyze_string( test2 );
printf ( "Analyzing string '%s'\n", test3 ); fflush( stdout );
analyze_string( test3 );
}
// Tests a string to see if it is NULL,
// empty, or longer than 0 characters.
void analyze_string( char * string )
{
assert( string != NULL );??????? // Cannot be NULL
assert( *string != '\0' );?????? // Cannot be empty
assert( strlen( string ) 2 );? // Length must exceed 2
}
擴(kuò)展資料:
#include windows.h
#include Commdlg.h
#include stdio.h
// 返回值: 成功 1, 失敗 0
// 通過 path 返回獲取的路徑
int FileDialog(char *path)
{
OPENFILENAME ofn;
ZeroMemory(ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn); // 結(jié)構(gòu)大小
ofn.lpstrFile = path; // 路徑
ofn.nMaxFile = MAX_PATH; // 路徑大小
ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0"; // 文件類型
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
return GetOpenFileName(ofn);
}
int main(char argc, char *argv[])
{
char szFile[MAX_PATH] = {0};
if(FileDialog(szFile))
{
puts(szFile);
}
getchar();
return 0;
}
1、MessageBox(),注意區(qū)分大小寫。它的功能是彈出一個(gè)標(biāo)準(zhǔn)的Windows對(duì)話框。它不是C函數(shù)庫(kù)的標(biāo)準(zhǔn)函數(shù),而是WINDNWS API函數(shù),但是可以用C語(yǔ)言調(diào)用API函數(shù)。
下面舉例,顯示出一個(gè)對(duì)話框,其標(biāo)題為Hello,內(nèi)容為Hello World,包含一個(gè)【確定】按鈕:
#include windows.h
int main()
{
MessageBox(NULL,"Hello World","Hello",MB_OK);
return 0;
}
//代碼在VC6.0下編譯通過
2、MessageBox()函數(shù)第一個(gè)參數(shù)是窗口句柄,第二個(gè)是窗口內(nèi)容字符串,第三個(gè)是窗口標(biāo)題字符串,第四個(gè)是窗口所包含的按鈕類型;函數(shù)返回值為int類型,用于判斷用戶點(diǎn)擊了哪個(gè)按鈕。
簡(jiǎn)單介紹一下第四個(gè)參數(shù)(左邊參數(shù),右邊按鈕):
MB_OK 確定
MB_OKCANCEL 確定 取消
MB_YESNO 是 否
MB_RETRY 重試
還可以在窗口顯示通知圖標(biāo):
MB_OK|MB_ICONQUESTION 確定 問號(hào)
依此類推,只要在后面加“|”然后是圖標(biāo)代號(hào)。
MB_ICONEXCLAMATION 感嘆號(hào)
MB_ICONERROR 錯(cuò)誤
MB_ICONINFORMATION 信息
準(zhǔn)確來說是系統(tǒng)API函數(shù)原型是int MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT UType);比如寫成#include Windows.hint main(){
MessageBox(0, "我是內(nèi)容", "我是標(biāo)題", MB_OK);
return 0;
}
運(yùn)行截圖就是
對(duì)話框可以用MessageBox函數(shù)。
1.
MessageBox()
功能顯示一個(gè)消息對(duì)話框。
語(yǔ)法MessageBox(text,title{,icon{,button{,default}}})
參數(shù)title:string類型,指定消息對(duì)話框的標(biāo)題text:指定消息對(duì)話框中顯示的消息,該參數(shù)可以是數(shù)值數(shù)據(jù)類型、字符串或boolean值icon:Icon枚舉類型,可選項(xiàng),指定要在該對(duì)話框左側(cè)顯示的圖標(biāo)button:Button枚舉類型,可選項(xiàng),指定顯示在該對(duì)話框底部的按鈕default:數(shù)值型,可選項(xiàng),指定作為缺省按鈕的按鈕編號(hào),按鈕編號(hào)自左向右依次計(jì)數(shù),缺省值為1,如果該參數(shù)指定的編號(hào)超過了顯示的按鈕個(gè)數(shù),那么MessageBox()函數(shù)將使用缺省值返回值Integer。函數(shù)執(zhí)行成功時(shí)返回用戶選擇的按鈕編號(hào)(例如1、2、3等),發(fā)生錯(cuò)誤時(shí)返回-1。如果任何參數(shù)的值為NULL,MessageBox()函數(shù)返回NULL。
用法:當(dāng)你的應(yīng)用程序需要顯示一段簡(jiǎn)短信息(比如顯示出錯(cuò)、警告等信息)時(shí),沒有必要自己從頭創(chuàng)建窗口、安排控件,使用MessageBox()函數(shù)既簡(jiǎn)單又方便。用戶只有響應(yīng)該窗口后,程序才能繼續(xù)運(yùn)行下去。MessageBox()函數(shù)的icon參數(shù)指定顯示在窗口中的圖標(biāo),它是枚舉類型,可能取值為:
取值
圖標(biāo)Information!
StopSign!
Exclamation!
Question!
None!
無(wú)圖標(biāo)其中Information!是Icon參數(shù)的缺省值。Button參數(shù)指定在窗口中顯示哪些按鈕,有效取值為:取值中文Windows
95下顯示OK!“確定”按鈕OKCancel!“確定”、“取消”按鈕YesNo!“是”、“否”按鈕
YesNoCancel!“是”、“否”、“取消”按鈕RetryCancel!“重試”、“取消”按鈕AbortRetryIgnore!“終止”、“重試”、“忽略”按鈕
函數(shù)功能:該函數(shù)創(chuàng)建、顯示、和操作一個(gè)消息框。消息框含有應(yīng)用程序定義的消息和標(biāo)題,加上預(yù)定義圖標(biāo)與Push(下按)按鈕的任何組合。
2.
例程:
#include
#include
int main()
{
char str[99];
gets(str); //str儲(chǔ)存輸入的字符串,用來給文本框賦值
MessageBox(0,str,"對(duì)話框",MB_OK); //給對(duì)話框的文本框賦值str
return 0;
}