C++实现一个简单的Win32程序

作者在 2008-01-27 10:03:07 发布以下内容


   玩Cfree很久一直是面对着“DOS”的界面,真是看的烦!

下面代码是用C++实现一个简单的Win32程序

/* Note:Your choice is C IDE */
#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))//为程序窗口注册窗口类
     {
            return 0 ;
     }
     //根据窗口类创建一个窗口
     hwnd = CreateWindow (szAppName,                 
                          TEXT ("一个简单的Win32程序"),
                          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)
{
     HDC         hdc ;
     PAINTSTRUCT ps ;
     RECT        rect ;
    
     switch (message)
     {
   
         
     case WM_PAINT:
          hdc = BeginPaint (hwnd, &ps) ; //开始窗口绘制
         
          GetClientRect (hwnd, &rect) ; //获取窗口客户区的尺寸
         
          DrawText (hdc, TEXT ("Hello, 欢迎使用Cfree 4.0 for Windows 集成实验与学习环境!"), -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);//执行默认的消息处理
}


 

C++ | 阅读 2521 次
文章评论,共1条
德边棉整(游客)
2018-04-14 14:38
1
游客请输入验证码
浏览50207次
最新评论