windows32程式開發第一課輸入輸出(小計算器模板)
阿新 • • 發佈:2018-12-31
1.輸出
首先注意win32程式的常規開頭,MessageBox()作為輸出(類似於printf和cout,該函式有四個引數,第一個是其父視窗,第二個第三是字串型別,具體如下圖對應:
第四個引數是每一個框下邊的是,否,取消按鈕,和圖示等。
#include<windows.h> //const char *==LPCSTR //char*=LPSTR int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrev, LPSTR pCmdLine, int nCmdShow) { //window的輸出函式,返回的是點選按鈕的int值 int p=MessageBox(NULL,"第一個windows程式","溫馨提示",MB_YESNOCANCEL|MB_ICONWARNING);//HWND 控制代碼--父視窗,LPCTSTR:字串(主要文字),LPCTSTR(副標題), HWND hd = FindWindow("notepad",NULL);//第一個引數為視窗型別名,第二個為標題名。返回空找不到 return 0; }
2.輸出
這段輸出注意CALLBACK回撥函式,因為輸入資料的方式有很多中,比如鍵盤,滑鼠等。所以回撥函式第一個引數就是該母視窗控制代碼,第二個引數是輸入資料的型別(如用滑鼠點了一下確定),WM_COMMAND是指點選事件,如點確定,取消等按鈕,點x圖示,第三和第四個是訊息資料,wm的低兩個位元組為按鈕ID,來判斷是點選的哪個按鈕。
還有就是GetDlgItemInt()和SetDlgItemInt()分別是讀入編輯框內容和寫入編輯框內容,第一個引數是父視窗控制代碼,第二個引數是編輯框ID,第三個是是否支援負數,若為FALSE,負數即為0.
#include<windows.h> #include"resource.h" //const char *==LPCSTR //char*=LPSTR //IDCANCEL和IDOK為預設按鈕,IDCANCEL對應ESC和x圖示,IDOK對應回車 INT_PTR CALLBACK cb(HWND hd,UINT vt,WPARAM wm,LPARAM lm) { switch (vt)//訊息性質 { case WM_COMMAND: if (LOWORD(wm) == IDC_YES) { int nL=GetDlgItemInt(hd,IDC_1,NULL,TRUE); int nR = GetDlgItemInt(hd, IDC_2, NULL, TRUE); SetDlgItemInt(hd,IDC_3,nL+nR,TRUE); } if (LOWORD(wm) == IDCANCEL) { EndDialog(hd, IDC_CANCEL); } if (LOWORD(wm) == IDC_NO) { MessageBox(hd,"第一個windows程式","溫馨提示",0); } if (LOWORD(wm) == IDC_CANCEL) { EndDialog(hd,IDC_CANCEL); } break; } return 0; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrev, LPSTR pCmdLine, int nCmdShow) { //window的輸出函式,返回的是點選按鈕的int值 DialogBox(hInstance,(LPCSTR)IDD_Main,NULL,cb); return 0; }
效果如下:
可到我的上傳資源下載