怎样用c语言开发一个有界面的软件

%title插图%num

怎样用c语言开发一个有界面的软件。

要创建图形界面,一般要调用windows操作系统的API函数的,比如CreateWindw(),ShowWindow(),UpdateWindow()等函数,还要用到一些 结构体,WNDCLASS, MSG等等,当然也可以用MFC类库,这是个很复杂的问题,一两句话也说不清,如果楼主真打算要学,建议看《Windwos程序设计》,最新版是第五版,微软出版社出版,国内有翻译成中文版的,这可是 圣经级 的著作,整个书有1000多页,楼主好好学吧。如果不方便买书的话可以到网上下载电子版本看,楼主好好学啊! 下面贴两个例子,用Visual C++ 编译: /*--------------------------------------------------------------    HelloMsg.c -- Displays "Hello, Windows 98!" in a message box                  (c) Charles Petzold, 1998   --------------------------------------------------------------*/ #include <windows.h> int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,                     PSTR szCmdLine, int iCmdShow) {      MessageBox (NULL, TEXT ("Hello, Windows 98!"), TEXT ("HelloMsg"), 0) ;      return 0 ; } 第二个: /*------------------------------------------------------------    HELLOWIN.C -- Displays "Hello, Windows 98!" in client area                  (c) Charles Petzold, 1998   ------------------------------------------------------------*/ #include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,                     PSTR szCmdLine, int iCmdShow) {      static TCHAR szAppName[] = TEXT ("HelloWin") ;      HWND         hwnd ;      MSG          msg ;      WNDCLASS     wndclass ;      wndclass.style         = CS_HREDRAW | CS_VREDRAW ;      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  = NULL ;      wndclass.lpszClassName = szAppName ;      if (!RegisterClass (&wndclass))      {           MessageBox (NULL, TEXT ("This program requires Windows NT!"),                        szAppName, MB_ICONERROR) ;           return 0 ;      }      hwnd = CreateWindow (szAppName,                  // window class name                           TEXT ("The Hello Program"), // window caption                           WS_OVERLAPPEDWINDOW,        // window style                           CW_USEDEFAULT,              // initial x position                           CW_USEDEFAULT,              // initial y position                           CW_USEDEFAULT,              // initial x size                           CW_USEDEFAULT,              // initial y size                           NULL,                       // parent window handle                           NULL,                       // window menu handle                           hInstance,                  // program instance handle                           NULL) ;                     // creation parameters            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) {      HDC         hdc ;      PAINTSTRUCT ps ;      RECT        rect ;            switch (message)      {      case WM_CREATE:           PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;           return 0 ;      case WM_PAINT:           hdc = BeginPaint (hwnd, &ps) ;                      GetClientRect (hwnd, &rect) ;                      DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,                     DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;           EndPaint (hwnd, &ps) ;           return 0 ;                 case WM_DESTROY:           PostQuitMessage (0) ;           return 0 ;      }      return DefWindowProc (hwnd, message, wParam, lParam) ; }