日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

Visual C++ MFC——基于Shell的Windows GUI小程序DEMO(打开计算器|打开记事本|IP查询|Windows激活状态查询)

發(fā)布時(shí)間:2024/10/5 c/c++ 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Visual C++ MFC——基于Shell的Windows GUI小程序DEMO(打开计算器|打开记事本|IP查询|Windows激活状态查询) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

基本概念

Shell

Shell 是一個(gè)用 C 語言編寫的程序,它是用戶使用 Linux 的橋梁。Shell 既是一種命令語言,又是一種程序設(shè)計(jì)語言。

Shell 是指一種應(yīng)用程序,這個(gè)應(yīng)用程序提供了一個(gè)界面,用戶通過這個(gè)界面訪問操作系統(tǒng)內(nèi)核的服務(wù)。

API

#include "stdio.h" //輸入和輸出 #include "assert.h" //用于驗(yàn)證程序做出的假設(shè),并在假設(shè)為假時(shí)輸出診斷消息。 #include "windows.h" //window程序需要的重要頭文件,封裝了許多庫函數(shù)以及一些類,將一些復(fù)雜的工作由庫函數(shù)處理。 #include "shellapi.h" //Shell API

開發(fā)環(huán)境?

Visual Studio 2019?

操作步驟

1、創(chuàng)建新項(xiàng)目?

2、打開資源視圖

視圖->其他視圖->資源視圖

快捷鍵:Ctrl+Shift+E

3、新建對話框?

4、GUI設(shè)計(jì)

注:?

1、在屬性欄中找到對應(yīng)的Caption屬性便可以修改顯示文字

2、點(diǎn)擊左側(cè)的工具箱,可以拖動Button控件到界面上

源代碼

分析菜單選擇?

// 分析菜單選擇:switch (wmId){case IDM_ABOUT:DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);break;case IDM_TOOL:DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG1), hWnd, Tool);break;case IDM_EXIT:DestroyWindow(hWnd);break;default:return DefWindowProc(hWnd, message, wParam, lParam);}

消息處理

// “工具”框的消息處理程序。 INT_PTR CALLBACK Tool(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) {UNREFERENCED_PARAMETER(lParam);printf("%ud",message);switch (message){case WM_INITDIALOG:return (INT_PTR)TRUE;case WM_COMMAND:if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL){EndDialog(hDlg, LOWORD(wParam));return (INT_PTR)TRUE;}else if (LOWORD(wParam) == IDC_BUTTON1) {HINSTANCE hRslt = ShellExecute(NULL, _T("open"),_T("calc.exe"), NULL, NULL, SW_SHOWNORMAL);assert(hRslt > (HINSTANCE)HINSTANCE_ERROR);}else if (LOWORD(wParam) == IDC_BUTTON2) {HINSTANCE hRslt = ShellExecute(NULL, _T("open"),_T("notepad.EXE"), NULL, NULL, SW_SHOWNORMAL);assert(hRslt > (HINSTANCE)HINSTANCE_ERROR);}else if (LOWORD(wParam) == IDC_BUTTON3) {HINSTANCE hRslt = ShellExecute(NULL, _T("open"),_T("Nslookup.EXE"), NULL, NULL, SW_SHOWNORMAL);assert(hRslt > (HINSTANCE)HINSTANCE_ERROR);}else if (LOWORD(wParam) == IDC_BUTTON4) {HINSTANCE hRslt = ShellExecute(NULL, _T("open"),_T("slmgr.vbs"), L"-xpr", NULL, SW_SHOWNORMAL);assert(hRslt > (HINSTANCE)HINSTANCE_ERROR);}break;}return (INT_PTR)FALSE; }

全部主要代碼

