笔记——《C语言也能干大事》之对话框程序代码
下面是对话框程序框架代码:
// // resource.h // // 控件 ID. // #define IDD_MAIN 100 #define IDC_OK 101 #define IDC_CANCEL 102 |
// // main.h // #ifndef _MAIN_H #define _MAIN_H #include <windows.h> // // 自定义函数前置声明. // BOOL WINAPI Main_Proc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); BOOL Main_OnInitDialog( HWND hwnd, HWND hwndFocus, LPARAM lParam); void Main_OnCommand( HWND hwnd, int id, HWND hwndCtl, UINT codeNotify); void Main_OnClose( HWND hwnd); <br>#endif |
// // dialogs.cpp // #include <commctrl.h><br>#include "main.h" #include "resource.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { InitCommonControls();<br> // 创建对话框. DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, Main_Proc); return 0; } |
// // main.cpp // #include <windows.h> #include <windowsx.h> #include "main.h" #include "resource.h" // // 主对话框过程. // BOOL WINAPI Main_Proc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand); HANDLE_MSG(hWnd, WM_CLOSE, Main_OnClose); } return FALSE; } BOOL Main_OnInitDialog( HWND hwnd, HWND hwndFocus, LPARAM lParam) { // // Add initializing code here // return TRUE; } void Main_OnCommand( HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) { switch (id) { case IDC_OK: MessageBox(hwnd,TEXT( "You clicked OK!" ),TEXT( "test2" ),MB_OK); EndDialog(hwnd, id); break ; case IDC_CANCEL: MessageBox(hwnd,TEXT( "You clicked Cancel!" ),TEXT( "test2" ),MB_OK); EndDialog(hwnd, id); break ; default : break ; } } void Main_OnClose( HWND hwnd) { EndDialog(hwnd, 0); } |
分类:
Windows SDK
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?