设为首页 加入收藏

TOP

一、Windows对话框—建立「About」对话框
2012-11-05 12:35:39 】 浏览:453
Tags:Windows 对话 建立 About

Windows程序即使不需要接收使用者输入,也通常具有由菜单上的「About」选项启动的对话框,该对话框用来显示程序的名字、图标、版权旗标和标记为「OK」的按键,也许还会有其它信息(例如技术支持的电话号码)。我们将要看到的第一个程序除了显示一个「About」对话框外,别无它用。这个ABOUT1程序如程序11-1所示:

程序11-1 ABOUT1
        ABOUT1.C        /*------------------------------------------------------------------------          ABOUT1.C -- About Box Demo Program No. 1                                                         (c) Charles Petzold, 1998        -------------------------------------------------------------------------*/        #include <windows.h>        #include "resource.h"        LRESULT     CALLBACK WndProc                     (HWND, UINT, WPARAM, LPARAM) ;        BOOL               CALLBACK AboutDlgProc         (HWND, UINT, WPARAM, LPARAM) ;        int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,                                                                 PSTR szCmdLine, int iCmdShow)        {                  static TCHAR szAppName[] = TEXT ("About1") ;                   MSG                                  msg ;                   HWND                                 hwnd ;            WNDCLASS                             wndclass ;                                     wndclass.style                               = CS_HREDRAW | CS_VREDRAW ;                   wndclass.lpfnWndProc                         = WndProc ;                   wndclass.cbClsExtra                          = 0 ;                   wndclass.cbWndExtra                          = 0 ;                   wndclass.hInstance                           = hInstance ;                   wndclass.hIcon                               = LoadIcon (hInstance, szAppName) ;                   wndclass.hCursor                             = LoadCursor (NULL, IDC_ARROW) ;                   wndclass.hbrBackground              = (HBRUSH) GetStockObject (WHITE_BRUSH) ;                   wndclass.lpszMenuName                = szAppName ;                   wndclass.lpszClassName               = szAppName ;                              if (!RegisterClass (&wndclass))                   {                          MessageBox (NULL, TEXT ("This program requires Windows NT!"),                       szAppName, MB_ICONERROR) ;                          return 0 ;                   }                              hwnd = CreateWindow (szAppName, TEXT ("About Box Demo Program"),                                          WS_OVERLAPPEDWINDOW,                                          CW_USEDEFAULT, CW_USEDEFAULT,                                       CW_USEDEFAULT, CW_USEDEFAULT,                                         NULL, NULL, hInstance, NULL) ;                              ShowWindow (hwnd, iCmdShow) ;                   UpdateWindow (hwnd) ;                              while (GetMessage (&msg, NULL, 0, 0))                   {                                  TranslateMessage (&msg) ;                                  DispatchMessage (&msg) ;                  }                   return msg.wParam ;        }        LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)        {                   static HINSTANCE hInstance ;                   switch (message)                   {                   case   WM_CREATE :                        hInstance = ((LPCREATESTRUCT) lParam)->hInstance ;                          return 0 ;                                   case   WM_COMMAND :                          switch (LOWORD (wParam))                          {                          case IDM_APP_ABOUT :                                                 DialogBox (hInstance, TEXT ("AboutBox"), hwnd, AboutDlgProc) ;                                               break ;                          }                          return 0 ;                                   case   WM_DESTROY :                          PostQuitMessage (0) ;                          return 0 ;                   }                   return DefWindowProc (hwnd, message, wParam, lParam) ;        }        BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT message,WPARAM wParam, LPARAM lParam)        {                   switch (message)                   {                   case   WM_INITDIALOG :                          return TRUE ;                                   case   WM_COMMAND :                          switch (LOWORD (wParam))                          {                          case   IDOK :                          case   IDCANCEL :                                                 EndDialog (hDlg, 0) ;                                                 return TRUE ;                 }                          break ;            }          return FALSE ;        }        
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇一、Windows对话框—对话框及其模.. 下一篇一、Windows对话框—模态对话框

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目