MOOC清华《VC++面向对象与可视化程序设计》第5章:对话框资源例程(非模态对话框样例)
来源:互联网 发布:单片机点亮led灯程序 编辑:程序博客网 时间:2024/06/07 14:12
#include <windows.h> #include "001.h"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[] = "非模态对话框"; char lpszTitle[]= "非模态对话框演示程序";wndclass.style = 0; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra= 0 ; wndclass.cbWndExtra= 0 ; wndclass.hInstance = hInstance ; wndclass.hIcon = LoadIcon( NULL, IDI_APPLICATION) ; wndclass.hCursor = LoadCursor( NULL, IDC_ARROW) ; wndclass.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH) ; wndclass.lpszMenuName = lpszMenuName ; wndclass.lpszClassName = lpszClassName ; if( !RegisterClass( &wndclass)) { MessageBeep(0) ; return FALSE ;}hwnd = CreateWindow(lpszClassName, lpszTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL) ; ShowWindow( hwnd, nCmdShow) ;UpdateWindow(hwnd); hInst=hInstance;hAccel=LoadAccelerators(hInst,lpszMenuName); while( GetMessage(&Msg, NULL, 0, 0)){ //截获非模态对话框消息并发往处理函数if(!IsDialogMessage(hdlg,&Msg)) { if(!TranslateAccelerator(hwnd,hAccel,&Msg)) {TranslateMessage( &Msg) ;DispatchMessage( &Msg) ; } } } return Msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){ switch(message) { case WM_COMMAND:switch(LOWORD(wParam)) {case IDM_NEW:MessageBox(hwnd,"文件创建成功!","文件创建",MB_OK); break; case IDM_OPEN:MessageBox(hwnd,"文件打开成功!","文件打开",MB_OK); break;case IDM_SAVE:MessageBox(hwnd,"文件保存成功!","文件保存",MB_OK); break;case IDM_EXIT:SendMessage(hwnd,WM_DESTROY,0,0); break; case IDM_ABOUT://调用函数CreateDialog创建非模态对话框hdlg=CreateDialog(hInst,"About",hwnd,(DLGPROC)DlgProc); break; } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,message,wParam,lParam); } return 0;}//对话框窗口处理函数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) ; } break; case WM_CLOSE:DestroyWindow( hdlg) ; break; } return 0; }
#define IDM_NEW 10#define IDM_OPEN 11#define IDM_SAVE 13#define IDM_EXIT 15#define IDM_ABOUT 20
#include <windows.h>#include "001.h"Menu MENU DISCARDABLE { POPUP "文件(&F)"{ MENUITEM "新建(&N)\t Ctrl+N", IDM_NEW MENUITEM "打开(&O)\t Ctrl+O", IDM_OPEN MENUITEM SEPARATOR MENUITEM "保存(&S)\t Ctrl+S", IDM_SAVE MENUITEM SEPARATOR MENUITEM "退出(&X)", IDM_EXIT } POPUP "帮助(&H)" { MENUITEM "关于(&A)...", IDM_ABOUT }}Menu ACCELERATORS {"^N", IDM_NEW "^O", IDM_OPEN "^S", IDM_SAVE }About DIALOG 50, 50, 100, 50STYLE DS_MODALFRAME|WS_POPUP | WS_CAPTION | WS_SYSMENU|WS_VISIBLE//非模态对话框 //的风格中应包含WS_VISIBLECAPTION "关于"FONT 12, "楷体"{CTEXT "Windows对话框示例",-1,13,10,80,10DEFPUSHBUTTON "确定",IDOK,35,30,30,12}
阅读全文
0 0
- MOOC清华《VC++面向对象与可视化程序设计》第5章:对话框资源例程(非模态对话框样例)
- MOOC清华《VC++面向对象与可视化程序设计》第5章:对话框资源例程(模态对话框样例)
- MOOC清华《VC++面向对象与可视化程序设计》第4章:键盘操作例程(五个对话框)
- MOOC清华《VC++面向对象与可视化程序设计》第5章:位图资源例程
- MOOC清华《VC++面向对象与可视化程序设计》第5章:图标资源例程
- MOOC清华《VC++面向对象与可视化程序设计》第5章:菜单资源例程(创建统计计算菜单项)
- MOOC清华《VC++面向对象与可视化程序设计》第4章:鼠标操作例程(灰白选框)
- MOOC清华《VC++面向对象与可视化程序设计》第3章:补例-诗文扇面
- MOOC清华《VC++面向对象与可视化程序设计》第2章:Windows绘图-例(1)静态图形的绘制
- MOOC清华《VC++面向对象与可视化程序设计》第2章:Windows绘图-例(3)移动图形的绘制
- MOOC清华《VC++面向对象与可视化程序设计》第3章:Windows文本-例(1)文本显示示例程序
- MOOC清华《VC++面向对象与可视化程序设计》第3章:Windows文本-例(2)字体、颜色、下划线
- MOOC清华《VC++面向对象与可视化程序设计》第3章:Windows文本-例(3)动态文本的显示
- MOOC清华《VC++面向对象与可视化程序设计》第3章:Windows文本-例(4)竖排的古诗
- MOOC清华《VC++面向对象与可视化程序设计》第3章:编程作业-艺术字的显示
- MOOC清华《VC++面向对象与可视化程序设计》第1章:空白窗口的创建(空项目)
- MOOC清华《VC++面向对象与可视化程序设计》第1章:空白窗口的创建(Win32项目)
- MOOC清华《VC++面向对象与可视化程序设计》第2章:编程作业-渐变图形的绘制(“万花筒”程序)
- 初识C语言
- Java中sleep()与wait()的区别
- ssl2293-暗黑游戏【dp练习题】
- JVM虚拟机的一些参数设置
- 【Java学习笔记】重写equals()方法
- MOOC清华《VC++面向对象与可视化程序设计》第5章:对话框资源例程(非模态对话框样例)
- leetCode-Container With Most Water
- 实用的网站
- 幸运大奖
- 黑盒测试之----等价类划分
- 这项技能,希望你也拥有
- 阿里巴巴代码检查插件
- 春泥
- 七层网络&各种软件级负载均衡器的对比