API创建窗体范例代码

来源:互联网 发布:java map转json字符串 编辑:程序博客网 时间:2024/06/05 20:19

#include "windows.h"
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);//窗口程序说明

//--------------- 初始化窗口----------------

int WINAPI WinMain(HINSTANCE hInstance,
       HINSTANCE HPrevInst,
       LPSTR  lpszCmdLine,
       int   nCmdShow)
{
 MSG   Msg;
 HWND  hwnd;
 WNDCLASS wndclass;
 char  lpszClassName[] = "窗口"; //窗口类名
 char  lpszTitle[] = "My_Windows";//窗口标题

 wndclass.style = 0;
 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 = lpszClassName;

//------------------窗口注册-------------------------------

 if(!RegisterClass(&wndclass))//窗口注册失败则发出警告声
 {
  MessageBeep(0);
  return FALSE;
 }

 hwnd = CreateWindow(lpszClassName,
      lpszTitle,
      WS_OVERLAPPEDWINDOW,//风格
      CW_USEDEFAULT,
      CW_USEDEFAULT,
      CW_USEDEFAULT,
      CW_USEDEFAULT,
      NULL,    //无父窗口
      NULL,    //无主菜单
      hInstance,
      NULL);

 ShowWindow(hwnd, nCmdShow);    //显示窗口

 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)
{
 switch(message)
 {
 case WM_DESTROY:
  PostQuitMessage(0);
  break;
 case WM_LBUTTONDOWN:
  MessageBox(hwnd,"hello world","ok",NULL);
  break;
 case WM_RBUTTONDOWN:
  MessageBox(hwnd,"welcome","ok",NULL);
  break;

 default:
  return DefWindowProc(hwnd,message,wParam,lParam);
 }
 return(0); 
}

原创粉丝点击