freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

面向對象與可視化程序設計第六講-資料下載頁

2025-09-25 20:38本頁面
  

【正文】 3. 消息循環(huán)部分的處理 4. 關閉對話框的函數(shù) 與模態(tài)對話框的編程較類似,但略有差別 2. 創(chuàng)建對話框函數(shù) HWND CreateDialog ( HINSTANCE hInstance, //當前應用程序實例句柄 LPCTSTR lpszDialogName, //對話框名 HWND hwndParent, //擁有該對話框的窗口句柄 WNDPROC lpDialogFunc //對話框處理函數(shù)地址 ) 無此項則無法在屏幕上顯示 非模態(tài)對話框的編程方法 52 3. 消息循環(huán)部分的處理 由于 非模態(tài)對話框 允許 應用程序向其他窗口發(fā)送消息,因此,消息循環(huán)中 必須具備 截獲發(fā)往非模態(tài)對話框的消息的能力,并送到相應的對話框處理函數(shù)進行處理。其消息循環(huán)過程的一般形式為: while (GetMessage (amp。Msg,NULL,0,0)) { if (! IsDialogMessage (hdlg,amp。Msg)) { TranslateMessage (amp。Msg)。 DispatchMessage (amp。Msg)。 } } 判斷是否為發(fā)往非模態(tài)對話框的消息,若是,則將消息發(fā)送到WndProc進行處理 4. 關閉對話框的函數(shù) 非模態(tài)對話框調用函數(shù) DestroyWindow關閉對話框 DOOL DestroyWindow (HWND hdlg) 53 【 例 74】 本例中,在 “ 關于 ” 窗口不關閉的前提下,仍可以對 “文件 ” 下拉菜單進行操作,如選 “ 文件 ” 下拉菜單中的 “ 創(chuàng)建 ” 選項,即可彈出 “ 創(chuàng)建 ” 窗口 非模態(tài)對話框應用實例 54 include include HWND hdlg。 //對話框句柄 HINSTANCE hInst。 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM)。 BOOL CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM)。 int WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInst, LPSTR lpszCmdLine,int nCmdShow) HWND hwnd 。 MSG Msg 。HACCEL hAccel。 WNDCLASS wndclass 。 char lpszMenuName[]=Menu。 char lpszClassName[] = 非模態(tài)對話框 。 char lpszTitle[]= 非模態(tài)對話框演示程序 。 = 0。 …… = lpszClassName 。 if(!RegisterClass(amp。wndclass)) {MessageBeep(0)。return FALSE。} hwnd = CreateWindow(……,……,……,……) 。 ShowWindow(hwnd,nCmdShow)。 UpdateWindow(hwnd)。 hInst=hInstance。 hAccel=LoadAccelerators(hInst,lpszMenuName)。 while( GetMessage(amp。Msg, NULL, 0, 0)) { //截獲非模態(tài)對話框消息并發(fā)往處理函數(shù) if(!IsDialogMessage(hdlg,amp。Msg)) { if (!TranslateAccelerator(hwnd,hAccel,amp。Msg)) { TranslateMessage(amp。Msg)。 DispatchMessage(amp。Msg)。} } } return 。 } 55 LRESULT CALLBACK WndProc(……,……,……,……) { switch(message) { case WM_COMMAND: switch(LOWORD(wParam)) {case IDM_NEW: MessageBox(hwnd,文件創(chuàng)建成功! ,文件創(chuàng)建 ,MB_OK)。 break。 case IDM_OPEN: MessageBox(hwnd,文件打開成功! ,文件打開 ,MB_OK)。 break。 case IDM_SAVE: MessageBox(hwnd,文件保存成功! ,文件保存 ,MB_OK)。 break。 case IDM_SAVEAS: break。 case IDM_CLOSE: break。 case IDM_EXIT: SendMessage(hwnd,WM_DESTROY,0,0)。 break。 case IDM_ABOUT: //調用函數(shù) CreateDialog創(chuàng)建非模態(tài)對話框 hdlg=CreateDialog(hInst,About,hwnd,(DLGPROC)DlgProc)。break。 } break。 case WM_DESTROY: PostQuitMessage(0)。 break。 default: return DefWindowProc(hwnd,message,wParam,lParam)。 } return 0。 } 56 //對話框窗口處理函數(shù) BOOL CALLBACK DlgProc(HWND hdlg,UINT message, WPARAM wParam,LPARAM lParam) { switch(message) { //初始化消息框 case WM_INITDIALOG: return 1。 //處理消息框消息 case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: //關閉消息框 DestroyWindow( hdlg) 。 return 1 。 } break。 case WM_CLOSE: DestroyWindow( hdlg) 。 return 1。 } return 0。 } 57 【 例 66】 編寫一個窗口應用程序,其中有一個 VC菜單項,該菜單下面有 “ 顯示 ” 、 “ 隱藏 ” 、 “ 退出 ” 選項,當選擇 “ 顯示” 對話框時,窗口中顯示一個對話框,在對話框中顯示 “ 我們一起來學習 VC++ ” ,如圖 69所示。當選擇 “ 隱藏 ” 選項時,對話框消失,選擇 “ 退出 ” 選項時,退出應用程序的運行。 58 1. include 2. include 3. Menu MENU DISCARDABLE //定義菜單條 4. { 5. POPUP 文件 (amp。F) //定義 文件 彈出菜單 6. { MENUITEM 顯示 , IDM_SHOW //定義 顯示 菜單 7. MENUITEM 隱藏 , IDM_HIDE //定義 隱藏 菜單 8. MENUITEM SEPARATOR //定義分割條 9. MENUITEM 退出 , IDM_EXIT //定義 退出 菜單 10. } 11. } 12. Show DIALOG 50,50,100,30 //定義 Show對話框 //樣式 :細實線邊框 ,彈出式 13. STYLE DS_MODALFRAME|WS_POPUP|WS_CAPTION|WS_VISIBLE. 14. CAPTION //無標題 15. FONT 12, “楷體 ” //定義對話框中的文本字體類型和大小 16. { //輸出字符串 .1為標識 ,13為 X坐標, 10為 Y坐標 ,80為寬度 ,10為高度 17. CTEXT 我們一起來學習 VC++,1,13,10,80,10 18. } 59 include include long WINAPI WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)。 BOOL CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM)。 //對話框處理函數(shù) HWND hDlg。 //定義對話框句柄 HINSTANCE hInst。 //定義應用程序實例句柄 int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow) { …… …… while(GetMessage(amp。Message,0,0,0)) { if(!IsDialogMessage(hDlg,amp。Message)) //若是對話框消息 ,發(fā)往對話框處理函數(shù) { TranslateMessage(amp。Message)。 //消息循環(huán) DispatchMessage(amp。Message)。 } } return 。 } 60 long WINAPI WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) {switch(iMessage) {case WM_COMMAND: switch(LOWORD(wParam)) {case IDM_SHOW: //點擊 Show菜單 hDlg=CreateDialog(hInst,Show,hWnd,(DLGPROC)DlgProc)。//顯示對話框 break。 case IDM_HIDE: //點擊 Hide菜單 DestroyWindow(hDlg)。 break。 //刪除對話框 case IDM_EXIT: //點擊 Exit菜單 SendMessage(hWnd,WM_DESTROY,0,0)。 break。 //發(fā)送退出消息 } break。 case WM_DESTROY: //退出 PostQuitMessage(0)。 break。 default: return(DefWindowProc(hWnd,iMessage,wParam,lParam))。 } return 0。 } BOOL CALLBACK DlgProc(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam) {switch(message) { case WM_INITDIALOG: //初始化對話框 return 1。} return 0。 } 61 Windows系統(tǒng) 提供了一系列常用的通用對話框如“顏色”、“打開”、“保存”等,這些對話框模板在系統(tǒng)提供的 通用對話框的創(chuàng)建,需要 填充對話框模板結構 和 調用函數(shù)顯示對話框 兩個步驟 1.填充對話框模板數(shù)據(jù)結構 系統(tǒng)通用對話框數(shù)據(jù)結構如下: ?OPENFILENAME: 打開文件通用對話框的數(shù)據(jù)結構 ?CHOOSECOLOR: 選擇顏色數(shù)據(jù)結構 ?CHOOSEFONT: 選擇字體數(shù)據(jù)結構 ?PRINTDLG: 打印對話框數(shù)據(jù)結構 ?PAGESETUPDLG: 頁面設置數(shù)據(jù)結構 ?FINDREPLACE: 查找對話框數(shù)據(jù)結構 通用對話框資源 62 2.調用函數(shù)顯示對話框 Windows系統(tǒng) 提供一系列 API函數(shù)用以顯示通用對話框 ChooseFont 顯示“字體”對話框 GetSaveFileName 顯示“保存”對話框 ChooseColor 顯示“顏色”對話框 PageSetupDlg 顯示“頁面設置”對話框 FindText 顯示“查找”對話框 PrintDlg 顯示“打印”對話框 GetOpenFileName 顯示“文件”對話框 ReplaceText 顯示“替換”對話框 例如調用函數(shù) GetOpenFileName顯示“ OPEN”對話框形式如下: GetOpenFileName( amp。ofn); //ofn為 OPENFILENAME結構。 63 通用對話框 應用實例 【 例 75】 通用對話框的應用。本程序調用系統(tǒng)提供的“ 打開文件”對話框。該程序在響應 WM_
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1