没错,你没看错,又是我,惊天来一款简易计算器
老规矩,先上代码
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
struct CreateInfo{
LPCSTR Class,Text;
UINT x,y,width,height;
short number;
HWND hWnd;
HINSTANCE hInst;
void (*fp)(vector<HWND>);
};
vector<CreateInfo> createinfo;
void push(LPCSTR Class,LPCSTR Text,UINT x,UINT y,UINT width,UINT height,
HINSTANCE hInst,void (*fp)(vector<HWND>)){
CreateInfo ci;
ci.Class=Class;
ci.Text=Text;
ci.x=x;
ci.y=y;
ci.width=width;
ci.height=height;
ci.hInst=hInst;
ci.fp=fp;
createinfo.push_back(ci);
}
HWND MakeWindow(HINSTANCE hInst,LPCSTR name,int x,int y,int width,int height,bool& err
,long long(*fp)(HWND__*,unsigned int,unsigned long long,long long)){
err=0;
WNDCLASSEX wc;
HWND hwnd;
memset(&wc,0,sizeof(wc));
wc.cbSize=sizeof(wc);
wc.lpfnWndProc=fp;
wc.hInstance=hInst;
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wc.lpszClassName="WindowClass";
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hIconSm=NULL;
if(!RegisterClassEx(&wc)){
MessageBox(NULL,"Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
err=1;
}
hwnd=CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass",name,WS_VISIBLE|WS_OVERLAPPEDWINDOW,
x+20,y+40,width,height,NULL,NULL,hInst,NULL);
if(hwnd==NULL){
MessageBox(NULL,"Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
err=1;
}
return hwnd;
}
LRESULT CALLBACK MakeThings(HWND hwnd,UINT Message,WPARAM wParam,LPARAM lParam){
switch(Message){
case WM_CREATE:{
for(int i=0;i<createinfo.size();i++){
createinfo[i].hWnd=CreateWindow(createinfo[i].Class,
createinfo[i].Text,
WS_CHILD|WS_VISIBLE,
createinfo[i].x,
createinfo[i].y,
createinfo[i].width,
createinfo[i].height,
hwnd,
(HMENU)(createinfo[i].number),
createinfo[i].hInst,
NULL);
}
break;
}
case WM_COMMAND:{
bool b=0;
vector<HWND> vh;
for(int i=0;i<createinfo.size();i++)
vh.push_back(createinfo[i].hWnd);
for(int i=0;i<createinfo.size();i++){
if(createinfo[i].number==wParam){
createinfo[i].fp(vh);
b=1;
}
}
break;
}
default:{
DefWindowProc(hwnd,Message,wParam,lParam);
break;
}
}
}
就是这样,想要转载请联系本人或点赞或好评!
本文分享了一段简单的C++代码,实现了一个基本的计算器功能。作者鼓励有兴趣的读者可以转载,但需联系作者或者给予点赞和支持。
本文为转载&spm=1001.2101.3001.5002&articleId=124658787&d=1&t=3&u=fd9e2c7c2efa485d9eed8d633b7c3735)
1130

被折叠的 条评论
为什么被折叠?



