今天用Windows API寫的掃雷程式

2021-04-02 02:20:53 字數 1980 閱讀 4544

minenumber = 5;

rows = 10; cols = 10;

minenumber = 10;

box = new box* [cols];

for(int k=0;kbox[i][j].isopened = true;

numberopened ++;

if(numberopened == rows * cols - minenumber)

autoopenboxes(hdc,i,j);

}else

//使當前的box成為按下狀態

grid.left = rect.left; 

grid.right = rect.right;

grid.bottom = rect.bottom;

grid.top = rect.top;

drawborder(hdc,grid.left,grid.top,box_width-2,box_height-2,shadow_width2,color3,color3,true);

drawborder(hdc,grid.left,grid.top,box_width,box_height,shadow_width1,color4,color4,true);

}deletedc(hdc);

}return 0;

case wm_command: //響應選單訊息

switch (loword (wparam))

case  wm_destroy:

postquitmessage (0) ;

return 0 ;

}return defwindowproc (hwnd, message, wparam, lparam) ;

}//繪製邊界

void drawborder(hdc hdc,int x,int y,int width,int height,int borderwidth,colorref &color1,colorref &color2,bool wtop)

if(wtop)

selectobject(hdc,hpen1);

else

selectobject(hdc,hpen2);

for(i = 0; i < borderwidth; i++)

}//初始化box

void initbox()

if(i>0&&j0  && box[i+1][j-1].containmine == true)

if(j>0 && box[i][j-1].containmine == true)

if(i>0 && j>0 && box[i-1][j-1].containmine == true)}}

//隨機布雷

void randomsetmines()

}//繪製矩形

void updatethewindow(hwnd &hwnd,int rows,int cols,int mineno)

void drawrect(hdc &hdc,int x,int y)

;if(x<0 || y<0 || x >= rows || y >= cols)

return;

rect1.left = minerect.left + box_width * y;

rect1.right = rect1.left + box_width;

rect1.top = minerect.top + box_height * x;

rect1.bottom = rect1.top + box_height;

if(!box[x][y].isopened)

box[x][y].isopened = true;

numberopened ++;

if(numberopened == rows * cols - minenumber )}}

//判斷周圍的所有box是否已經open

bool allroundisopened(int x,int y)

用Windows API分解路徑

在很多 中看到,由於需要獲取乙個路徑字串中的檔名或者副檔名,很多程式設計師都用了c庫中的字串查詢函式來獲取。這樣子寫得 很多,也麻煩。其實在vc中,可以用更好的方法來獲取。沒有什麼特別多說明,如下 lptstr szfilename new tchar max path getmodulefilen...

Delphi下用WindowsAPI建立窗體

delphi 下呼叫windows api 建立窗體.模板 by hottey 2004 4 13 0 18 作者 視窗訊息處理函式.function mywinproc hwnd thandle umsg uint wparam,lparam cardinal cardinal exp ort s...

今天,寫部落格了。

進入大學得那一刻,我走上了程式設計師的道路。然而在剛進入這個專業的時候,我連電腦科學與技術這個概念都完全不明白。乙個學期下來,我沒有什麼新的發現,也沒有熱情。大一下期,真正接觸到程式設計了。c語言!可是自己卻沒有抓住這個經典的東西。大 一 大二 大三。就這樣,珍貴的大學生活流逝了。大四了,該找工作得...