当前位置: 首页 > news >正文

网站seo怎样做网站建设一百万

网站seo怎样做,网站建设一百万,义乌哪里做网站好,做网站语言学什么1 基础概念 什么是窗口#xff1f; 答#xff1a;窗口就是屏幕上的一片区域#xff0c;接受用户的输入#xff0c;显示程序的输出。可以包含标题栏、菜单栏、工具栏以及控件等。什么是句柄#xff1f; 答#xff1a; 作为一种管理和操作系统资源的机制#xff0c;提供了…1 基础概念 什么是窗口 答窗口就是屏幕上的一片区域接受用户的输入显示程序的输出。可以包含标题栏、菜单栏、工具栏以及控件等。什么是句柄 答 作为一种管理和操作系统资源的机制提供了对各种对象和资源的访问能力。通过使用句柄程序可以与特定的资源进行交互和操作。资源的编号、二级指针窗口类对象是啥 C窗口类对象与窗口并不是一回事它们之间惟一的关系是 C窗口类对象内部定义了一个窗口句柄变量保存了与这个 C窗口类对象相关的那个窗口的句柄。窗口销毁时与之对应的 C窗口类对象销毁与否要看其生命周期是否结束。但 C窗口类对象销毁时与之相关的窗口也将销毁常用的结构体以及函数等 //1.用户提供的基于 Windows 的图形应用程序的入口点 int __clrcall WinMain(// __clrcall是一种调用约定主要涉及函数参数传递方式、函数参数的压栈顺序等[in] HINSTANCE hInstance,// 应用程序的当前实例的句柄[in, optional] HINSTANCE hPrevInstance,// 应用程序上一个实例的句柄。 此参数始终为NULL。[in] LPSTR lpCmdLine,// 应用程序的命令行不包括程序名称。[in] int nShowCmd// 控制窗口的显示方式。 );//2.窗口结构体 typedef struct tagWNDCLASSA {UINT style;// 类样式WNDPROC lpfnWndProc;// 指向窗口过程的指针int cbClsExtra;// 要根据窗口类结构分配的额外字节数。 系统将字节初始化为零int cbWndExtra;// 在窗口实例之后分配的额外字节数。 系统将字节初始化为零。HINSTANCE hInstance;// 实例的句柄该实例包含类的窗口过程。HICON hIcon;// 类图标的句柄。此成员必须是图标资源的句柄。如果此成员为NULL则系统会提供默认图标。HCURSOR hCursor;// 类游标的句柄。 此成员必须是游标资源的句柄。 HBRUSH hbrBackground;// 类背景画笔的句柄。LPCSTR lpszMenuName;// 类菜单的资源名称该名称显示在资源文件中。LPCSTR lpszClassName;// 指向以 null 结尾的字符串的指针或是原子。 } WNDCLASSA, *PWNDCLASSA, *NPWNDCLASSA, *LPWNDCLASSA;//3.从与应用程序实例关联的可执行文件 (.EXE) 文件中加载指定的游标资源 // 如果函数成功则返回值是新加载的游标的句柄。如果函数失败则返回值为 NULL。 HCURSOR LoadCursorA(// DLL或可执行文件(.exe 模块的句柄)包含要加载的游标的文件。// 若要加载预定义的系统游标请将此参数设置为 NULL。[in, optional] HINSTANCE hInstance,// 如果 hInstance 为非 NULL 则 lpCursorName 按名称或序号指定游标资源//如果 hInstance 为 NULL 则 lpCursorName 将指定标识符 (从要加载的预定义系统游标的 IDC_前缀) 开始 [in] LPCSTR lpCursorName ); //4.从与应用程序实例关联的可执行 (.exe) 文件中加载指定的图标资源。 HICON LoadIconA( // DLL 或可执行文件 (.exe 模块的句柄) 包含要加载的图标的文件 // 若要加载预定义的系统图标请将此参数设置为 NULL[in, optional] HINSTANCE hInstance,// 如果hInstance为非NULL则 lpIconName 按名称或序号指定图标资源。// 如果hInstance为NULL则 lpIconName 将指定标识符(从要加载的预定义系统图标的IDI_前缀)开始 [in] LPCSTR lpIconName ); //5.检索其中一支股票笔、画笔、字体或调色板的句柄 HGDIOBJ GetStockObject([in] int i ); //6.注册一个窗口类 ATOM RegisterClassA([in] const WNDCLASSA *lpWndClass// 指向 WNDCLASS 结构的指针 );// 7. 该函数创建一个重叠式窗口、弹出式窗口或子窗口。 // 它指定窗口类窗口标题窗口风格以及窗口的初始位置及大小可选的。 // 函数也指该窗口的父窗口或所属窗口如果存在的话及窗口的菜单。 HWND WINAPI CreateWindow(_In_opt_ LPCTSTR lpClassName, // 窗口类名称_In_opt_ LPCTSTR lpWindowName, // 窗口标题_In_ DWORD dwStyle, // 窗口风格或称窗口格式_In_ int x, // 初始 x 坐标_In_ int y, // 初始 y 坐标_In_ int nWidth, // 初始 x 方向尺寸_In_ int nHeight, // 初始 y 方向尺寸_In_opt_ HWND hWndParent, // 父窗口句柄_In_opt_ HMENU hMenu, // 窗口菜单句柄_In_opt_ HINSTANCE hInstance, // 程序实例句柄_In_opt_ LPVOID lpParam // 创建参数 );//8.设置指定窗口的显示状态 BOOL ShowWindow(// 如果窗口以前可见则返回值为非零值,若隐藏则为0[in] HWND hWnd,// 窗口的句柄[in] int nCmdShow// 控制窗口的显示方式 ); // 9。如果窗口的更新区域不为空 UpdateWindow 函数通过向窗口发送 WM_PAINT 消息来更新指定窗口的工作区。 函数绕过应用程序队列将 WM_PAINT 消息直接发送到指定窗口的窗口过程。 如果更新区域为空则不发送任何消息。 BOOL UpdateWindow([in] HWND hWnd );//10.从调用线程的消息队列中检索消息。 函数调度传入的已发送消息直到已发布的消息可供检索。 BOOL GetMessage([out] LPMSG lpMsg,// 指向 MSG 结构的指针该结构从线程的消息队列接收消息信息。[in, optional] HWND hWnd,// 要检索其消息的窗口的句柄。 窗口必须属于当前线程[in] UINT wMsgFilterMin,// 要检索的最低消息值的整数值。[in] UINT wMsgFilterMax// 要检索的最高消息值的整数值。 );//11.将虚拟密钥消息转换为字符消息。 BOOL TranslateMessage([in] const MSG *lpMsg// 指向 MSG 结构的指针 ); //12.将消息调度到窗口过程 LRESULT DispatchMessage([in] const MSG *lpMsg// 指向包含消息的结构的指针 );//12.包含来自线程的消息队列的消息信息 typedef struct tagMSG {HWND hwnd;// 其窗口过程接收消息的窗口的句柄UINT message;// 消息的标识符WPARAM wParam;// 关于消息的附加信息LPARAM lParam;// 关于消息的附加信息DWORD time;// 消息的发布时间POINT pt;// 发布消息时的光标位置DWORD lPrivate; } MSG, *PMSG, *NPMSG, *LPMSG;消息循环 a.消息是由事件产生的。 b.事件由输入设备触发比如鼠标、键盘等由窗体控件触发比如button,file菜单由Windows内部的事件。 c.消息是事件翻译过来的 d.消息队列系统消息队列以及应用程序消息队列。产生的消息首先由Windows系统捕获放在系统消息队列里再拷贝到对应的应用程序消息队列。 e.消息循环系统为每个应用程序维护一个消息循环消息循环会不断检索自身的消息队列。来一个消息就用GetMessage()取出消息。 2 基本流程 设计一个窗口类 // 1 定义和配置窗口信息 WNDCLASS wndcls; wndcls.cbClsExtra NULL; wndcls.cbWndExtra NULL; wndcls.hbrBackground (HBRUSH)GetStockObject(WHITE_BRUSH); wndcls.hCursor LoadCursor(NULL, IDC_ARROW); wndcls.hIcon LoadIcon(NULL, IDI_APPLICATION); wndcls.hInstance hInstance; // 2 定义交互响应 wndcls.lpfnWndProc MyWinProc;//回调 // 3 定义窗口代号 wndcls.lpszClassName (LPCTSTR)My; wndcls.lpszMenuName NULL; wndcls.style CS_HREDRAW | CS_VREDRAW;// 每当窗口更改大小时让应用程序重新绘制工作区的整个内容注册窗口类 // 注册窗口类RegisterClass(wndcls);创建窗口 HWND hwnd; // HWND是唯一标识和操作窗口对象 hwnd CreateWindow(clsName, msgName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);显示以及更新窗口 ShowWindow(hwnd, SW_SHOWNORMAL); UpdateWindow(hwnd);消息循环 MSG msg; while (GetMessage(msg, NULL, NULL, NULL)) { TranslateMessage(msg); DispatchMessage(msg); }回调函数 LRESULT CALLBACK MyWinProc(HWND hwnd, // 窗口的句柄UINT uMsg, // 消息的标识符 WPARAM wParam, // first message parameter word LPARAM lParam // second message parameter long ) {//uMsg 消息类型int ret; HDC hdc; switch (uMsg) {case WM_CHAR: char szChar[20];sprintf_s(szChar, 您刚才按下了: %c, wParam);MessageBox(hwnd, szChar, char, NULL);break;case WM_LBUTTONDOWN:MessageBox(hwnd, 检测鼠标左键按下, msg, NULL);break;case WM_PAINT: PAINTSTRUCT ps;hdc BeginPaint(hwnd, ps);TextOut(hdc, 0, 0, www.baidu.com, strlen(www.baidu.com));EndPaint(hwnd, ps); MessageBox(hwnd, 重绘, msg, NULL);break;case WM_CLOSE: ret MessageBox(hwnd, 是否真的结束, msg, MB_YESNO);if (ret IDYES) { DestroyWindow(hwnd); }break;case WM_DESTROY: PostQuitMessage(0);break;default:return DefWindowProc(hwnd, uMsg, wParam, lParam);}return 0; } 3 整体代码以及效果 // 创建第一个win32窗口程序 #includeWindows.h #includestdio.hLPCTSTR clsName (LPCTSTR)My; LPCTSTR msgName (LPCTSTR)欢迎学习;// 声明回调函数 LRESULT CALLBACK MyWinProc(HWND hwnd, // 窗口的句柄UINT uMsg, // 消息的标识符 WPARAM wParam, // first message parameter word LPARAM lParam // second message parameter long ); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) {// a 设计一个窗口类// 1 定义和配置窗口信息WNDCLASS wndcls;wndcls.cbClsExtra NULL;wndcls.cbWndExtra NULL;wndcls.hbrBackground (HBRUSH)GetStockObject(WHITE_BRUSH);wndcls.hCursor LoadCursor(NULL, IDC_ARROW);wndcls.hIcon LoadIcon(NULL, IDI_APPLICATION);wndcls.hInstance hInstance;// 2 定义交互响应wndcls.lpfnWndProc MyWinProc;//回调// 3 定义窗口代号wndcls.lpszClassName clsName; wndcls.lpszMenuName NULL; wndcls.style CS_HREDRAW | CS_VREDRAW;// b 注册窗口类RegisterClass(wndcls);// c 创建窗口HWND hwnd; hwnd CreateWindow(clsName, msgName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);// d 显示和刷新窗口ShowWindow(hwnd, SW_SHOWNORMAL);UpdateWindow(hwnd);//e 消息循环 GetMessage 只有在接收到 WM_QUIT 才会返回 0 //TranslateMessage 翻译消息 WM_KEYDOWN 和 WM_KEYUP 合并为 WM_CAHR MSG msg; while (GetMessage(msg, NULL, NULL, NULL)) { TranslateMessage(msg); DispatchMessage(msg); }return msg.wParam; }LRESULT CALLBACK MyWinProc(HWND hwnd, // 窗口的句柄UINT uMsg, // 消息的标识符 WPARAM wParam, // first message parameter word LPARAM lParam // second message parameter long ) {//uMsg 消息类型int ret; HDC hdc; switch (uMsg) {case WM_CHAR: char szChar[20];sprintf_s(szChar, 您刚才按下了: %c, wParam);MessageBox(hwnd, szChar, char, NULL);break;case WM_LBUTTONDOWN:MessageBox(hwnd, 检测鼠标左键按下, msg, NULL);break;case WM_PAINT: PAINTSTRUCT ps;hdc BeginPaint(hwnd, ps);TextOut(hdc, 0, 0, www.baidu.com, strlen(www.baidu.com));EndPaint(hwnd, ps); MessageBox(hwnd, 重绘, msg, NULL);break;case WM_CLOSE: ret MessageBox(hwnd, 是否真的结束, msg, MB_YESNO);if (ret IDYES) { DestroyWindow(hwnd); }break;case WM_DESTROY: PostQuitMessage(0);break;default:return DefWindowProc(hwnd, uMsg, wParam, lParam);} } 效果如下 4 Windows数据类型 WORD 16位无符号整形数据 DWORD 32位无符号整型数据DWORD32 DWORD64 64位无符号整型数据 INT 32位有符号整型数据类型 INT_PTR 指向INT数据类型的指针类型 INT32 32位符号整型 INT64 64位符号整型 UINT 无符号INT LONG 32位符号整型LONG32 ULONG 无符号LONG LONGLONG 64位符号整型LONG64 SHORT 无符号短整型16位 LPARAM 消息的L参数 WPARAM 消息的W参数 HANDLE 对象的句柄最基本的句柄类型 HICON 图标的句柄 HINSTANCE 程序实例的句柄 HKEY 注册表键的句柄 HMODULE 模块的句柄 HWND 窗口的句柄 LPSTR 字符指针也就是字符串变量 LPCSTR 字符串常量 LPCTSTR 根据环境配置如果定义了UNICODE宏则是LPCWSTR类型否则则为LPCSTR类型 LPCWSTR UNICODE字符串常量 LPDWORD 指向DWORD类型数据的指针 CHAR 8比特字节 TCHAR 如果定义了UNICODE则为WCHAR否则为CHAR UCHAR 无符号CHAR WCHAR 16位Unicode字符 BOOL 布尔型变量 BYTE 字节类型8位 CONST 常量 FLOAT 浮点数据类型 SIZE_T 表示内存大小以字节为单位其最大值是CPU最大寻址范围 VOID 无类型相当于标准C语言中的void
http://www.pierceye.com/news/113529/

