win32 窗体

#include <windows.h>
#include <stdio.h>
#include "stdlib.h"

 

LRESULT CALLBACK WinSunProc(
       HWND hwnd,      // 窗口句柄
       UINT uMsg,      // 消息id
       WPARAM wParam, // 附加信息
       LPARAM lParam   // 附加信息
       );

int WINAPI WinMain(
       HINSTANCE hInstance,      // 应用程序实例
       HINSTANCE hPrevInstance, //
       LPSTR lpCmdLine,          // 命令行参数
       int nCmdShow              // 显示模式
       )
{
 //定义窗口类
 
 WNDCLASS win;
 win.style=CS_HREDRAW | CS_VREDRAW ;//类型窗口的样式 风格 水平重画和垂直重画
 win.lpfnWndProc=WinSunProc;//窗口过程函数(回调函数)函数指针

 win.cbClsExtra=0;   // 一般为0   附加内存空间
 win.cbWndExtra=0;   // 一般为0   窗口附加内存
 win.hbrBackground=(HBRUSH)GetStockObject(0);//背景画刷句柄
 win.hCursor=LoadCursor(NULL,IDC_CROSS); //光标句柄
 win.hIcon=LoadIcon(NULL,IDI_ERROR); //窗口类的图标句柄
 win.hInstance=hInstance;            //包含窗口过程的实例句柄

 win.lpszClassName="11";//窗口类名
 //win.lpszMenuName=LoadMenu(NULL,IDR_MENU1) ;//菜单资源名
 win.lpszMenuName=NULL ;
 /
 //定义窗口类
 RegisterClass(&win);//注册窗口类

 HWND hwnd;
 hwnd=CreateWindow("11","zhangyongfeng",WS_OVERLAPPEDWINDOW,
  100,100,600,400,NULL,NULL,hInstance,NULL); //创建窗口

 ShowWindow(hwnd,SW_SHOWNORMAL);//显示窗口
 UpdateWindow(hwnd);//更新窗口
 //消息获取 循环函数
 //
 /*
 BOOL GetMessage(
 LPMSG lpMsg,   //消息结构指针
 HWND hWnd, //从哪个窗口获得消息 NULL接受任何窗口的消息
 UINT wMsgFilterMin, //消息最小值 通常为0
 UINT wMsgFilterMax //消息最大值 2个都是0 表示接受所有消息
 );
 */
 MSG msg;
 while(GetMessage(&msg,NULL,0,0))//接受所有的消息
 {
  TranslateMessage(&msg);//解析消息
  DispatchMessage(&msg); //派发消息
 }

 /
 return 0;
}

LRESULT CALLBACK WinSunProc(   //回掉函数
       HWND hwnd,      // handle to window
       UINT uMsg,      // message identifier
       WPARAM wParam, // first message parameter
       LPARAM lParam   // second message parameter
       )
{
 int x,y;
 long* pp= (long*) malloc( sizeof(100));
 switch(uMsg)
 {
  //case WM_COMMAND:
  // switch(wParam) {
  // case :
  //   ;
  //   break;
  //
  // }
 case WM_KEYDOWN:
  switch(wParam)
  {
  case VK_F1:
   MessageBox(hwnd,"F1 pressed","F1 pressed",MB_OK); break;
  case VK_F2:
   MessageBox(hwnd,"F2 pressed","F2 pressed",MB_OK); break;
   //在这里可以添加更多按键的处理过程
  case VK_ADD:
   MessageBox(hwnd,"F2 pressed","F2 pressed",MB_OK); break;

  }

  break;
 case WM_CHAR: //接受按键消息
  SetTimer(hwnd,1,1000,0);
  char szChar[20];
  sprintf(szChar,"char is %c",wParam);
  MessageBox(hwnd,szChar,"窗口标题",MB_YESNO);
  break;
 case WM_TIMER:
  pp= (long*) malloc( sizeof(100));
  // MessageBox(hwnd,"鼠标右键","鼠标右键",MB_OK);
  //pp=fopen("C:/Documents and Settings/Administrator/桌面/zhy.txt","at+");

 case WM_RBUTTONDOWN://接受鼠标右健消息

  //MessageBox(hwnd,"鼠标右键","鼠标右键",MB_OK);
  //break;
 case WM_LBUTTONDOWN: //得到当鼠标左键按下时的鼠标位置
  /*x = LOWORD(lParam);
  y = HIWORD(lParam);
  char info[20];
  sprintf(info,"%d,%d",x,y);
  MessageBox(hwnd,info,"鼠标左键",MB_OK);*/
 case WM_PAINT://接受绘制消息
  HDC hDC;
  PAINTSTRUCT ps;
  hDC=BeginPaint(hwnd,&ps);
  TextOut(hDC,100,100,"手好痛阿。。 !",strlen("手好通阿。。 !"));
  //LineTo(hDC,100,100);
  EndPaint(hwnd,&ps);
  break;


 case WM_CLOSE://接受关闭消息
  if(IDYES==MessageBox(hwnd,"是否真的结束?","窗口标题",MB_YESNO))
  {
   DestroyWindow(hwnd);
  }
  break;
 case WM_DESTROY://接受销毁窗口消息
  PostQuitMessage(0);

  break;

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值