c++wndclass类怎么使用使用

int WINAPI WinMain( HINSTANCE hInstance, // handle to current instance HINSTANCE hPrevInstance, // handle to previous instance LPSTR lpCmdLine, // command line int nCmdShow // show state){ WNDCLASS w; w.cbClsExtra=0; w.cbWndExtra=0; w.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH); w.hCursor=LoadCursor(NULL,IDC_CROSS); w.hIcon=LoadIcon(NULL,IDI_ERROR); w.hInstance=hInstance; w.lpfnWndProc=WinSunProc; w.lpszClassName="Weixin2003"; w.lpszMenuName=NULL; w.style=CS_HREDRAW | CS_VREDRAW; RegisterClass(&w); HWND hwnd; hwnd=CreateWindow("Weixin2003","北京维新科学技术培训中心",WS_OVERLAPPEDWINDOW, 0,0,600,400,NULL,NULL,hInstance,NULL); ShowWindow(hwnd,SW_SHOWNORMAL); UpdateWindow(hwnd); MSG msg; while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0;}这是创建一个简单窗口得部分代码我想问得是可以用creatwindow()这样得函数去替换WNDCLASS这个类吗比如定义一个wndclass()函数,里面包含各种参数比如定义一个wndclass()函数,里面包含各种参数 ,调用这个函数来表达窗口得风格 (背景话刷,水平重画……等等),怎么写
2026年09月26日 09:57
有3个网友回答
网友(1):

写好的结构体为什么不直接用?在WinMain函数里直接解决窗口各种参数的问题不是很方便吗?

你自己要去另写一个函数的话,不是不可以但费事不讨好啊 你自己写wndclass()函数 那你想啊 里面的实现过程还不是利用函数传递过来的参数来赋值给系统定义的WNDCLASS结构体的各个值?这样的话重写这个函数显得一点必要都没有

网友(2):

1、在c++中,窗体WNDCLASS需要继续设计才可以使用,(而WNDCLASS本身这个类含有未赋值的成员变量)并且registerclass,才可以建立对象,或者叫窗体变量。
2、但是从java角度,不是很好理解为啥WNDCLASS这个类中的成员,非要赋予初值,成为设计的结果,才可以以模板的形式去进行对象设计。
3、因为在java中,类在设计的时候,并没有强制要求成员变量需要赋值,就可建立对象。

网友(3):

有点难,不好意思