// Project3.cpp : 定義應(yīng)用程序的入口點(diǎn)。 //#include "framework.h" #include "Project3.h" #include "stdio.h" #include "assert.h" #include "windows.h " #include "shellapi.h " #define MAX_LOADSTRING 100// 全局變量: HINSTANCE hInst; // 當(dāng)前實(shí)例 WCHAR szTitle[MAX_LOADSTRING]; // 標(biāo)題欄文本 WCHAR szWindowClass[MAX_LOADSTRING]; // 主窗口類名// 此代碼模塊中包含的函數(shù)的前向聲明: ATOM MyRegisterClass(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE, int); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); INT_PTR CALLBACK Tool(HWND, UINT, WPARAM, LPARAM);int APIENTRY wWinMain(_In_ HINSTANCE hInstance,_In_opt_ HINSTANCE hPrevInstance,_In_ LPWSTR lpCmdLine,_In_ int nCmdShow) {UNREFERENCED_PARAMETER(hPrevInstance);UNREFERENCED_PARAMETER(lpCmdLine);// TODO: 在此處放置代碼。// 初始化全局字符串LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);LoadStringW(hInstance, IDC_PROJECT3, szWindowClass, MAX_LOADSTRING);MyRegisterClass(hInstance);// 執(zhí)行應(yīng)用程序初始化:if (!InitInstance (hInstance, nCmdShow)){return FALSE;}HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_PROJECT3));MSG msg;// 主消息循環(huán):while (GetMessage(&msg, nullptr, 0, 0)){if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)){TranslateMessage(&msg);DispatchMessage(&msg);}}return (int) msg.wParam; }// // 函數(shù): MyRegisterClass() // // 目標(biāo): 注冊窗口類。 // ATOM MyRegisterClass(HINSTANCE hInstance) {WNDCLASSEXW wcex;wcex.cbSize = sizeof(WNDCLASSEX);wcex.style = CS_HREDRAW | CS_VREDRAW;wcex.lpfnWndProc = WndProc;wcex.cbClsExtra = 0;wcex.cbWndExtra = 0;wcex.hInstance = hInstance;wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_PROJECT3));wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_PROJECT3);wcex.lpszClassName = szWindowClass;wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));return RegisterClassExW(&wcex); }// // 函數(shù): InitInstance(HINSTANCE, int) // // 目標(biāo): 保存實(shí)例句柄并創(chuàng)建主窗口 // // 注釋: // // 在此函數(shù)中,我們在全局變量中保存實(shí)例句柄并 // 創(chuàng)建和顯示主程序窗口。 // BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) {hInst = hInstance; // 將實(shí)例句柄存儲在全局變量中HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);if (!hWnd){return FALSE;}ShowWindow(hWnd, nCmdShow);UpdateWindow(hWnd);return TRUE; }// // 函數(shù): WndProc(HWND, UINT, WPARAM, LPARAM) // // 目標(biāo): 處理主窗口的消息。 // // WM_COMMAND - 處理應(yīng)用程序菜單 // WM_PAINT - 繪制主窗口 // WM_DESTROY - 發(fā)送退出消息并返回 // // LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {switch (message){case WM_COMMAND:{int wmId = LOWORD(wParam);// 分析菜單選擇:switch (wmId){case IDM_ABOUT:DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);break;case IDM_TOOL:DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG1), hWnd, Tool);break;case IDM_EXIT:DestroyWindow(hWnd);break;default:return DefWindowProc(hWnd, message, wParam, lParam);}}break;case WM_PAINT:{PAINTSTRUCT ps;RECT rect;HDC hdc = BeginPaint(hWnd, &ps);// TODO: 在此處添加使用 hdc 的任何繪圖代碼...GetClientRect(hWnd, &rect); DrawText(hdc, TEXT("Hello World!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);EndPaint(hWnd, &ps);}break;case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hWnd, message, wParam, lParam);}return 0; }// “關(guān)于”框的消息處理程序。 INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) {UNREFERENCED_PARAMETER(lParam);switch (message){case WM_INITDIALOG:return (INT_PTR)TRUE;case WM_COMMAND:if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL){EndDialog(hDlg, LOWORD(wParam));return (INT_PTR)TRUE;}break;}return (INT_PTR)FALSE; }// “工具”框的消息處理程序。 INT_PTR CALLBACK Tool(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) {UNREFERENCED_PARAMETER(lParam);printf("%ud",message);switch (message){case WM_INITDIALOG:return (INT_PTR)TRUE;case WM_COMMAND:if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL){EndDialog(hDlg, LOWORD(wParam));return (INT_PTR)TRUE;}else if (LOWORD(wParam) == IDC_BUTTON1) {HINSTANCE hRslt = ShellExecute(NULL, _T("open"),_T("calc.exe"), NULL, NULL, SW_SHOWNORMAL);assert(hRslt > (HINSTANCE)HINSTANCE_ERROR);}else if (LOWORD(wParam) == IDC_BUTTON2) {HINSTANCE hRslt = ShellExecute(NULL, _T("open"),_T("notepad.EXE"), NULL, NULL, SW_SHOWNORMAL);assert(hRslt > (HINSTANCE)HINSTANCE_ERROR);}else if (LOWORD(wParam) == IDC_BUTTON3) {HINSTANCE hRslt = ShellExecute(NULL, _T("open"),_T("Nslookup.EXE"), NULL, NULL, SW_SHOWNORMAL);assert(hRslt > (HINSTANCE)HINSTANCE_ERROR);}else if (LOWORD(wParam) == IDC_BUTTON4) {HINSTANCE hRslt = ShellExecute(NULL, _T("open"),_T("slmgr.vbs"), L"-xpr", NULL, SW_SHOWNORMAL);assert(hRslt > (HINSTANCE)HINSTANCE_ERROR);}break;}return (INT_PTR)FALSE; }

