当前位置:网站首页>els_ 画矩形、代码规划和备份
els_ 画矩形、代码规划和备份
2022-07-27 03:41:00 【joker_0030】
1、主函数
#include<Windows.h>
#include"resource.h"
#include"els_h.h"
LRESULT CALLBACK PELouSi(HWND hWnd, UINT oMsg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR ipCmdLine,int nCmdShow)
{
//初始化窗口类。
WNDCLASSEX db;
HWND hWnd;
MSG msg;//结构体变量。
db.cbClsExtra = 0;
db.cbSize = sizeof(WNDCLASSEX);
db.cbWndExtra = 0;
db.hbrBackground = (HBRUSH)COLOR_BACKGROUND;//背景颜色。
//返回值:鼠标的句柄。
// 参数1:如果加载系统光标,NULL、如果加载自定义光标,填写实列句柄,hInstance;参数2:系统光标,直接填写定义好的宏、如果加载自定义光标,就用MAKEINTRESOURCE(240)加载相应的资源ID。
//db.hCursor = LoadCursor(NULL,IDC_HAND);//加载系统定义的光标。
db.hCursor = LoadCursor(hInstance,MAKEINTRESOURCE (IDC_NODROP));//自定义的光标。资源文件->添加->资源->Cursor->IDC_NODROP->新建。
//返回值:图标的句柄。
// 参数1:如果加载系统光标,NULL、如果加载自定义光标,填写实列句柄,hInstance;参数2:系统光标,直接填写定义好的宏、如果加载自定义光标,就用MAKEINTRESOURCE(240)加载相应的资源ID。
//db.hIcon = LoadIcon(NULL,IDI_ASTERISK);//加载系统定义的光标。
db.hIcon = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));//状态栏图标。
//db.hIconSm = NULL;//左上角图标为此定义。如果为空则默认为状态栏图标。
db.hIconSm = LoadIcon(NULL,IDI_HAND);
db.hInstance = hInstance;
db.lpfnWndProc = PELouSi;//回调函数名。
db.lpszClassName = "els";
db.lpszMenuName = NULL;
db.style = CS_HREDRAW | CS_VREDRAW;
if(0==RegisterClassEx(&db))
{
int a = GetLastError();
return 0;
}
//创建窗口。hWnd窗口句柄 失败返回NULL。
//窗口风格:参数4。
hWnd=CreateWindowEx(WS_EX_TOPMOST,"els","els方块",WS_OVERLAPPEDWINDOW,100,100,600,600,NULL,NULL,hInstance,NULL);
if (NULL == hWnd)//窗口句柄。 窗口的唯一标识。
{
return 0;
}
//显示窗口
ShowWindow(hWnd, nCmdShow);
//消息循环。队列。
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
//回调函数
//返回值:LRESULT,CALLBACK调用约定。
//参数1:窗口句柄;参数2:消息ID。
LRESULT CALLBACK PELouSi(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)// LRESULT:long类型;UINT:无符号整型,消息的ID。
{
PAINTSTRUCT pt;//定义结构体。
HDC hDc;
//关闭窗口消息
switch (nMsg)
{
case WM_CREATE://窗口信息处理程序接受的第一个消息,也是回调函数处理的第一个消息(为WM_CREATE)。此消息只产生一次,一般是用于初始化一些数据。
//GetLastError();//优化。
Oncreate();//游戏数据初始化。
break;
//是回调函数处理的第二个消息(为WM_PAINT)。
//当窗口显示区域的一部分显示内容或者全部变为(无效),以致于必须(更新画面)时,将由这个消息通知程序。
//窗口结构的最后的那个成员CS_HREDRAW|CS_VREDRAW,目的就是窗口大小发生变化的时候,产生WM_PAINT消息。
//窗口重叠时,重叠部分渐渐出现时。
case WM_PAINT:
//GetLastError();//优化。
hDc=BeginPaint(hWnd,&pt);//getDC,窗口可操作区域的标识。
//在此之间画窗口的内容。
//画方块。
OnPaint(hDc);//增加代码可读性。
EndPaint(hWnd, &pt);//结束。
break;
case WM_DESTROY:
PostQuitMessage(0);//调用PostQuitMessage(0)这个函数发出WM_QUIT消息。//点叉系统依次产生WM_CLOSE,WM_DESTROY,WM_QUIT。
break;
}//手动处理点叉关闭消息。
return DefWindowProc(hWnd, nMsg, wParam, lParam);
//LRESULT a=DefWindowProc(hWnd, oMsg, wParam, lParam);//功能
//return a;
}
2、头文件。
#ifndef N_d
#define N_d
#include<Windows.h>
void OnPaint(HDC hDc);
void Oncreate();
#endif
3、函数实现。
#include"els_h.h"
void OnPaint(HDC hDc)
{
Rectangle(hDc, 0, 0, 300, 600);//矩形框距离运行窗口的开始位置坐标和截至位置坐标。
Rectangle(hDc, 30, 30, 60, 60);//矩形框距离运行窗口的开始位置坐标和截至位置坐标。
}
void Oncreate()
{
}
边栏推荐
- CloudCompare&PCL 匹配点距离抑制
- 细说Hash(哈希)
- c# 获取uuid
- Using LCD1602 to display ultrasonic ranging
- [competition reference] pytorch common code snippet and operation collection
- scala 不可变Map 、 可变Map 、Map转换为其他数据类型
- Px4 module design 12: high resolution timer design
- [MySQL series] MySQL index transactions
- 你了解微信商户分账吗?
- influxDB 基础了解
猜你喜欢

Okaleido tiger will log in to binance NFT in the second round, or continue to create sales achievements

记一次TCP丢包带来的重大性能问题

Rust:axum learning notes (1) Hello World

People don't talk much, engineers don't talk much

JS three methods of traversing arrays: map, foreach, filter

HEAD detached from origin/...导致push失败

Convolution neural network -- convolution of gray image

Cool Lehman VR panorama paves the way for you to start a business

佳明手表怎么设置用户定制显示

好用的shell快捷键
随机推荐
The external symbol parsed by the method "public: virtual _ucdecl nvinfer1:: yololayerplugin:: ~yololayerplugin (void)" "public: virtual
JS modify the key value of the object array
Daily question 1: delete continuous nodes with a total value of zero from the linked list
Some common instructions in JVM tuning
The difference between ArrayList and LinkedList
Word/Excel 固定表格大小,填写内容时,表格不随单元格内容变化
对NIO的初步理解
深度剖析 —— 动态内存管理
细说Hash(哈希)
Navicat将MySQL导出表结构以及字段说明
[leetcode] day104 no overlapping interval
数据分析师岗位分析
Elastic认证考试:30天必过速通学习指南
BigDecimal踩坑总结&最佳实践
Knowledge atlas: knowledge representation
Session&Cookie&token
Stm32cubemx learning notes (41) -- eth interface +lwip protocol stack use (DHCP)
ISG index shows that the it and business service market in the Asia Pacific region fell sharply in the second quarter
微服务的feign调用header头被丢弃两种解决方案(附源码)
项目参数做成可配置项,@ConfigurationProperties注解的使用