相关文章:

  • 域名注册网站推荐方案模板
  • 亚运村网站建设北京工商注册官网
  • sql2005做网站书店网站建设人员分配
  • 工商局网站怎么做股东实名认证石家庄网站建设公司怎么样
  • 做公众号的模版的网站国内网站做国外服务器
  • 做国际网站的上海高端网站公司wordpress 4.9.6 下载
  • 学校集约网站建设最牛餐饮营销手段
  • wordpress影视站网站太花哨
  • 青岛 机械 中企动力提供网站建设小说网站怎么做空间小
  • 通江县网站建设做网站到八方资源网怎么样
  • 国家网站建设ssh架构jsp网站开发
  • 浦东新区手机网站设计网络营销做得好的产品
  • 浙江市建设网站市场监督管理局电话举报电话
  • 企业网站的建设的功能定位菏泽百度推广公司电话
  • linux系统怎么做网站女生去住建局好不好
  • 自己搭建环境建设网站网站开发温州
  • 下沙做网站软件erp系统的主要功能
  • 郑州网站建设专家最新手机排行榜2021
  • 宠物店网站建设策划书重庆网站建设 红旗河沟
  • 一般网站自己可以做播放器吗最简单的一个网站开发
  • 网站的开发商务网站安全方案设计
  • 如何建立网站教材漳诈网站建设
  • 开家网站设计公司广州网站建设app开发
  • 建站服务公司网站源码成都游戏外包公司排名
  • 呼伦贝尔网站建设呼伦贝尔astro wordpress
  • 做网站需要好多钱专业制作广告字
  • 网站建设的需要是什么seo营销方案
  • 网站开发服务的协议wordpress自动翻译
  • 网站网站制作400多少钱wordpress 会员积分
  • 天津网站建设首选津坤科技做视频网站用什么好处