求助 ! API版HelloWorld

来源:互联网 发布:jsp页面js格式化日期 编辑:程序博客网 时间:2024/04/28 14:38

//wnd2.cpp
#include "wnd2.h" //头文件

//全局变量
char szTitle[] = "Easy Hello Program"; //标题条字符串
char szWindowClass[] = "W32";         //窗口类名
char szMenuName[] = "NULL";            //菜单名

/***********************WinMain****************************
功能--初始化及注册窗口类 创建窗口进入消息循环及终止应用程序
参数-- hInstance  当前实例
         hPrevInstance 前一实例
         lpCmdLine  命令行
         nCmdShow  选择显示窗口或图标
返回值--msg.wParam
**********************************************************/

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
{
     MSG msg;      //声明消息结构对象
     InitApplication (hInstance);     //注册窗口
     //初始化
     if (!InitInstance (hInstance, nCmdShow) )        //PostQuitMessage(0)结束消息循环
          return FALSE;
 //消息循环
 while (GetMessage( &msg, NULL, 0, 0) )
 {
       TranslateMessage (&msg);  //检索消息
       DispatchMessage (&msg);   //将信息间接传给函数指针
 }
 return msg.wParam; //结束消息循环传回PostQuitMessage
}

/**************************InitApplication**********************
功能--注册窗口类
参数--hInstance  当前实例
返回值-- 如果成功 返回一个惟一的整数
            如果失败 返回0
***************************************************************/
ATOM InitApplication (HINSTANCE hInstance)
{
    WNDCLASS wc;  //声明窗口类结构对象
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = (WNDPROC)WndProc;  //回调函数的函数指针
    wc.cbClsExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    wc.lpszMenuName = szMenuName;
    wc.lpszClassName = szWindowClass;
    return RegisterClass(&wc);  //注册
}

/******************InitInatance**************************
功能--用来创建窗口
参数--hInstance 当前实例
   nCmdShow 选择显示窗口或图标
返回值--创建成功返回非零值 否则返回0
*********************************************************/
BOOL InitInstance (HINSTANCE hInstance, int nCmdShow)
{
    HWND hWnd;    //声明窗口句柄
    //使用CreateWindow函数创建窗口并返回句柄
    hWnd = CreateWindow( //填函数参数
    szWindowClass,  //窗口类名
    szTitle,   //标题条内容
    WS_OVERLAPPEDWINDOW |  //显示方式
    WS_VSCROLL | WS_HSCROLL, //具有水平和垂直滚动条
    CW_USEDEFAULT,  //x的起点坐标
    CW_USEDEFAULT,  //y的起点坐标
    CW_USEDEFAULT,  //窗口宽度
    CW_USEDEFAULT,  //窗口高度
    NULL,    //父窗口句柄
    NULL,    //窗口菜单句柄
    hInstance,   //实例句柄
    NULL    //附加数据
  );
 if (!hWnd)    //判断是否创建成功
       return FALSE;
   ShowWindow( hWnd, nCmdShow); //创建成功则显示窗口
   UpdateWindow( hWnd); //送出WM_PAINT消息
  return TRUE;   //返回创建成功标志
}

 

//wnd21.cpp
#include "wnd2.h"  //程序窗口程序

/*******************WndProc*******************************
功能--处理主窗口发生的信息
参数--hWnd  消息的窗口句柄
   message 消息
   wParam MSG消息结构中的域
   lParam MSG消息结构中的域
*********************************************************/
LRESULT CALLBACK WndProc(HWND hWnd, UINT message,
       WPARAM wParam, LPARAM lParam)
{
  PAINTSTRUCT ps;
  HDC hdc;
  char szHello[] = "Hello";  //输出字符串的内容
  switch (message)    //筛选消息
 {
  case WM_PAINT:     //主窗口画图消息
       hdc = BeginPaint (hWnd, &ps);
       TextOut (hdc, 80, 150, szHello, strlen(szHello) );
       EndPaint (hWnd, &ps);
       break;
 case WM_DESTROY:    //窗口已经撤销 准备结束程序运行
      PostQuitMessage (0);  //发送WM_QUIT消息 结束消息循环
      break;
      default:      //处理系统消息
  return DefWindowProc( hWnd, message, wParam, lParam);
  }
 return 0;
}

 

//wnd2.h
#include<windows.h>  //Windows程序的头文件

//全局变量
extern char szTitle[];   //标题条字符串
extern char szWindowClass[]; //窗口类名

//函数原型声明
ATOM InitApplication( HINSTANCE);
BOOL InitInstance (HINSTANCE, int);
LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM);
int APIENTRY WinMain( HINSTANCE, HINSTANCE, LPSTR, int);

 

 

编译通过,但运行时无结果显示。求助!!

原创粉丝点击