WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON,
BS_NOTIFY | WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON,
void editbutton(struct ctlpos *cp, char *stext, int sid,		int eid, char *btext, int bid){    const int height = (EDITHEIGHT > PUSHBTNHEIGHT ?			EDITHEIGHT : PUSHBTNHEIGHT);    RECT r;    int lwid, rwid, rpos;    r.left = GAPBETWEEN;    r.top = cp->ypos;    r.right = cp->width;    r.bottom = STATICHEIGHT;    cp->ypos += r.bottom + GAPWITHIN;    doctl(cp, r, "STATIC", WS_CHILD | WS_VISIBLE, 0, stext, sid);    rpos = GAPBETWEEN + 3 * (cp->width + GAPBETWEEN) / 4;    lwid = rpos - 2 * GAPBETWEEN;    rwid = cp->width + GAPBETWEEN - rpos;    r.left = GAPBETWEEN;    r.top = cp->ypos + (height - EDITHEIGHT) / 2;    r.right = lwid;    r.bottom = EDITHEIGHT;    doctl(cp, r, "EDIT",	  WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL,	  WS_EX_CLIENTEDGE, "", eid);    r.left = rpos;    r.top = cp->ypos + (height - PUSHBTNHEIGHT) / 2;    r.right = rwid;    r.bottom = PUSHBTNHEIGHT;    doctl(cp, r, "BUTTON",	  WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON,	  0, btext, bid);    cp->ypos += height + GAPBETWEEN;}