假设我有5个窗口要创建,其中一个是父窗口,四个窗口是子窗口。所以在父窗口上,如果我必须创建四个窗口,那么我应该如何实现结构概念以减少代码段。?
这是一个好习惯还是不使用结构概念?
请多多回复。
答案 0 :(得分:0)
假设你有一个结构
struct HANDLES
{
HINSTANCE hInstance;
HWND parent;
HWND childwindow1;
HWND childwindow2;
HWND childwindow3;
HWND childwindow4;
};
Now declare object for this handle
HANDLES handles;
现在在 bool WINAPI InitInstance(HINSTANCE hInstance,int nCmdShow)
中创建这样的父窗口handles.parent = CreateWindowEx(0,
className,
windowName,
WS_VISIBLE | WS_POPUP,
0, 0,
coordinates.width, coordinates.height,
NULL,
NULL,
hInstance,
NULL);
其中坐标是对象和宽度& height是COORDINATES的数据成员。
现在在WM_CREATE下创建子窗口。
HWND *buttons = &(handles.childwindow1);
for(int i = MIN_BUTTON; i <= MAX_BUTTON; i++) // MIN_BUTTON = 0 & MAX_BUTTON = 3
{
*buttons = CreateWindowEx(WS_EX_TOPMOST,
TEXT("button"),
L"",
WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
btns[i].x, btns[i].y,
btns[i].width,btns[i].height,
handles.parent,
(HMENU) ((short)(INITIAL_BUTTON + i)), //(INITIAL_BUTTON + i) is id for your child window
handles.hInstance, NULL) ;
buttons++;
}
其中“btns [4]”是结构“AXIS”的对象
AXIS btns[4];
struct AXIS
{
short int x;
short int y;
short int width;
short int height;
short int widthSrc;
short int heightSrc;
};
并且对于每个子窗口,都有一个不同的值,从btns [0]到btns [3]指定。
因此,通过这种方式,您可以使用结构创建窗口。
是的,这是一个使用结构的好习惯,它可以减少代码段并且易于实现。