Win32简单模板

  1. // 2Window_Timer.cpp : 定义应用程序的入口点。
  2. //
  3. #include <windows.h>
  4. #include <iostream>
  5. #include "resource1.h"
  6. //宏定义输出函数
  7. #define PrintLog(x) WriteConsole(g_hStdout, x, strlen(x), NULL, NULL);
  8. HINSTANCE g_hInst;
  9. HANDLE g_hStdout = NULL;
  10. CHAR szText[256] = { 0 };
  11. void OnCommand(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
  12. {
  13. int hMenuID = LOWORD(wParam);
  14. switch (hMenuID)
  15. {
  16. case ID_EXIT:
  17. PostQuitMessage(0);
  18. break;
  19. }
  20. }
  21. LRESULT CALLBACK WndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
  22. {
  23. switch (nMsg)
  24. {
  25. case WM_COMMAND:
  26. OnCommand(hWnd, nMsg, wParam, lParam);
  27. break;
  28. case WM_DESTROY:
  29. PostQuitMessage(0);
  30. break;
  31. }
  32. return DefWindowProc(hWnd, nMsg, wParam, lParam);
  33. }
  34. BOOL RegisterWnd(LPSTR pszClassName)
  35. {
  36. WNDCLASSEX wce = { 0 };
  37. wce.cbSize = sizeof(wce);
  38. wce.cbClsExtra = 0;
  39. wce.cbWndExtra = 0;
  40. wce.hbrBackground = HBRUSH(COLOR_BTNFACE + 1);
  41. wce.hCursor = NULL;
  42. wce.hIcon = NULL;
  43. wce.hIconSm = NULL;
  44. wce.hInstance = g_hInst;
  45. wce.lpfnWndProc = WndProc;
  46. wce.lpszClassName = pszClassName;
  47. wce.lpszMenuName = NULL;
  48. wce.style = CS_VREDRAW | CS_HREDRAW;
  49. ATOM aTom = RegisterClassEx(&wce);
  50. if (aTom == 0)
  51. {
  52. return FALSE;
  53. }
  54. else
  55. {
  56. return TRUE;
  57. }
  58. }
  59. HWND CreateWnd(LPSTR pszClassName)
  60. {
  61. //加入菜单
  62. HMENU hMainMenu = LoadMenu(g_hInst, MAKEINTRESOURCE(IDR_MAIN));
  63. HWND hWnd = CreateWindowEx(0, pszClassName, "风火中原", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
  64. NULL, hMainMenu, g_hInst, NULL);
  65. return hWnd;
  66. }
  67. void showWnd(HWND hWnd)
  68. {
  69. ShowWindow(hWnd, SW_SHOW);
  70. UpdateWindow(hWnd);
  71. }
  72. void msg()
  73. {
  74. MSG msg = { 0 };
  75. while (GetMessage(&msg, NULL, 0, 0))
  76. {
  77. TranslateMessage(&msg);
  78. DispatchMessage(&msg);
  79. }
  80. }
  81. //控制台
  82. void ConsoleWnd()
  83. {
  84. AllocConsole();
  85. g_hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
  86. CHAR szText[] = "Debug start:\n";
  87. PrintLog(szText);
  88. }
  89. int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd)
  90. {
  91. g_hInst = hInstance;
  92. ConsoleWnd();
  93. RegisterWnd("OOOO");
  94. HWND hWnd = CreateWnd("OOOO");
  95. showWnd(hWnd);
  96. msg();
  97. return 0;
  98. }

来自为知笔记(Wiz)

时间: 2024-10-28 11:29:44

Win32简单模板的相关文章

PHP自写简单模板引擎,供新手学习

今天要写点小东西,突然想到要用模板引擎.就"随手"写了一个,发上来供新手学习.搞了这么久PHP,想想也真是感慨,当年研究了几天的东西现在一两个小时就弄完了,当年一起完耍的女神现在已经不知所踪了...咳咳,下面是代码: <?php /**************** * @author: 一曲忧伤 * @email: [email protected] * @discription: 简单模板引擎 */ class view { var $tpl_dir = 'template';

敌兵布阵 (线段树简单模板题)

https://vjudge.net/contest/318019#problem C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况.由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视. 中央情报局要研究敌人究竟演习什么战术,所以Tidy要随时向

python win32 简单操作

源由 刚开始是帮朋友做一个按键精灵操作旺信的脚本,写完后各种不稳定:后来看到python可以操作win32相关的api,恰好这一段时间正在学习python,感觉练手的时候到了~~~ 下载 要注意Python版本及位数,否则会安装失败 直接到上面的地址去找合适的版本下载安装,已包含其它的工具 下载的已经是可执行文件,直接执行即可 https://sourceforge.net/projects/pywin32/ 获取句柄的方式 VC或VS工具里面自带SPY++,可以获取句柄信息, 这个你没有,请看

Java:封装POI实现word的docx文件的简单模板功能

一:场景 通过Word模板来实现动态的word生成 二: 基本要求 1:替换文本中的内容 2:替换表格中的内容(不用动态生成表格) 3:替换后的内容应该与替换前的内容格式相同 4:模板修改方便 5:效果如下: 模板: 结果: 三:poi分析 使用方法:直接读取word文件,替换里面各个部分的内容 优点:直接使用word文件作为模板 缺点:本身的替换逻辑无法保留格式 四:为什么选择封装POI 1:因为时间和学习成本(懒)的问题,没有研究docx的xml规则,因此决定直接对现有的工具进行封装,来实现

tornado api 简单模板

# 安装 pip insatll tornado # 主文件 web_server.py #!/usr/bin/env python # encoding: utf-8 import tornado.httpserver import tornado.options import tornado.web from tornado.options import define,options import sys,os,re from apicode import Apicode reload(sy

简单模板view调用

$this->display();//模板名称与当前控制器.当前操作方法的名称不一致 $this->display();//调用当前控制器对应目录指定名称的模板 $this->display();调用其他控制器下的具体模板文件

Word套用简单模板实例(docx模块)

套用模板(简单)实例 1 from docx import Document 2 from docx.enum.text import WD_ALIGN_PARAGRAPH 3 from docx.shared import Pt 4 from docx.oxml.ns import qn 5 6 lists = ["张三", "李四", "王五", "赵六"] # 合同清单 7 8 for change in lists:

WIN32窗口模板

1 // WINATLTest.cpp : 定义应用程序的入口点. 2 // 3 4 #include "stdafx.h" 5 #include "WINATLTest.h" 6 7 #define MAX_LOADSTRING 100 8 9 // 全局变量: 10 HINSTANCE hInst; // 当前实例 11 TCHAR szTitle[MAX_LOADSTRING]; // 标题栏文本 12 TCHAR szWindowClass[MAX_LOAD

链式栈简单模板代码

1 #include<iostream> 2 #include<stdlib.h> 3 using namespace std; 4 5 template <class T> 6 class LinkStack; 7 template <class T> 8 class StackNode 9 { 10 public: 11 friend class LinkStack<T>; 12 private: 13 T data; 14 StackNod