符老师,帮忙看一下r文件中用自动布局时,文本框前面的标签如何在同一行显示?
管工:您好! 我修改您的资源文件如下:
DialogBoxRsc DIALOGID_RegisterApp = { DIALOGATTR_DEFAULT | DIALOGATTR_SINKABLE | DIALOGATTR_GROWABLE, 0, 0, //AutoLayout can set dialig width and height automatically NOHELP, MHELP, NOHOOK, NOPARENTID, REGISTER_DLOG_TEXT, { BEGIN_VSTACK_LAYOUT(VSTACKLAYOUTID_Standard,"") BEGIN_HSTACK_LAYOUT (0, "") LAYOUT_LABEL_NEXT_RIGHT(0,"") {{AUTO_XY, 10*XC, 0}, Text, TEXTID_ServerIP, ON, 0, "", ""}, END_LAYOUT BEGIN_HSTACK_LAYOUT (0, "") LAYOUT_LABEL_NEXT_RIGHT(0,"") {{AUTO_XY, 10*XC, 0}, Text, TEXTID_ServerPort, ON, 0, "", ""}, END_LAYOUT BEGIN_HSTACK_LAYOUT (0, "") LAYOUT_LABEL_NEXT_RIGHT(0,"") {{AUTO_XY, 10*XC, 0}, Text, TEXTID_UserName, ON, 0, "", ""}, END_LAYOUT SPACING (SECTION_GAP) BEGIN_HSTACK_LAYOUT(HSTACKLAYOUTID_Sections, "") {{ 0, 0, 0, 0}, Stretch, 0, ON, 1, "", ""}, {{AUTO_XY,BUTTON_LARGEWIDTH,0}, PushButton, PUSHBUTTONID_Register, ON, 0, "", ""}, END_LAYOUT END_LAYOUT } };
执行效果如下:
文本框提示和文本框倒是在一行上且能显示出来了,但对齐方式是右对齐,似乎还不够完美。
Answer Verified By: 管华明
谢谢符老师。我换成了网格布局,算是基本上解决了。
DialogBoxRsc DIALOGID_RegisterApp = { DIALOGATTR_DEFAULT | DIALOGATTR_SINKABLE | DIALOGATTR_GROWABLE, 40*XC, 0, NOHELP, MHELP, NOHOOK, NOPARENTID, REGISTER_DLOG_TEXT, { BEGIN_GRID_LAYOUT(GRIDLAYOUTID_3ColumnsOuter, "") GRID_ROW(0, "") {AUTO_XYWH, Label, 0, ON, LABEL_LINKNEXT | ALIGN_RIGHT, "", ""}, {AUTO_XYWH, Text, TEXTID_ServerIP, ON, 0, "", "colSpan='*'"}, END_ROW GRID_ROW(0, "") {AUTO_XYWH, Label, 0, ON, LABEL_LINKNEXT | ALIGN_RIGHT, "", ""}, {AUTO_XYWH, Text, TEXTID_ServerPort, ON, 0, "", "colSpan='*'"}, END_ROW GRID_ROW(0, "") {AUTO_XYWH, Label, 0, ON, LABEL_LINKNEXT | ALIGN_RIGHT, "", ""}, {AUTO_XYWH, Text, TEXTID_UserName, ON, 0, "", "colSpan='*'"}, END_ROW GRID_ROW(0, "") BEGIN_HSTACK_LAYOUT(HSTACKLAYOUTID_Sections, "column='1',colSpan='*', marginTop='5'") {{ 0, 0, 0, 0}, Stretch, 0, ON, 1, "", ""}, {{AUTO_XY,BUTTON_LARGEWIDTH,YC*2}, PushButton, PUSHBUTTONID_Register, ON, 0, "", ""}, END_LAYOUT END_ROW END_LAYOUT } };
管工的钻研精神值得我们所有人学习!