我的第乙個windows程式

2021-06-26 06:43:17 字數 2634 閱讀 7531

#include

lresult callback wndproc (hwnd, uint, wparam, lparam) ;

//winmain函式被指定了乙個winapi型態(在表頭檔案中定義的所有windows函式都被指定這種型態),而wndproc函式被指定乙個callback型態。這兩個識別符號都被定義為_stdcall,表示在windows本身和使用者的應用程式之間發生的函式呼叫的呼叫引數傳遞方式。

int winapi winmain (hinstance hinstance, hinstance hprevinstance,//hinstance執行實體(程式本身)控制代碼。 hinstance和hprevinstance的(h表示控制代碼,匈牙利表示法,小寫開頭

pstr szcmdline, int icmdshow) //pstr==char *  szcmdline(sz表示以0結束的字串)匈牙利表示法,icmdshow的i表示整數,winmain的第三個引數的pstr資料型態是指向乙個字串的指標

//createwindow 根據視窗類別建立乙個視窗,cw建立視窗,ws視窗樣式,視窗類別樣式,idi圖示id,idc游標id,wm視窗訊息

//視窗類別定義了視窗的一般特徵,因此可以使用同一視窗類別建立許多不同的視窗。實際呼叫createwindow建立視窗時,可能指定有關視窗的更詳細的資訊。

text ("the hello program"), // 視窗標題」是顯示在標題列中的文字。

cw_usedefault,              // initial x position

cw_usedefault,              // initial y position

cw_usedefault,              // initial x size

cw_usedefault,              // initial y size

null,                       // parent window handle,在建立乙個「最上層」視窗,如應用程式視窗時,注釋為「父視窗控制代碼」的引數設定為null。

null,                       // window menu handle

hinstance,                  // program instance handle

null) ;                     // creation parameters,最後,「建立引數」指標設定為null,可以用這個引數訪問稍後程式中可能引用到的資料。

showwindow (hwnd, icmdshow) ;//showwindow在螢幕上顯示視窗,第二個引數是作為引數傳給winmain的icmdshow。它確定最初如何在螢幕上顯示視窗,是一般大小、最小化還是最大化。在開始選單中安裝程式時,使用者可能做出最佳選擇。如果視窗按一般大小顯示,那麼winmain接收到後傳遞給showwindow的就是sw_shownormal﹔如果視窗是最大化顯示的,則為sw_showmaximized。而如果視窗只顯示在工作列上,則是sw_showminnoactive。

updatewindow (hwnd) ;//指示視窗自我更新

//getmessage第

二、第三和第四個引數設定為null或者0,表示程式接收它自己建立的所有視窗的所有訊息。

while (getmessage (&msg, null, 0, 0))//getmessage從訊息佇列中取得訊息

return msg.wparam ;

}//當windows還是16位系統時,wndproc的第三個引數被定義為乙個word,這是乙個16位的 無正負號短(unsigned short)整數,而第四個引數被定義為乙個long,這是乙個32位有正負號長整數,從而導致了文字「param」前面加上了前置字首「w」和「l」。當然,在32位的windows中,wparam被定義為乙個uint,而lparam被定義為乙個long(

//視窗訊息處理程式的四個引數與msg結構的前四個欄位是相同的.第乙個引數hwnd是接收訊息的視窗的控制代碼,它與createwindow函式的傳回值相同。對於與hellowin相似的程式(只建立乙個視窗),這個引數是程式所知道的唯一視窗控制代碼。如果程式是依據同一視窗類別(同時也是同一視窗訊息處理程式)建立多個視窗,則hwnd標識接收訊息的特定視窗。

//第二個引數與msg結構中的message欄位相同,它是標識訊息的數值。最後兩個引數都是32位的訊息引數,提供關於訊息的更多資訊。這些引數包含每個訊息型態的詳細資訊。有時訊息引數是兩個存放在一起的16位值,而有時訊息引數又是乙個指向字串或資料結構的指標。

lresult callback wndproc (hwnd hwnd, uint message, wparam wparam, lparam lparam)//視窗處理函式,uint==unsigned int,lresult==long。wparam的w是word,l是long

//結構的wparam欄位是傳遞給postquitmessage函式的值(通常是0)。然後return敘述將退出winmain並終止程式。

return defwindowproc (hwnd, message, wparam, lparam) ;//呼叫defwindowproc來為視窗訊息處理程式不予處理的所有訊息提供內定處理,這是很重要的。不然一般動作,如終止程式,將不會正常執行

}

第乙個windows程式

includeint winapi winmain hinstance hinstance,hinstance hprevinstance,lpstr ipcmdline,int ncmdshow 如題,第乙個win程式,執行結果如圖 首次執行過程出現這個問題 發現是message寫錯,首字母沒有大...

我的第乙個windows應用程式

建立乙個windows應用程式,有以下基本步驟 建立視窗類 註冊視窗類 建立視窗 顯示視窗 訊息迴圈 編寫視窗過程 訊息處理函式 如下 include stdafx.h lresult callback windowproc hwnd hwnd,uint umsg,wparam wparam,lpa...

我的第乙個程式

我的第乙個vc程式終於寫完了,花了2周,之前從沒有用vc寫過程式,也沒讀過什麼程式,只是在看書,看了幾百頁 mfc windows程式設計 正好有個機會,老師讓寫個vc程式,就試著寫了。程式的功能是不同地方的access的更新的記錄整合到一台機子上的access中,支援斷網自動連線,用的是socke...