運(yùn)行結(jié)果

參考文章

https://blog.csdn.net/zmdsjtu/article/details/52311107

https://www.cnblogs.com/hengxilee/articles/5432496.html

https://blog.csdn.net/Jailman/article/details/86690444

總結(jié)

以上是生活随笔為你收集整理的Visual C++ MFC——基于Shell的Windows GUI小程序DEMO(打开计算器|打开记事本|IP查询|Windows激活状态查询)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本黄色a级片 | 亚洲一区二区三区四区在线观看 | 99久精品视频 | 日韩另类视频 | 美女啪啪无遮挡 | 美女av影院 | 老司机午夜免费精品视频 | 婷婷亚洲一区 | 777免费视频 | 手机看片日韩在线 | 国产精品一区在线看 | 亚洲性综合网 | 国产伦精品一区二区三区四区免费 | www 在线观看视频 | 已满18岁免费观看电视连续剧 | 久久精品小视频 | 久久.com| 精品成人国产 | 欧美久草 | 亚洲欧美在线视频观看 | 韩日一区二区 | 白丝av| 五月天婷婷激情网 | 日韩久久成人 | 免费观看日批视频 | 亚洲av熟女国产一区二区性色 | 欧美一级视频免费 | 不许穿内裤随时挨c调教h苏绵 | 一区二区三区久久久 | 一级做a爰 | 亚洲男女视频 | 我要看18毛片 | 日韩av片在线播放 | 天天插天天干天天操 | 99re在线精品视频 | 在线视频免费播放 | 久草视频在线免费看 | 不卡一区在线观看 | 成人短视频在线播放 | 精品国产91久久久久久久妲己 | 婷婷久久精品 | 天天天天天干 | 性一交一黄一片 | www,xxx日本| 一级中国毛片 | 亚洲国产中文字幕在线观看 | 黑人精品xxx一区一二区 | 国产精品一区不卡 | 国产网站视频 | 尹人综合网 | 佐佐木明希电影 | 久久国产网 | 精品午夜久久久 | 成人av网站免费 | 黄色片欧美 | 蜜桃成人av| 人人爽人人爽人人 | 婷婷av在线 | 黄色三级在线视频 | 亚洲在线影院 | 国产精品欧美综合亚洲 | 久久久久久久久国产精品一区 | 国产精品第8页 | 亚洲中字幕 | 中文在线不卡 | 亚洲熟女综合色一区二区三区 | 你懂的视频网站 | 毛片无限看 | 国产一二在线观看 | 图书馆的女友动漫在线观看 | 国产精品无码内射 | 狠狠香蕉 | 婷婷视频在线 | 日本女优网址 | 国产一区视频在线观看免费 | 国产黑丝91 | 亚洲成人午夜在线 | 久久久久久久久一区 | 国模精品一区二区三区 | 一级视频在线观看 | 91中文| 久久久成人免费视频 | av小说在线| 在线不欧美 | 最新中文字幕视频 | 99热这里只有精品8 国产一卡二 | 国产精品你懂得 | 国产免费黄色 | 麻豆视频在线观看免费网站黄 | 国产精品后入内射日本在线观看 | mm131丰满少妇人体欣赏图 | 99热在线免费 | 最新中文字幕av专区 | 精品国产免费av | 在线激情| 摸丰满大乳奶水www免费 | 黄色片在线看 | 亚洲另类网站 | 亚洲九九九九 |