⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.c

📁 窗口式文件开发,刚学的,可以来看一下,和大家交流一下吗?
💻 C
字号:
/*generic.c*/
#include "windows.h"
#include "generic.h"
HANDLE hInst;
int PASCAL WinMain(hInstance,hPrevInstance,lpCmdLine,nCmdShow)
HANDLE hInstance;
HANDLE hPrevInstance;
LPSTR lpCmdLine;
int nCmdShow;
{
  MSG msg;
  if(!hPrevInstance)
    if(!InitApplication(hInstance))
      return(FALSE);
  if(!InitInstance(hInstance,nCmdShow))
    return(FALSE);
  while(GetMessage(&msg,NULL,NULL,NULL))
  {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
  }
  return(msg.wParam);
}
BOOL InitApplication(hInstance)
HANDLE hInstance;
{
  WNDCLASS wc;
  wc.style=NULL;
  wc.lpfnWndProc=MainWndProc;
  wc.cbClsExtra=0;
  wc.cbWndExtra=0;
  wc.hInstance=hInstance;
  wc.hIcon=LoadIcon(NULL,IDC_APPLICATION);
  wc.hCursor=LoadCursor(NULL,IDC_ARROW);
  wc.hbrBackground=GetStockObject(WHITE_BRUSH);
  wc.lpszMenuName="GenericMenu";
  wc.lpszClassName="GenericWClass";
  return(RegisterClass(&wc));
}
BOOL InitInstance(hInstance,nCmdShow)
HANDLE hInstance;
int nCmdShow;
{
  HWND hWnd;
  hInst=hInstance;
  hWnd=CreateWindow("GenericWCLass","Generic Sample Application",WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    NULL,
    NULL,
    hInstance,
    NULL
    );
  if(!hWnd)
    return(FALSE);
  ShowWindow(hWnd,nCmdShow);
  UpdateWindow(hWnd);
  return(TRUE);
}
long FAR PASCAL MainWndProc(hWnd,message,wParam,lParam)
HWND hWnd;
unsigned message;
WORD wParam;
LONG lParam;
{
  FARPROC lpProcAbout;
  switch(message)
  {
    case WM_COMMAND:
    if(wParam==IDM_ABOUT)
    {
      lpProcAbout=MakeProcInstance(About,hInst);
      DialogBox(hInst,"AboutBox",hWnd,lpProcAbout);
      FreeProcInstance(lpProcAbout);
      break;
    }
    else
      return(DefWindowProc(hWnd,message,wParam,lParam));
    case WM_DESTROY:
      PostQuitMessage(0);
      break;
    default:
      return(DefWindowProc(hWnd,message,wParam,lParam));
  }
  return(NULL);
}
BOOL FAR PASCAL About(hDlg,message,wParam,lParam)
HWND hDlg;
unsigned message;
WORD wParam;
LONG lParam;
{
  switch(message)
  {
    case WM_INITDIALOG:
      return(TRUE);
    case WM_COMMAND:
      if(wParam==IDOK||wParam==IDCANCEL)
      {
EndDialog(hDlg,TRUE);
return(TRUE);
      }
      break;
  }
  return(FALSE);
}

/*generic.h*/
#define IDM_ABOUT 100
#define IDC_APPLICATION 200
int PASCAL WinMain(HANDLE,HANDLE,LPSTR,int);
BOOL  InitApplication(HANDLE);
BOOL  InitInstance(HANDLE,int);
long FAR PASCAL  MainWndProc(HWND,unsigned,WORD,LONG);
BOOL FAR PASCAL  About(HWND,unsigned,WORD,LONG);

/*generic.rc*/
#include "windows.h"
#include "generic.h"
IDC_APPLICATION ICON LOADONCALL MOVEABLE
GenericMenu MENU
BEGIN
  POPUP  "&Help"
  BEGIN
   MENUITEM"About Generic...",IDM_ABOUT
  END
END
Aboutbox DIALOG 22,17,144,75
STYLE DS_MODALFAME|WS_CAPTION|WS_SYSMENU
CAPTION"About Generic"
BEGIN
  CTEXT "Microsoft Windows" -1,0,5,144,8
  CTEXT "Generic Application" -1,0,14,144,8
  CTEXT "Version 3.0" -1,0,34,144,8
  DEFPUSHBUTTON "OK" IDOK,53,59,32,14,WS_GROUP
END

/*generic.def*/
NAME Generic;
DESCRIPTION 'Sample Microsoft Windows Application';
EXETYPE WINDOWS   ;
STUB 'WINSTUB.EXE';
CODE MOVEABLE DISCARDABLE;
DATA MOVEABLE MULTIPLE;
HEAPSIZE 1024;
STACKSIZE 5120;
EXPORTS
  MainWndProc @1;
  AboutDlgProc  @2;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -