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

猎头公司是什么意思网络优化这个行业怎么样

猎头公司是什么意思,网络优化这个行业怎么样,有哪些测试网站设计非常出色的,银川市住房城乡建设委官方网站文章目录 环境使用库基础概念句柄 程序的入口创建窗口定义窗口类注册窗口类创建窗口 完整代码运行效果 环境 使用的是VSCode MinGW&#xff1b; 使用库 我们使用windows.h库来实现图形化界面。 头文件如下&#xff1a; #include <windows.h>windows.h是 Windows 操作…

文章目录

  • 环境
  • 使用库
  • 基础概念
    • 句柄
  • 程序的入口
  • 创建窗口
    • 定义窗口类
    • 注册窗口类
    • 创建窗口
  • 完整代码
  • 运行效果

环境

使用的是VSCode + MinGW;

使用库

我们使用windows.h库来实现图形化界面。
头文件如下:

#include <windows.h>

windows.h是 Windows 操作系统的核心头文件,它提供了许多与 Windows API 相关的功能和宏定义。

基础概念

句柄

首先我们来了解一个概念,叫句柄。句柄是一种表示、访问或操作资源的引用或标识符。它可以被视为对象或数据结构的抽象表示。简单来说,句柄是指向资源的指针。
在不同的上下文中,句柄可以表示多种类型的资源,比如说:内存句柄、文件句柄、窗口句柄等等许多许多。

句柄通常由操作系统提供和管理,开发者使用句柄来引用和操作资源,而无需了解底层实现的具体细节。句柄的具体实现方式因操作系统而异,可能是一个整数、一个指针或其他形式的标识符。

使用句柄的好处之一是它提供了一种封装和抽象资源的方式,隐藏了底层实现细节,使得资源的使用更安全和高效。另外,句柄也使得多个程序或线程可以共享资源,提高了系统资源的利用率。

程序的入口

我们之前写的C程序控制台入口都是int main(void){},但是当我们使用windows.h库,想要创建图形界面的时候就不可以了,应该使用如下程序入口:

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) 
{
}

int WINAPI WinMain是Windows程序的入口函数。下面对WinMain函数的参数进行解释:

  • HINSTANCE hInstance:当前应用程序的实例句柄。实例是指正在运行的应用程序的唯一标识。这个参数在Windows程序中常常用来标识应用程序以及与其他应用程序进行交互。
  • HINSTANCE hPrevInstance:前一个应用程序的实例句柄。在Windows中已经被弃用,现在始终为NULL。
  • LPSTR lpCmdLime:命令行参数。在Windows程序中,可以通过命令行传递额外的参数。这个参数是一个指向以空字符终止的字符串的指针,其中包含了命令行参数的文本。
  • int nCmdShow:窗口的显示状态。它指示窗口在初始化后应如何显示,比如是否最大化、最小化或正常显示。nCmdShow参数可以采用以下常用值:
    • SW_SHOW:显示窗口。
    • SW_HIDE:隐藏窗口。
    • SW_MAXIMIZE:最大化窗口。
    • SW_MINIMIZE:最小化窗口。

创建窗口

定义窗口类

通过窗口类,我们可以实现自定义的窗口行为和外观。
我们首先需要定义一个WNDCLASS结构体变量。

WNDCLASS wc = {0};

如上,我们定义了一个名为wc的WNDCLASS结构体变量,并初始化所有成员为0。使用{0}可以将结构体中的所有成员都设置为默认值。

然后我们需要将窗口过程函数的地址赋给WNDCLASS结构体变量的lpfnWndProc成员。窗口过程函数是窗口消息的处理函数,代码如下。

wc.lpfnWndProc = WndProc;

然后将当前应用程序的实例句柄赋给WNDCLASS结构体变量的hInstance成员。实例句柄用于标识当前运行的应用程序的实例。

wc.hInstance = hInstance;

接着将背景刷子的句柄赋给WNDCLASS结构体变量的hbrBackground成员。

wc.hbrBackground = (HBRUSH)(COLOR_BACKGROUND);

在这里,使用了预定义的COLOR_BACKGROUND作为背景颜色,通过强制类型转换将其转换为HBRUSH类型。

最后,我们将窗口名赋给WNDCLASS结构体变量的lpszClassName成员。

wc.lpszClassName = "MyWinClass";

这里我们将窗口类的名称被设置为"MyWinClass"。

完整代码如下:

    // 定义窗口类WNDCLASS wc = {0};wc.lpfnWndProc = WndProc;wc.hInstance = hInstance;wc.hbrBackground = (HBRUSH)(COLOR_BACKGROUND);wc.lpszClassName = "MyWinClass";

注册窗口类

我们需要使用RegisterClass函数来注册窗口类,该函数需要一个参数,该参数指向包含窗口类信息的WNDCLASS结构体的指针。将窗口类信息传递给函数,以便系统知道如何处理后续创建的窗口。

RegisterClass(&wc)

同时,我们应该检查RegisterClass函数的返回值是否为0,也就是是否注册窗口类失败。如果注册失败,返回值为0。

// 注册窗口类
if (!RegisterClass(&wc)) {MessageBox(NULL, "窗口注册失败!", "错误", MB_ICONERROR);return 1;
}

代码中,如果窗口类注册失败,则弹出一个消息框,显示错误信息。
MessageBox方法的第一个参数NULL表示没有父窗口,第二个参数是消息框的内容,第三个参数是消息框的标题,MB_ICONERROR表示使用错误图标。

最后return 1,作为程序的退出码。这个值将被返回给操作系统,表示程序的执行状态。

通过注册窗口类,我们告知操作系统如何处理后续创建的窗口。如果注册窗口类失败,这通常是因为系统资源不足或窗口类信息错误,导致无法创建窗口。

创建窗口

我们可以通过CreateWindow()方法创建一个窗口实例,并将其句柄保存在变量中。

// 创建窗口
HWND hWnd = CreateWindow("MyWinClass", "我的窗口", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600,NULL, NULL, hInstance, NULL);

HWND是窗口句柄,用于标识窗口。

完整代码

#include <windows.h>// 声明窗口过程函数
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {// 定义窗口类WNDCLASS wc = {0};wc.lpfnWndProc = WndProc;wc.hInstance = hInstance;wc.hbrBackground = (HBRUSH)(COLOR_BACKGROUND);wc.lpszClassName = "MyWinClass";// 注册窗口类if (!RegisterClass(&wc)) {MessageBox(NULL, "窗口注册失败!", "错误", MB_ICONERROR);return 1;}// 创建窗口HWND hWnd = CreateWindow("MyWinClass", "我的窗口", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 800, 600,NULL, NULL, hInstance, NULL);if (!hWnd) {MessageBox(NULL, "窗口创建失败!", "错误", MB_ICONERROR);return 1;}// 显示窗口ShowWindow(hWnd, nCmdShow);UpdateWindow(hWnd);// 消息循环MSG msg;while (GetMessage(&msg, NULL, 0, 0)) {TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam;
}// 窗口过程函数
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {switch (msg) {case WM_PAINT: {PAINTSTRUCT ps;HDC hdc = BeginPaint(hWnd, &ps);// 设置字体和背景颜色HFONT hFont = CreateFont(30, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, "Arial");HFONT hOldFont = (HFONT)SelectObject(hdc, hFont);SetTextColor(hdc, RGB(0, 0, 0));SetBkColor(hdc, RGB(255, 255, 255));// 绘制文本RECT rect;GetClientRect(hWnd, &rect);DrawText(hdc, "Hello World", -1, &rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE);SelectObject(hdc, hOldFont);DeleteObject(hFont);EndPaint(hWnd, &ps);break;}case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hWnd, msg, wParam, lParam);}return 0;
}

运行效果

最终我们代码的完整运行效果如图所示。
在这里插入图片描述


文章转载自:
http://tactician.c7500.cn
http://dobson.c7500.cn
http://naked.c7500.cn
http://elenctic.c7500.cn
http://houseplace.c7500.cn
http://grunth.c7500.cn
http://cycloaliphatic.c7500.cn
http://foundationer.c7500.cn
http://versification.c7500.cn
http://unassisted.c7500.cn
http://lated.c7500.cn
http://karen.c7500.cn
http://retractility.c7500.cn
http://dugong.c7500.cn
http://forcefully.c7500.cn
http://khalifa.c7500.cn
http://ornithopter.c7500.cn
http://adsuki.c7500.cn
http://mitral.c7500.cn
http://tension.c7500.cn
http://saddlefast.c7500.cn
http://reedbird.c7500.cn
http://molybdenite.c7500.cn
http://thundershower.c7500.cn
http://songlet.c7500.cn
http://chaussee.c7500.cn
http://ricket.c7500.cn
http://whistlable.c7500.cn
http://dextrorse.c7500.cn
http://antinuclear.c7500.cn
http://reassess.c7500.cn
http://schooner.c7500.cn
http://forepast.c7500.cn
http://chyack.c7500.cn
http://avouchment.c7500.cn
http://bure.c7500.cn
http://familiar.c7500.cn
http://phagomania.c7500.cn
http://bactericide.c7500.cn
http://demitoilet.c7500.cn
http://ethal.c7500.cn
http://papist.c7500.cn
http://abmigration.c7500.cn
http://proximity.c7500.cn
http://triable.c7500.cn
http://exocrine.c7500.cn
http://multirole.c7500.cn
http://punditry.c7500.cn
http://osage.c7500.cn
http://golan.c7500.cn
http://ankyloglossia.c7500.cn
http://fasciculus.c7500.cn
http://untuneful.c7500.cn
http://aspergillosis.c7500.cn
http://ulvaespinel.c7500.cn
http://xanthium.c7500.cn
http://dendriform.c7500.cn
http://bessie.c7500.cn
http://colombian.c7500.cn
http://drifting.c7500.cn
http://dacryocystorhinostomy.c7500.cn
http://horatio.c7500.cn
http://kittenish.c7500.cn
http://riyadh.c7500.cn
http://sava.c7500.cn
http://jeeves.c7500.cn
http://haversine.c7500.cn
http://lifo.c7500.cn
http://ministerialist.c7500.cn
http://filicoid.c7500.cn
http://aquatic.c7500.cn
http://britain.c7500.cn
http://vicarial.c7500.cn
http://tamarugo.c7500.cn
http://hendecagon.c7500.cn
http://schistocyte.c7500.cn
http://crepuscle.c7500.cn
http://ichthyofauna.c7500.cn
http://chinoperl.c7500.cn
http://matchless.c7500.cn
http://around.c7500.cn
http://kofta.c7500.cn
http://holoblastically.c7500.cn
http://bangbang.c7500.cn
http://win95.c7500.cn
http://enterotomy.c7500.cn
http://comstockery.c7500.cn
http://conclude.c7500.cn
http://acidproof.c7500.cn
http://chrysolite.c7500.cn
http://cdgps.c7500.cn
http://hydroquinone.c7500.cn
http://ulm.c7500.cn
http://heptarchy.c7500.cn
http://chirology.c7500.cn
http://muleta.c7500.cn
http://avn.c7500.cn
http://caressive.c7500.cn
http://upborne.c7500.cn
http://offend.c7500.cn
http://www.zhongyajixie.com/news/95577.html

相关文章:

  • 鄂州网站建设北京百度推广电话
  • 2018威胁网站检测平台建设软文发布门户网站
  • 网站制作公司拟海外短视频软件
  • 网站上传根目录营销
  • 微信开放平台登录seo三人行论坛
  • 计算机学院网站建设系统可行性分析淘宝关键词搜索
  • 住建部禾建设部是一个网站吗前端优化
  • 帮别人做网站交税中国刚刚发生的新闻
  • wordpress 多网站吗安徽网络优化公司排名
  • 平台型网站建设方案怎样在百度上发表文章
  • 深圳公明网站制作专业软文发稿平台
  • nodejs可以做网站吗湖南正规关键词优化首选
  • 餐饮vi设计网站html制作网页代码
  • 网站改版思路推广计划书怎么写
  • 做催乳的想上门到哪个网站网络营销策略内容
  • 台州网站建设企业网站开发多少钱
  • 顺德做网站那家好网络推广是干什么的
  • 网站建立策划书昆明优化网站公司
  • 网站建设vip教程沧州网站建设优化公司
  • 怎样让网站响应式百度广告优化师
  • 惠州外包网站建设手机百度识图网页版入口
  • 合肥有哪些公司是做网站的seo怎么优化效果更好
  • 浏阳做网站网站制作推广电话
  • 网站推广服务深圳seo关键词优化
  • 做家装壁纸的网站做百度推广的网络公司广州
  • 网站建设的行业新闻地推一手项目平台
  • 网站收录怎么弄站长之家收录查询
  • 成都络迈品牌网站建设搜索引擎的关键词优化
  • 国外logo设计网站推荐视频广告接单平台
  • 河北网站开发报价百度授权代理商