zoukankan      html  css  js  c++  java
  • 模态对话框练习

    x.h头文件

    #define ID_SAVE 12
    #define ID_OPEN 13
    #define ID_EXIT 14
    #define ID_ABOUT 15

    x.rc //资源文件

    #include <windows.h>
    #include "x.h"
    MENU MENU
    BEGIN
    POPUP "文件(&F)\t Ctrl+F"
    BEGIN
    MENUITEM "保存(&S)\t Ctrl+S", ID_SAVE
    MENUITEM "打开(&O)\t Ctrl+O", ID_OPEN
    MENUITEM SEPARATOR
    MENUITEM "退出(&X)", ID_EXIT
    END
    POPUP "帮助(&H)\t Ctrl+H"
    BEGIN
    MENUITEM "关于(&A)\t Ctrl+A", ID_ABOUT
    END
    END


    /////////////////////////////////////////////////////////////////////////////
    //
    // Accelerator
    //

    MENU ACCELERATORS
    BEGIN
    "^S", ID_SAVE, ASCII
    "^O", ID_OPEN, ASCII
    END

    About DIALOG 10,10,100,50
    STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU
    CAPTION "关于"
    FONT 18,"楷体"
    BEGIN
    CTEXT "WINDOWS模态对话框",-1,13,10,18,10
    DEFPUSHBUTTON "确定",IDOK,35,30,30,12
    END

    #include <windows.h>
    #include "x.h"

    HINSTANCE hin;
    HMENU hmenu, haddmenu; //定义菜单句柄
    BOOL CALLBACK DlgProc(HWND hdlg, UINT message, UINT wParam, UINT lParam);
    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow)
    {
    HWND hwnd;
    MSG Msg;
    HACCEL hAccel;
    hin = hInstance;
    WNDCLASS wndclass;
    char lpszMenuName[] = "Menu";
    char lpszClassName[] = "菜单";
    char lpszTitle[] = "My_Menu_Example";
    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);

    //加载加速键资源
    hAccel = LoadAccelerators(hInstance, lpszMenuName);
    while (GetMessage(&Msg, NULL, 0, 0))
    {
    //在消息循环中截获加速键消息
    if (!TranslateAccelerator(hwnd, hAccel, &Msg))
    {
    TranslateMessage(&Msg);
    DispatchMessage(&Msg);
    }
    }

    return Msg.wParam;
    }

    LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    hmenu = GetMenu(hwnd);
    HDC hdc;
    PAINTSTRUCT ps;
    switch (message)
    {
    case WM_COMMAND:
    switch (LOWORD(wParam))
    {
    case ID_OPEN:
    MessageBox(hwnd, "文件打开成功!", "文件打开", MB_OK);
    break;
    case ID_SAVE:
    MessageBox(hwnd, "文件保存成功", "文件保存", MB_OK);
    break;
    case ID_EXIT:
    MessageBox(hwnd, "退出", "退出",MB_OK);
    break;
    case ID_ABOUT:

    int i=DialogBox(hin, "About", hwnd, (DLGPROC)DlgProc);
    break;
    }
    break;
    case WM_PAINT:
    hdc = BeginPaint(hwnd, &ps);
    SetTextColor(hdc,RGB(255, 0, 0));
    SetBkColor(hdc,RGB(0, 255, 0));
    TextOut(hdc, 0, 0, "fenglei", 7);
    EndPaint(hwnd, &ps);
    break;
    case WM_DESTROY:
    PostQuitMessage(0);
    break;
    default:
    return DefWindowProc(hwnd, message, wParam, lParam);
    }
    return 0;
    }

    BOOL CALLBACK DlgProc(HWND hdlg, UINT message, UINT wParam, UINT lParam)
    {
    switch (message) {
    case WM_INITDIALOG:
    return 1;
    case WM_COMMAND:
    switch (LOWORD(wParam))
    {
    case IDOK: //关闭对话框
    EndDialog(hdlg, 0);
    }
    break;
    case WM_CLOSE:
    EndDialog(hdlg, 0);
    break;
    }
    return 0;
    }

  • 相关阅读:
    240. Search a 2D Matrix II
    442. Find All Duplicates in an Array
    4. Median of Two Sorted Arrays
    3. Longest Substring Without Repeating Characters
    poj 3616
    cf 337 div2 c
    poj 2385
    poj 2229
    uvalive 3231
    Entity Framework 学习初级篇7--基本操作:增加、更新、删除、事务
  • 原文地址:https://www.cnblogs.com/nanfengnan/p/13757532.html
Copyright © 2011-2022 走看看