首页 电脑 电脑学堂 查看内容

简单的Window窗口编程实例详解

2009-9-24 10:13 726 0

摘要: 新手的朋友可以看看,也比较简单.之前学MFC写的 /**************************************Code:L4nk0r(www.l4nkor.org)Function...
关键词: 数据 nbsp 服务器 用户 XMLHttpRequest Ajax 页面 处理 对象 更新

新手的朋友可以看看,也比较简单.之前学MFC写的 /**************************************Code:L4nk0r(www.l4nkor.org)Function:Create windows**************************************/#include <windows.h>#include <stdio.h>// 回调函数的声明LRESULT CALLBACK WinProc(  HWND hwnd,      // 窗口句柄  UINT uMsg,      // 消息标识符  WPARAM wParam,  // first message parameter  LPARAM lParam   // second message parameter);int WINAPI WinMain(  HINSTANCE hInstance,  // 当前实例句柄  HINSTANCE hPrevInstance,  // 前一个实例句柄  LPSTR lpCmdLine,      // 命令行参数  int nCmdShow          // 窗体显示模式){  /* 设计窗口类 */  WNDCLASS wnd;  wnd.cbClsExtra=0;  wnd.cbWndExtra=0;  // 设置窗体背景画刷  wnd.hbrBackground=(HBRUSH)GetStockObject(DEFAULT_PALETTE);  // 加载进入程序区域的鼠标,第一个参数为null表示使用系统  wnd.hCursor=LoadCursor(NULL,IDC_ARROW);  // 加载程序图标,第一个参数为null表示使用系统图标  wnd.hIcon=LoadIcon(NULL,IDI_APPLICATION);  // 当前窗体实例句柄  wnd.hInstance=hInstance;  // 窗口回调函数,消息处理函数  wnd.lpfnWndProc=WinProc;  // 窗口类的名称,创建窗口时要用到  wnd.lpszClassName="wndclass";  // 窗口是否加载菜单,这里没加载设置为NULL  wnd.lpszMenuName=NULL;  // 窗口类的显示模式  wnd.style=CS_VREDRAW|CS_HREDRAW; // 水平重画和垂直重画    /* 注册窗口类 */  RegisterClass(&wnd);  /* 创建窗口 */  HWND hwnd;  hwnd=CreateWindow("wndclass","L4nk0r程序设计窗口实例",WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX,0,0,400,400,NULL,NULL,hInstance,NULL);  /* 显示窗口 */  ShowWindow(hwnd,SW_SHOW);  UpdateWindow(hwnd);    /* 消息循环,从该程序的消息队列*/  MSG msg; // 消息结构体  while(GetMessage(&msg,NULL,0,0))  {    // 转换消息产生新消息,比如WM_XX等宏的转换,并投递到消息队列    TranslateMessage(&msg);    // 派送消息    DispatchMessage(&msg);  }  return 0;}/* 回调函数的定义 */LRESULT CALLBACK WinProc(  HWND hwnd,      // 窗口句柄  UINT uMsg,      // 消息标识符  WPARAM wParam,  // first message parameter  LPARAM lParam   // second message parameter  ){  switch(uMsg)  {    // 接收键盘输入  case WM_CHAR:    // 接收输入的一个缓冲区    char szChar[20];    // 格式化输入内容    sprintf(szChar,"按下键的ASCII: %c",wParam);    MessageBox(hwnd,szChar,"L4nk0r",0);    break;    // 鼠标右键按下事件  case WM_LBUTTONDOWN:    MessageBox(hwnd,"鼠标右键按下","L4nk0r",0);    // 获取系统设备表    HDC hdc;    hdc=GetDC(hwnd);    TextOut(hdc,0,50,"My Blog:www.l4nkor.org",strlen("My Blog:www.l4nkor.org"));    // 释放设备    ReleaseDC(hwnd,hdc);    break;  case WM_PAINT:    HDC hDC;    PAINTSTRUCT ps;    hDC=BeginPaint(hwnd,&ps);    TextOut(hdc,0,50,"My Blog:www.l4nkor.org",strlen("My Blog:www.l4nkor.org"));    EndPaint(hwnd,&ps);    break;  case WM_CLOSE:    if(IDYES==MessageBox(hwnd,"您要关闭窗口?","L4nk0r",MB_YESNO))    {      DestroyWindow(hwnd); // 窗口销毁    }    break;  case WM_DESTROY:    PostQuitMessage(0);    break;  default:    return DefWindowProc(hwnd,uMsg,wParam,lParam); // 其他消息给系统默认处理函数处理  }  return 0;}
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部