典型的Windows应用程序代码

来源:互联网 发布:狙击步枪子弹编程图片 编辑:程序博客网 时间:2024/05/23 19:58
#includeLRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ WNDCLASS wndclass; // 定义窗口类结构变量 HWND hwnd; // 定义窗口句柄 MSG msg; // 定义消息结构变量 wndclass.style = CS_HREDRAW|CS_VREDRAW; // 改变窗口大小重画 wndclass.lpfnWndProc = WndProc; // 窗口函数为WndProc wndclass.cbClsExtra = 0; // 窗口类无扩展 wndclass.cbWndExtra = 0; // 窗口实例无扩展 wndclass.hInstance = hInstance; // 注册窗口类的实例句柄 wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION); // 窗口用默认图标 wndclass.hCursor = LoadCursor(NULL, IDI_APPLICATION); // 窗口用箭头光标 wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); // 背景为白色 wndclass.lpszMenuName = NULL; // 窗口默认无菜单 wndclass.lpszClassName = "Chap1Exa1"; // 窗口类名为Chap1Exa1 if(!RegisterClass(&wndclass)) return FALSE; // 注册窗口类,失败则返回  hwnd = CreateWindow("Chap1Exa1", // 窗口类名      "Chap1Exa1", // 窗口名      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)) // 获取消息,遇WM_QUIT退出循环 {  TranslateMessage(&msg); // 键盘消息转换  DispatchMessage(&msg); // 消息给窗口函数 } return msg.wParam;}LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ HDC hdc; // 定义设备描述表句柄 PAINTSTRUCT ps; // 定义绘图信息结构变量  switch(message) { case WM_PAINT: // 重画窗口客户区消息  hdc = BeginPaint(hwnd, &ps); // 获取需重画窗口的设备描述表句柄  TextOut(hdc, 20, 60, "The First Windows Application Showing Window", 44); // 客户区坐标(20,60)处显示文本,限制为35个字母  EndPaint(hwnd,&ps); // 结束要重画的窗口  return 0; case WM_DESTROY: // 撤销窗口信息  PostQuitMessage(0); // 产生退出程序消息WM_QUIT  return 0; } return DefWindowProc(hwnd,message,wParam,lParam); // 其他转默认窗口函数}

运行结果:



原创粉丝点击