Browse Source

支付相关的改完

张洋 1 month ago
parent
commit
d096e6d51b

BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/balance_card.png


BIN
bin/Win32/Debug/zhipuzi_pos_windows/skin/charge_card.png


+ 146 - 106
bin/Win32/Debug/zhipuzi_pos_windows/skin/fulika_shoukuan_wnd.xml

@@ -1,121 +1,161 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<Window size="800,740" caption="0,0,0,44" roundcorner="4,4" shadowsize="3" showshadow="true">
-	<VerticalLayout bkimage="shoukuan_bkg.png" >
+<Window size="760,688" caption="0,0,0,44" roundcorner="4,4" shadowsize="3" showshadow="true">
+	<VerticalLayout bkimage="shoukuan_bkg.png">
+
+		<!-- ===== 标题栏 44(全工程 30+ 弹框的统一值,会员收款 / 会员登录同族) ===== -->
 		<HorizontalLayout name="shoukuan_title_bkg" height="44" bkcolor="0xFF60B177">
 		<HorizontalLayout name="shoukuan_title_bkg" height="44" bkcolor="0xFF60B177">
-			<Label name="shoukuan_version" text="福利卡收款" height="44" align="center" valign="center" padding="0,0,0,0" textcolor="#FFFFFFFF" font="18"/>
-			<Button name="closebtn" keyboard="false" padding="0,13,15,0" width="16" height="16" tooltip="关闭" normalimage="file='close_normal.png'" hotimage="file='close_hover.png'" pushedimage="file='close_normal.png'"/>
+			<Label name="shoukuan_version" text="福利卡收款" height="44" align="center" valign="center" textcolor="#FFFFFFFF" font="18"/>
+			<!-- 关闭按钮用 float 精确定位:横排里子项 height 会与 maxheight 取小、被拉成 44-13=31 高导致 16x16 图标纵向拉伸。
+			     float 不进流、pos 相对父容器 rect,原生 16x16。 -->
+			<Button name="closebtn" keyboard="false" float="true" pos="729,14,745,30" width="16" height="16" tooltip="关闭" normalimage="file='close_normal.png'" hotimage="file='close_hover.png'" pushedimage="file='close_normal.png'"/>
 		</HorizontalLayout>
 		</HorizontalLayout>
-		
-		<VerticalLayout visible="true" name="shoukuan_before_pay_layout" padding="0,20,0,0">			
-			<HorizontalLayout name="shoukuan_money_show_layout" height="50" padding="0,15,0,15">
-				<Label text="¥" font="24" textcolor="0xFF60B177" float="true" pos="320,24,335,50"/>
-				<Label name="shoukuan_money_show_money" font="40" textcolor="0xFF60B177" float="true" pos="345,12,620,48"/>
-			</HorizontalLayout>
-			
-			<HorizontalLayout height="40" padding="0,20,0,0">
-				<VerticalLayout>
-					<Button name="shoukuan_btn_saomazhifu" text="扫码支付" textcolor="#FF43A947" font="18" heiht="38" width="200" padding="50,0,10,0" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#00FFFFFF"></Button>
-					<Control name="shoukuan_btn_saomazhifu_line" height="3" bkcolor="#FF43A947" padding="70,0,150,0"></Control>
+
+		<!-- ===================== 确认态 =====================
+		     窗口 668 = 44(标题) + 20(留白) + 120(金额区) + 46(Tab) + 438(Tab 内容占位:418 高 + padding.top 20)
+		     Tab 内容行 700 = 30(左) + 380(表单) + 18 + 302(键盘) + 30(右) ;
+		     Tab 轨道 seg_track.png 原生 700x38 → pos 30,4,730,42,零拉伸
+		============================================================================ -->
+		<VerticalLayout visible="true" name="shoukuan_before_pay_layout" padding="0,20,0,0">
+
+			<!-- 金额卡:照抄微信收款(shoukuan_money_card.png 320x96)。
+			     金额 Label 必须 float 定宽:C++ InitMoney 只 SetText 不 SetFont,autocalcwidth 的宽度缓存不会刷新。 -->
+			<VerticalLayout name="shoukuan_money_show_layout" height="120" childalign="center">
+				<VerticalLayout width="320" height="96" bkimage="file='shoukuan_money_card.png' corner='12,12,12,12'">
+					<Label text="¥" float="true" pos="91,16,117,64" font="120" textcolor="0xFF2E9B5C" align="right" valign="vcenter" padding="0,0,6,0"/>
+					<Label name="shoukuan_money_show_money" float="true" pos="119,12,279,60" font="136" textcolor="0xFF2E9B5C" valign="bottom"/>
+					<Label text="收款金额" float="true" pos="0,62,320,82" font="13" textcolor="0xFF2E9B5C" align="center" valign="vcenter"/>
 				</VerticalLayout>
 				</VerticalLayout>
-				
-				<VerticalLayout>
-					<Button name="shoukuan_btn_shoujihao" text="手机号+密码支付" font="18" heiht="38" width="200" padding="50,0,10,0" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#00FFFFFF"></Button>
-					<Control name="shoukuan_btn_shoujihao_line" visible="false" height="3" bkcolor="#FF43A947" padding="30,0,150,0"></Control>
+			</VerticalLayout>
+
+			<!-- Tab 分段控件:灰轨道 + 白活动块;活动块与按钮分别叫 *_line / 同名按钮,由 C++ 切 visible + SetTextColor 驱动
+			     (与 CMemberLoginWnd 完全同款:激活 0xFF43A947 / 未激活 0xFF555555) -->
+			<HorizontalLayout height="46">
+				<Control float="true" pos="30,4,730,42" bkimage="file='seg_track.png' corner='10,10,10,10'" mouse="false"/>
+				<Control name="shoukuan_btn_saomazhifu_line" float="true" pos="34,7,378,39" bkimage="file='seg_active.png' corner='8,8,8,8'" mouse="false"/>
+				<Control name="shoukuan_btn_shoujihao_line" visible="false" float="true" pos="382,7,726,39" bkimage="file='seg_active.png' corner='8,8,8,8'" mouse="false"/>
+				<Button name="shoukuan_btn_saomazhifu" text="扫码支付" font="13" textcolor="#FF43A947" float="true" pos="34,7,378,39" align="center" valign="center" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#00000000"/>
+				<Button name="shoukuan_btn_shoujihao" text="手机号+密码支付" font="13" textcolor="#FF5F6368" float="true" pos="382,7,726,39" align="center" valign="center" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#00000000"/>
+			</HorizontalLayout>
+
+			<!-- Tab2:扫码支付(默认显示,C++ m_shoukuanModel 初值 = 1 即扫码) -->
+			<HorizontalLayout name="fukuan_input_fukuanma_layout" height="418" padding="0,20,0,0" childvalign="vcenter">
+				<Control/>
+				<VerticalLayout width="320" childalign="center" childvalign="vcenter">
+					<VerticalLayout width="220" height="220" childalign="center" childvalign="vcenter">
+						<Control bkimage="qrcode_attention.png" width="129" height="127" maxheight="127"/>
+					</VerticalLayout>
+					<Label text="请扫描顾客福利卡付款二维码" align="center" font="120" textcolor="#FF1F2329" padding="0,24,0,0" height="34"/>
+					<Label text="打开福利卡付款码,对准扫码枪,听到提示音即成功" align="center" font="13" textcolor="#FF8A9099" padding="0,8,0,0" height="20"/>
 				</VerticalLayout>
 				</VerticalLayout>
+				<Control/>
 			</HorizontalLayout>
 			</HorizontalLayout>
-			
-			<VerticalLayout name="fukuan_input_fukuanma_layout" height="220" padding="0,80,0,100">
-				<HorizontalLayout padding="0,20,0,0" height="129">
-					<Control></Control>
-					<Control bkimage="qrcode_attention.png" width="129" height="127"></Control>
-					<Control></Control>
-				</HorizontalLayout>
-				
-				<Label text="请扫描顾客福利卡付款二维码" align="center" padding="0,30,0,0" height="40" font="24"></Label>
-			</VerticalLayout>
-			
-			<HorizontalLayout visible="false" name="fukuan_input_shoujihao_layout" padding="0,30,0,0">
-				<VerticalLayout height="230" padding="0,30,0,0">
-					<HorizontalLayout height="60">
-						<Label text="手机号:" font="18" float="true" pos="50,15,200,40"/>
-						<Edit name="shoujihao_edit" float="true" pos="153,12,370,48" normalimage="file='Chat_InputBox_BG.png' corner='4,4,4,4'" hotimage="file='Chat_InputBox_BG_Hover.png' corner='4,4,4,4'" />
-					</HorizontalLayout>
-				
-					<HorizontalLayout height="60">
-						<Label text="密码:" font="18" float="true" pos="50,15,200,40"/>
-						<Edit name="password_edit" password="true" float="true" pos="153,12,370,48" normalimage="file='Chat_InputBox_BG.png' corner='4,4,4,4'" hotimage="file='Chat_InputBox_BG_Hover.png' corner='4,4,4,4'" />
-					</HorizontalLayout>
-					
-					<HorizontalLayout height="80" padding="0,30,0,0">
-						<Control></Control>
-						<Button name="shoukuanBtn" text="确认" font="18" textcolor="#FFFFFFFF" height="50" width="350" padding="0,0,0,0" tooltip="点击这里确认收款" normalimage="file='btn_green_zhengchang.png' corner='5,5,5,5'" hotimage="file='btn_green_xuanfu.png' corner='5,5,5,5'" pushedimage="file='btn_green_dianji.png' corner='5,5,5,5'" />
-						<Control></Control>
-					</HorizontalLayout>	
+
+			<!-- Tab1:手机号 + 密码(照抄会员登录的表单:float 定位 + 三态输入框 + 左侧 18x18 图标 + 数字键盘)
+			     手机号与密码在 C++ 里都做非空校验(m_shoukuanModel == 2),因此两个标签都带红星 -->
+			<HorizontalLayout visible="false" name="fukuan_input_shoujihao_layout" height="418" padding="30,20,30,0">
+				<VerticalLayout width="380" height="418">
+					<Label text="<c #E14B4A>*</c>手机号" showhtml="true" font="14" textcolor="#FF1F2329" float="true" pos="0,0,380,22"/>
+					<Edit name="shoujihao_edit" float="true" pos="0,26,380,72" font="14" textcolor="#FF1F2329" tipvalue="请输入手机号" tipvaluecolor="#FFA8ADB3" textpadding="38,0,12,0" normalimage="file='input_normal.png' corner='10,10,10,10'" hotimage="file='input_hover.png' corner='10,10,10,10'" focusedimage="file='input_focus.png' corner='10,10,10,10'"/>
+					<Control float="true" pos="12,40,30,58" bkimage="file='login_icon_user.png'" mouse="false"/>
+
+					<Label text="<c #E14B4A>*</c>密码" showhtml="true" font="14" textcolor="#FF1F2329" float="true" pos="0,88,380,110"/>
+					<Edit name="password_edit" password="true" float="true" pos="0,114,380,160" font="14" textcolor="#FF1F2329" tipvalue="请输入密码" tipvaluecolor="#FFA8ADB3" textpadding="38,0,12,0" normalimage="file='input_normal.png' corner='10,10,10,10'" hotimage="file='input_hover.png' corner='10,10,10,10'" focusedimage="file='input_focus.png' corner='10,10,10,10'"/>
+					<Control float="true" pos="12,128,30,146" bkimage="file='login_icon_lock.png'" mouse="false"/>
+
+					<Button name="shoukuanBtn" text="确认" font="15" textcolor="#FFFFFFFF" float="true" pos="0,186,380,234" tooltip="点击这里确认收款" normalimage="file='gd_btn_green_n.png' corner='8,8,8,8'" hotimage="file='gd_btn_green_h.png' corner='8,8,8,8'" pushedimage="file='gd_btn_green_p.png' corner='8,8,8,8'"/>
 				</VerticalLayout>
 				</VerticalLayout>
-			
-				<HorizontalLayout width="340" height="416" bkcolor="#FFF3F3F3" padding="0,0,20,0">
-					<Button name="jianpan_1" text="1" font="24" heiht="60" width="60" float="true" pos="10,10,110,100" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
-					<Button name="jianpan_2" text="2" font="24" heiht="60" width="60" float="true" pos="120,10,220,100" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
-					<Button name="jianpan_3" text="3" font="24" heiht="60" width="60" float="true" pos="230,10,330,100" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
-					
-					<Button name="jianpan_4" text="4" font="24" heiht="60" width="60" float="true" pos="10,110,110,200" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
-					<Button name="jianpan_5" text="5" font="24" heiht="60" width="60" float="true" pos="120,110,220,200" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
-					<Button name="jianpan_6" text="6" font="24" heiht="60" width="60" float="true" pos="230,110,330,200" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
-					
-					<Button name="jianpan_7" text="7" font="24" heiht="60" width="60" float="true" pos="10,210,110,300" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
-					<Button name="jianpan_8" text="8" font="24" heiht="60" width="60" float="true" pos="120,210,220,300" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
-					<Button name="jianpan_9" text="9" font="24" heiht="60" width="60" float="true" pos="230,210,330,300" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
-					
-					<Button name="jianpan_qingkong" text="清空" font="24" heiht="60" width="60" float="true" pos="10,310,110,400" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
-					<Button name="jianpan_0" text="0" font="24" heiht="60" width="60" float="true" pos="120,310,220,400" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
-					<Button name="jianpan_x" text="X" font="24" heiht="60" width="60" float="true" pos="230,310,330,400" normalimage="file='shuzi_btn_normal.png' corner='5,5,5,5'" hotimage="file='shuzi_btn_hover.png' corner='5,5,5,5'" pushedimage="file='shuzi_btn_push.png' corner='5,5,5,5'"></Button>
+
+				<Control width="18"/>
+
+				<!-- 数字键盘:对齐会员充值 / 会员登录(key_normal.png 100x110,corner 12;落点 94x100、间距 10、行距 6) -->
+				<HorizontalLayout width="302" height="418">
+					<Button name="jianpan_1" text="1" font="24" textcolor="#FF1F2329" float="true" pos="0,0,94,100" normalimage="file='key_normal.png' corner='12,12,12,12'" hotimage="file='key_hover.png' corner='12,12,12,12'" pushedimage="file='key_pushed.png' corner='12,12,12,12'" pushedtextcolor="#FF60B177"/>
+					<Button name="jianpan_2" text="2" font="24" textcolor="#FF1F2329" float="true" pos="104,0,198,100" normalimage="file='key_normal.png' corner='12,12,12,12'" hotimage="file='key_hover.png' corner='12,12,12,12'" pushedimage="file='key_pushed.png' corner='12,12,12,12'" pushedtextcolor="#FF60B177"/>
+					<Button name="jianpan_3" text="3" font="24" textcolor="#FF1F2329" float="true" pos="208,0,302,100" normalimage="file='key_normal.png' corner='12,12,12,12'" hotimage="file='key_hover.png' corner='12,12,12,12'" pushedimage="file='key_pushed.png' corner='12,12,12,12'" pushedtextcolor="#FF60B177"/>
+					<Button name="jianpan_4" text="4" font="24" textcolor="#FF1F2329" float="true" pos="0,106,94,206" normalimage="file='key_normal.png' corner='12,12,12,12'" hotimage="file='key_hover.png' corner='12,12,12,12'" pushedimage="file='key_pushed.png' corner='12,12,12,12'" pushedtextcolor="#FF60B177"/>
+					<Button name="jianpan_5" text="5" font="24" textcolor="#FF1F2329" float="true" pos="104,106,198,206" normalimage="file='key_normal.png' corner='12,12,12,12'" hotimage="file='key_hover.png' corner='12,12,12,12'" pushedimage="file='key_pushed.png' corner='12,12,12,12'" pushedtextcolor="#FF60B177"/>
+					<Button name="jianpan_6" text="6" font="24" textcolor="#FF1F2329" float="true" pos="208,106,302,206" normalimage="file='key_normal.png' corner='12,12,12,12'" hotimage="file='key_hover.png' corner='12,12,12,12'" pushedimage="file='key_pushed.png' corner='12,12,12,12'" pushedtextcolor="#FF60B177"/>
+					<Button name="jianpan_7" text="7" font="24" textcolor="#FF1F2329" float="true" pos="0,212,94,312" normalimage="file='key_normal.png' corner='12,12,12,12'" hotimage="file='key_hover.png' corner='12,12,12,12'" pushedimage="file='key_pushed.png' corner='12,12,12,12'" pushedtextcolor="#FF60B177"/>
+					<Button name="jianpan_8" text="8" font="24" textcolor="#FF1F2329" float="true" pos="104,212,198,312" normalimage="file='key_normal.png' corner='12,12,12,12'" hotimage="file='key_hover.png' corner='12,12,12,12'" pushedimage="file='key_pushed.png' corner='12,12,12,12'" pushedtextcolor="#FF60B177"/>
+					<Button name="jianpan_9" text="9" font="24" textcolor="#FF1F2329" float="true" pos="208,212,302,312" normalimage="file='key_normal.png' corner='12,12,12,12'" hotimage="file='key_hover.png' corner='12,12,12,12'" pushedimage="file='key_pushed.png' corner='12,12,12,12'" pushedtextcolor="#FF60B177"/>
+					<Button name="jianpan_qingkong" text="清空" font="15" textcolor="#FF5F6368" float="true" pos="0,318,94,418" normalimage="file='key_normal.png' corner='12,12,12,12'" hotimage="file='key_hover.png' corner='12,12,12,12'" pushedimage="file='key_pushed.png' corner='12,12,12,12'" pushedtextcolor="#FF60B177"/>
+					<Button name="jianpan_0" text="0" font="24" textcolor="#FF1F2329" float="true" pos="104,318,198,418" normalimage="file='key_normal.png' corner='12,12,12,12'" hotimage="file='key_hover.png' corner='12,12,12,12'" pushedimage="file='key_pushed.png' corner='12,12,12,12'" pushedtextcolor="#FF60B177"/>
+					<Button name="jianpan_x" text="×" font="24" textcolor="#FF5F6368" float="true" pos="208,318,302,418" normalimage="file='key_normal.png' corner='12,12,12,12'" hotimage="file='key_hover.png' corner='12,12,12,12'" pushedimage="file='key_pushed.png' corner='12,12,12,12'" pushedtextcolor="#FF60B177"/>
 				</HorizontalLayout>
 				</HorizontalLayout>
-			</HorizontalLayout>			
+			</HorizontalLayout>
 
 
-			<HorizontalLayout height="50" padding="0,20,0,0">
-				<Control></Control>
-				<Label name="shoukuanresult" font="18" width="400" height="50" wordbreak="true" text="" visible="false" textcolor="#FF0000" align="center" />
-				<Control></Control>
-			</HorizontalLayout>			
+			<!-- 错误提示:浮层,不占流高、不冒滚动条。pos 相对 before_pay_layout 的 rect(top = 标题 44)
+			     → 绝对 y 500..556,正好落在确认按钮(436..484)下方的空档 -->
+			<Label name="shoukuanresult" text="" visible="false" float="true" pos="30,456,410,512" font="14" textcolor="#FFC93A38" wordbreak="true"/>
 		</VerticalLayout>
 		</VerticalLayout>
-		
-		<VerticalLayout name="shoukuan_paying_layout" visible="false">
-			<HorizontalLayout name="shoukuan_paying_loading" height="24" padding="0, 120, 0, 20">
-				<Control></Control>
-				<VerticalLayout width="24">
-					<Control></Control>
-					<HorizontalLayout height="24">
-						<GifAnim bkimage="loading.gif" autosize="true"></GifAnim>
-					</HorizontalLayout>
-					<Control></Control>
-				</VerticalLayout>
-				<Control></Control>
+
+		<!-- ===== 请求支付中(照会员收款 P1 定稿:进度环 → 大字金额 → 状态 → 橙色风险条 → 提示 → 取消按钮) ===== -->
+		<VerticalLayout name="shoukuan_paying_layout" visible="false" padding="26,24,26,22">
+			<!-- 首裸 Control:与末尾的尾裸 Control 一起平分剩余高度(nAdjustables=2)→ 内容组垂直居中、取消按钮锚底 -->
+			<Control/>
+
+			<!-- 进度环 64x64:DuiLib 只有 GifAnim 能动,不能用 CSS animation -->
+			<HorizontalLayout name="shoukuan_paying_loading" height="64">
+				<Control/>
+				<GifAnim name="hs_paying_ring" bkimage="hs_ring.gif" width="64" height="64" maxheight="64"/>
+				<Control/>
+			</HorizontalLayout>
+
+			<!-- 金额:¥ 19 粗 + 数字 30 粗(照会员收款 P1)。两个裸 Control 吸宽把「¥+数字」整组居中;
+			     ¥ 的 padding.top=8 复刻 CSS baseline 对齐。
+			     ⚠️ autocalcwidth 依赖测量缓存 → C++ SetText 后必须 SetFont(GetFont()) 刷新(本轮已在 StartShoukuan 补) -->
+			<HorizontalLayout height="42" padding="0,20,0,0">
+				<Control/>
+				<Label text="¥" font="119" textcolor="0xFF2E9B5C" autocalcwidth="true" padding="0,8,0,0"/>
+				<Label name="shoukuan_paying_money" text="" font="130" textcolor="0xFF2E9B5C" autocalcwidth="true"/>
+				<Control/>
+			</HorizontalLayout>
+
+			<!-- 状态:与金额拉开字号与颜色两级 -->
+			<Label name="shoukuan_paying_status" text="请求支付中..." font="15" textcolor="0xFF5F6368" align="center" height="22" padding="0,4,0,0"/>
+
+			<!-- 风险警示条:把最贵的一句话从「最弱的灰字」提到橙色警示条
+			     (原生 648x45,九宫格 corner 8 → 中间可拉伸到本弹框的 708 宽) -->
+			<VerticalLayout name="shoukuan_paying_risk" height="45" padding="0,22,0,0" bkimage="file='hs_riskbar_r8.png' corner='8,8,8,8'">
+				<HorizontalLayout height="45" padding="14,0,14,0" childvalign="vcenter">
+					<Control bkimage="file='hs_risk_ico18.png'" width="18" height="18" maxheight="18" mouse="false"/>
+					<!-- mini-html:闭合标签必须成对(UIRender.cpp:2194 走 Remove 分支) -->
+					<Label name="shoukuan_paying_risk_text" font="12" textcolor="#FF8A5A10" padding="10,0,0,0" showhtml="true" text="{c #C47410}{b}请勿关闭本窗口。{/b}{/c}关闭窗口不会自动撤销本次支付;若顾客未支付成功,请点下方「取消本次支付」。"/>
+				</HorizontalLayout>
+			</VerticalLayout>
+
+			<Label name="shoukuan_paying_tip" text="支付成功后窗口会自动关闭" font="12" textcolor="#FF8A9099" align="center" height="18" padding="0,10,0,0"/>
+
+			<!-- 尾裸 Control -->
+			<Control/>
+
+			<HorizontalLayout height="48">
+				<Control/>
+				<!-- 次按钮:触屏收银机没有 Esc;C++ Notify 里接 StartClose()(现成函数,零新逻辑)。
+				     底图 gd_btn_ghost_n/h/p.png = 白底 + 1px #DCDFE3 描边(照会员收款的次按钮) -->
+				<Button name="cancelShoukuanBtn" text="取消本次支付" font="116" textcolor="#FF5F6368" height="48" width="350" tooltip="取消本次支付" normalimage="file='gd_btn_ghost_n.png' corner='8,8,8,8'" hotimage="file='gd_btn_ghost_h.png' corner='8,8,8,8'" pushedimage="file='gd_btn_ghost_p.png' corner='8,8,8,8'"/>
+				<Control/>
 			</HorizontalLayout>
 			</HorizontalLayout>
-			
-			<Label height="40" padding="0,10,0,10" name="shoukuan_paying_money" text="收款金额:" font="32" textcolor="0xFF60B177" align="center"></Label>
-			
-			<Label height="32" padding="0,10,0,10" name="shoukuan_paying_status" text="请求支付中..." font="18" textcolor="0xFF60B177" align="center"></Label>
-			
-			<Label height="60" padding="20,30,20,0" name="shouyin_paying_attention" text="如果用户没有支付成功,则请确认客户不再进行支付时再关闭此窗口,按【Esc】取消本次支付" font="18" textcolor="0xFF808080" wordbreak="true" align="center" />
 		</VerticalLayout>
 		</VerticalLayout>
-		
-		<VerticalLayout name="shoukuan_pay_success_layout" visible="false">
-			
-			<Label height="40" padding="0,180,0,20" name="shoukuan_pay_success_money" text="成功收款:" font="32" textcolor="0xFF60B177" align="center"></Label>
-			
-			<Label height="60" padding="20,30,20,0" name="shouyin_pay_success_attention" text="按任意键关闭窗口" font="18" textcolor="0xFF808080" wordbreak="true" align="center" />
+
+		<!-- ===== 收款成功 ===== -->
+		<VerticalLayout name="shoukuan_pay_success_layout" visible="false" childvalign="vcenter">
+			<Label height="40" padding="0,0,0,20" name="shoukuan_pay_success_money" text="成功收款:" font="18" textcolor="#FF60B177" align="center"/>
+
+			<Label height="60" padding="20,30,20,0" name="shouyin_pay_success_attention" text="按任意键关闭窗口" font="14" textcolor="#FF8A9099" wordbreak="true" align="center"/>
 		</VerticalLayout>
 		</VerticalLayout>
-		
-		<VerticalLayout name="shoukuan_pay_fail_layout" visible="false">
-			<HorizontalLayout height="100" padding="0,20,0,0">
-				<Control></Control>
-				<Control bkimage="pay_fail.png" width="100" height="100" align="center"></Control>
-				<Control></Control>
+
+		<!-- ===== 收款失败 ===== -->
+		<VerticalLayout name="shoukuan_pay_fail_layout" visible="false" childvalign="vcenter">
+			<HorizontalLayout height="100">
+				<Control/>
+				<Control bkimage="pay_fail.png" width="100" height="100" maxheight="100"/>
+				<Control/>
 			</HorizontalLayout>
 			</HorizontalLayout>
-			
-			<Label height="40" padding="0,120,0,20" name="shoukuan_pay_fail_money" text="订单支付失败" font="32" textcolor="0xFFD33E3A" align="center"></Label>
-			
-			<Label height="60" padding="20,30,20,0" name="shouyin_pay_fail_attention" text="" font="18" textcolor="0xFF808080" wordbreak="true" align="center" />
+
+			<Label height="40" padding="0,20,0,20" name="shoukuan_pay_fail_money" text="订单支付失败" font="18" textcolor="#FFD33E3A" align="center"/>
+
+			<Label height="60" padding="20,30,20,0" name="shouyin_pay_fail_attention" text="" font="14" textcolor="#FF8A9099" wordbreak="true" align="center"/>
 		</VerticalLayout>
 		</VerticalLayout>
-    </VerticalLayout>
-</Window>
+	</VerticalLayout>
+</Window>

+ 0 - 2
bin/Win32/Debug/zhipuzi_pos_windows/skin/huiyuan_chongzhi_wnd.xml

@@ -20,8 +20,6 @@
 						<Control width="436" height="2" />
 						<Control width="436" height="2" />
 						<HorizontalLayout width="436" height="44" childvalign="vcenter">
 						<HorizontalLayout width="436" height="44" childvalign="vcenter">
 							<Label name="huiyuan_chongzhi_curbalance" text="¥0.00" font="36" textcolor="#FF60B177" height="44" maxheight="44" autocalcwidth="true" valign="center" />
 							<Label name="huiyuan_chongzhi_curbalance" text="¥0.00" font="36" textcolor="#FF60B177" height="44" maxheight="44" autocalcwidth="true" valign="center" />
-							<Control width="8" height="44" />
-							<Label text="元" font="16" textcolor="#FF5F6368" width="24" height="44" maxheight="44" valign="center" />
 							<Control width="20" height="44" />
 							<Control width="20" height="44" />
 						</HorizontalLayout>
 						</HorizontalLayout>
 					</VerticalLayout>
 					</VerticalLayout>

+ 6 - 6
bin/Win32/Debug/zhipuzi_pos_windows/skin/xianjin_shoukuan_wnd.xml

@@ -10,12 +10,12 @@
 		</HorizontalLayout>
 		</HorizontalLayout>
 
 
 		<!-- ===================== 确认态(结构照抄会员充值,卡片底色加深) =====================
 		<!-- ===================== 确认态(结构照抄会员充值,卡片底色加深) =====================
-		     会员充值在用的 balance_card.png / charge_card.png 底色是 #FAFBFC —— 白底上 Δ≈5/255,肉眼根本看不出,
-		     所以本弹框改用「取其 alpha 通道换色」生成的专属资产(圆角半径 / 抗锯齿剖面 / 尺寸与原图逐像素一致,零新增几何误差):
-		       xj_card_money.png  472x102  ← balance_card.png   应收金额卡
-		       xj_card_input.png  472x168  ← charge_card.png    实收 / 快选 / 找零卡
-		     填充色 #F2F4F7(比 #FAFBFC 深一档,又与 gd_btn_grey 的 #F0F1F3 错开,走灰度阶梯而不是撞色);
-		     共享的那两张 PNG 保持原样不动 —— 会员充值弹框仍在用,不能就地改。
+		     balance_card.png / charge_card.png 原底色 #FAFBFC 在白底上 Δ≈5/255,肉眼根本看不出;
+		     2026-09-13 全项目普查后已把这【两张共享资产】就地加深为 #F2F4F7(会员充值弹框同步生效),
+		     故本弹框不再依赖专属副本 —— xj_card_money.png / xj_card_input.png 与共享资产逐字节一致,仅作隔离保留。
+		        xj_card_money.png  472x102  (同 balance_card.png)  应收金额卡
+		        xj_card_input.png  472x168  (同 charge_card.png)   实收 / 快选 / 找零卡
+		     填充色 #F2F4F7(比 #FAFBFC 深一档,又与 gd_btn_grey 的 #F0F1F3 错开,走灰度阶梯而不是撞色)。
 		     窗口 552 = 44(标题) + 24 + 460(内容) + 24
 		     窗口 552 = 44(标题) + 24 + 460(内容) + 24
 		     左列 472 = 108(应收卡) + 15 + 170(实收卡) + 15 + 36(错误带占位) + 116(按钮区)
 		     左列 472 = 108(应收卡) + 15 + 170(实收卡) + 15 + 36(错误带占位) + 116(按钮区)
 		     横排 812 = 472 + 20(childpadding) + 320(键盘)
 		     横排 812 = 472 + 20(childpadding) + 320(键盘)

+ 96 - 39
bin/Win32/Debug/zhipuzi_pos_windows/skin/zidingyi_shoukuan_wnd.xml

@@ -1,52 +1,101 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
-<Window size="580,450" caption="0,0,0,44" roundcorner="4,4" shadowsize="3" showshadow="true">
+<Window size="700,450" caption="0,0,0,44" roundcorner="4,4" shadowsize="3" showshadow="true">
 	<VerticalLayout bkimage="shoukuan_bkg.png" >
 	<VerticalLayout bkimage="shoukuan_bkg.png" >
 		<HorizontalLayout name="shoukuan_title_bkg" height="44" bkcolor="0xFF60B177">
 		<HorizontalLayout name="shoukuan_title_bkg" height="44" bkcolor="0xFF60B177">
 			<Label name="shoukuan_version" text="" height="44" align="center" valign="center" padding="0,0,0,0" textcolor="#FFFFFFFF" font="18"/>
 			<Label name="shoukuan_version" text="" height="44" align="center" valign="center" padding="0,0,0,0" textcolor="#FFFFFFFF" font="18"/>
-			<Button name="closebtn" keyboard="false" padding="0,13,15,0" width="16" height="16" tooltip="关闭" normalimage="file='close_normal.png'" hotimage="file='close_hover.png'" pushedimage="file='close_normal.png'"/>
+			<!-- 关闭按钮用 float 精确定位:横排里子项 height 会与 maxheight 取小、被拉成 44-13=31 高,导致 16x16 图标纵向拉伸。float 不进流、pos 相对父容器 rect,原生 16x16。 -->
+			<Button name="closebtn" keyboard="false" float="true" pos="669,14,685,30" width="16" height="16" tooltip="关闭" normalimage="file='close_normal.png'" hotimage="file='close_hover.png'" pushedimage="file='close_normal.png'"/>
 		</HorizontalLayout>
 		</HorizontalLayout>
 		
 		
-		<VerticalLayout visible="true" name="shoukuan_before_pay_layout" height="520" padding="0,20,0,0">			
-			<HorizontalLayout name="shoukuan_money_show_layout" height="50" padding="0,15,0,15">
-				<Label text="¥" font="24" textcolor="0xFF60B177" float="true" pos="230,24,245,50"/>
-				<Label name="shoukuan_money_show_money" font="40" textcolor="0xFF60B177" float="true" pos="255,12,530,48"/>
-			</HorizontalLayout>
-			
-			<HorizontalLayout height="50" padding="0,15,0,0">
-				<Label name="shoukuan_attention" text="" font="18" align="center"/>
-			</HorizontalLayout>
-			
-			<HorizontalLayout height="60" padding="0,50,0,0">
-				<Control></Control>
-				<Button name="shoukuanBtn" text="确认" font="18" textcolor="#FFFFFFFF" height="50" width="400" padding="0,0,0,0" tooltip="点击这里确认收款" normalimage="file='btn_green_zhengchang.png' corner='5,5,5,5'" hotimage="file='btn_green_xuanfu.png' corner='5,5,5,5'" pushedimage="file='btn_green_dianji.png' corner='5,5,5,5'" />
-				<Control></Control>
-			</HorizontalLayout>	
+		<!-- ===================== 确认态(照会员收款 C1 定稿) =====================
+		     窗口 450 = 44(标题) + 24(上留白) + 360(内容) + 22(下留白)
+		     内容 360 = 76(首裸) + 120(金额卡) + 18+22(问句) + 76(尾裸) + 48(按钮)
+		     原稿写死 height="520" 而窗口可用高度只有 406 → 内容整体溢出被裁。
+		=========================================================================== -->
+		<VerticalLayout visible="true" name="shoukuan_before_pay_layout" padding="26,24,26,22">
+			<!-- 首裸 Control:与按钮前的尾裸 Control 一起平分剩余高度(nAdjustables=2)
+			     → 内容组垂直居中、主按钮锚底。只放尾部一个的话内容会全顶到上面、中间留一大片空白。 -->
+			<Control/>
 
 
-			<HorizontalLayout height="50" padding="0,20,0,0">
-				<Control></Control>
-				<Label name="shoukuanresult" font="18" width="400" height="50" wordbreak="true" text="" visible="false" textcolor="#FF0000" align="center" />
-				<Control></Control>
-			</HorizontalLayout>			
+			<!-- 金额卡 320x96 r12:照微信收款确认页(weixinzhifu_shoukuan_wnd.xml:10-16)原样复刻。
+			     wrapper 620 宽 + childalign=center → 本弹框 648 内容宽下卡片落在 190..510(水平居中)。
+			     卡内三个 Label 全部 float 定宽:C++ InitMoney 只 SetText,定宽框才能保证 ¥ 与数字的咬合不变。 -->
+			<VerticalLayout name="shoukuan_money_show_layout" height="120" childalign="center">
+				<VerticalLayout width="320" height="96" bkimage="file='shoukuan_money_card.png' corner='12,12,12,12'">
+					<Label text="¥" float="true" pos="91,16,117,64" font="120" textcolor="0xFF2E9B5C" align="right" valign="vcenter" padding="0,0,6,0"/>
+					<Label name="shoukuan_money_show_money" float="true" pos="119,12,279,60" font="136" textcolor="0xFF2E9B5C" valign="bottom"/>
+					<Label text="收款金额" float="true" pos="0,62,320,82" font="13" textcolor="0xFF2E9B5C" align="center" valign="vcenter"/>
+				</VerticalLayout>
+			</VerticalLayout>
+
+			<!-- 问句 22 高:文案由 C++ SetZidingyiName 写成「确定使用{渠道名}支付吗?」。
+			     原稿写成 height=60 又没设 valign → Label 默认贴顶,文字下方空 40px。 -->
+			<Label name="shoukuan_attention" text="" font="14" textcolor="0xFF5F6368" align="center" height="22" padding="0,18,0,0"/>
+
+			<!-- 尾裸 Control -->
+			<Control/>
+
+			<HorizontalLayout height="48">
+				<Control/>
+				<Button name="shoukuanBtn" text="确认收款" font="116" textcolor="#FFFFFFFF" height="48" width="350" tooltip="点击这里确认收款" normalimage="file='gd_btn_green_n.png' corner='8,8,8,8'" hotimage="file='gd_btn_green_h.png' corner='8,8,8,8'" pushedimage="file='gd_btn_green_p.png' corner='8,8,8,8'"/>
+				<Control/>
+			</HorizontalLayout>
 		</VerticalLayout>
 		</VerticalLayout>
 		
 		
-		<VerticalLayout name="shoukuan_paying_layout" visible="false">
-			<HorizontalLayout name="shoukuan_paying_loading" height="24" padding="0, 20, 0, 20">
-				<Control></Control>
-				<VerticalLayout width="24">
-					<Control></Control>
-					<HorizontalLayout height="24">
-						<GifAnim bkimage="loading.gif" autosize="true"></GifAnim>
-					</HorizontalLayout>
-					<Control></Control>
-				</VerticalLayout>
-				<Control></Control>
+		<!-- ===================== 请求支付中(照会员收款 P1 定稿) =====================
+		     顶序:进度环 → 大字金额 → 状态 → 橙色风险条 → 提示 → 取消按钮
+		     内容 360 = 32(首裸) + 64(环) + 20+42(金额) + 4+22(状态) + 22+45(风险条) + 10+18(提示) + 33(尾裸) + 48(按钮)
+		============================================================================= -->
+		<VerticalLayout name="shoukuan_paying_layout" visible="false" padding="26,24,26,22">
+			<!-- 首裸 Control:与末尾的尾裸 Control 一起平分剩余高度 → 内容组垂直居中、取消按钮锚底 -->
+			<Control/>
+
+			<!-- 进度环 64x64:DuiLib 只有 GifAnim 能动,不能用 CSS animation。
+			     原稿是 24x24 的 loading.gif,与会员/福利卡的 hs_ring.gif 视觉分量差一档。 -->
+			<HorizontalLayout name="shoukuan_paying_loading" height="64">
+				<Control/>
+				<GifAnim name="hs_paying_ring" bkimage="hs_ring.gif" width="64" height="64" maxheight="64"/>
+				<Control/>
+			</HorizontalLayout>
+
+			<!-- 金额:¥ 用 19 粗、数字用 30 粗(照会员收款 P1)。两个裸 Control 吸宽把「¥+数字」整组居中;
+			     ¥ 的 padding.top=8 复刻基线对齐。
+			     ⚠️ C++ StartShoukuan 原写的是 L"付款金额:¥" + m_money,会与本行的 ¥ 标签重复成两个 ¥
+			     → 本轮已改成只写纯数字(m_money)。
+			     ❗ 这两行在 C++ 里:只换皮肤不重新编译,旧 exe 仍会拼「付款金额:¥」,
+			     界面就显示成「¥付款金额:¥182.00」。改 C++ 后必须重编译。 -->
+			<HorizontalLayout height="42" padding="0,20,0,0">
+				<Control/>
+				<Label text="¥" font="119" textcolor="0xFF2E9B5C" autocalcwidth="true" padding="0,8,0,0"/>
+				<Label name="shoukuan_paying_money" text="" font="130" textcolor="0xFF2E9B5C" autocalcwidth="true"/>
+				<Control/>
+			</HorizontalLayout>
+
+			<!-- 状态:与金额拉开字号与颜色两级(原稿状态也是 18 绿,与金额同色同级) -->
+			<Label name="shoukuan_paying_status" text="请求支付中..." font="15" textcolor="0xFF5F6368" align="center" height="22" padding="0,4,0,0"/>
+
+			<!-- 风险警示条 648x45 r8(原生尺寸零拉伸):把最贵的一句话从「最弱的灰字」提到橙色警示条。
+			     替换掉原来那条 font=18 灰字长提示(shouyin_paying_attention,全工程零引用,已安全移除)。 -->
+			<VerticalLayout name="shoukuan_paying_risk" height="45" padding="0,22,0,0" bkimage="file='hs_riskbar_r8.png' corner='8,8,8,8'">
+				<HorizontalLayout height="45" padding="14,0,14,0" childvalign="vcenter">
+					<Control bkimage="file='hs_risk_ico18.png'" width="18" height="18" maxheight="18" mouse="false"/>
+					<!-- mini-html:闭合标签必须成对(UIRender.cpp:2194 走 Remove 分支) -->
+					<Label name="shoukuan_paying_risk_text" font="12" textcolor="#FF8A5A10" padding="10,0,0,0" showhtml="true" text="{c #C47410}{b}请勿关闭本窗口。{/b}{/c}关闭窗口不会自动撤销本次支付;若顾客未支付成功,请点下方「取消本次支付」。"/>
+				</HorizontalLayout>
+			</VerticalLayout>
+
+			<Label name="shoukuan_paying_tip" text="支付成功后窗口会自动关闭" font="12" textcolor="#FF8A9099" align="center" height="18" padding="0,10,0,0"/>
+
+			<!-- 尾裸 Control -->
+			<Control/>
+
+			<HorizontalLayout height="48">
+				<Control/>
+				<!-- 次按钮:触屏收银机没有 Esc;C++ Notify 里接 StartClose()(现成函数,零新逻辑)。
+				     底图 gd_btn_ghost_n/h/p.png = 白底 + 1px #DCDFE3 描边。 -->
+				<Button name="cancelShoukuanBtn" text="取消本次支付" font="116" textcolor="#FF5F6368" height="48" width="350" tooltip="取消本次支付" normalimage="file='gd_btn_ghost_n.png' corner='8,8,8,8'" hotimage="file='gd_btn_ghost_h.png' corner='8,8,8,8'" pushedimage="file='gd_btn_ghost_p.png' corner='8,8,8,8'"/>
+				<Control/>
 			</HorizontalLayout>
 			</HorizontalLayout>
-			
-			<Label height="40" padding="0,10,0,10" name="shoukuan_paying_money" text="收款金额:" font="32" textcolor="0xFF60B177" align="center"></Label>
-			
-			<Label height="32" padding="0,10,0,10" name="shoukuan_paying_status" text="请求支付中..." font="18" textcolor="0xFF60B177" align="center"></Label>
-			
-			<Label height="60" padding="20,30,20,0" name="shouyin_paying_attention" text="如果用户没有支付成功,则请确认客户不再进行支付时再关闭此窗口,按【Esc】取消本次支付" font="18" textcolor="0xFF808080" wordbreak="true" align="center" />
 		</VerticalLayout>
 		</VerticalLayout>
 		
 		
 		<VerticalLayout name="shoukuan_pay_success_layout" visible="false">			
 		<VerticalLayout name="shoukuan_pay_success_layout" visible="false">			
@@ -66,5 +115,13 @@
 			
 			
 			<Label height="60" padding="20,30,20,0" name="shouyin_pay_fail_attention" text="" font="18" textcolor="0xFF808080" wordbreak="true" align="center" />
 			<Label height="60" padding="20,30,20,0" name="shouyin_pay_fail_attention" text="" font="18" textcolor="0xFF808080" wordbreak="true" align="center" />
 		</VerticalLayout>
 		</VerticalLayout>
+
+		<!-- ============ 错误提示浮层(原 shoukuanresult) ============
+		     挂根 VerticalLayout:float 会被裁到父容器矩形,跨出内容区就只能挂根。
+		     落在「问句底 304 ↔ 按钮顶 380」的空档中心 328。float + visible=false 时不参与排版、不占流高
+		     → 错误出现/消失都不会顶动内容,也不会冒滚动条。
+		     控件名 shoukuanresult 必须保留:C++ 有 2 处按名 FindControl(OnShoukuanFail 1 + StartShoukuan 金额校验 1),
+		     共 5 处 SetText/SetVisible 都打在它身上。 -->
+		<Label name="shoukuanresult" float="true" pos="26,328,674,356" text="" visible="false" bkimage="file='err_bar_r6.png' corner='6,6,6,6'" textpadding="12,0,12,0" textcolor="#FFC7403F" font="13" align="center"/>
     </VerticalLayout>
     </VerticalLayout>
 </Window>
 </Window>

BIN
zhipuzi_pos_windows/resource/skin.zip


+ 10 - 2
zhipuzi_pos_windows/wnd/CFulikaShoukuanWnd.cpp

@@ -28,6 +28,11 @@ void CFulikaShoukuanWnd::Notify(TNotifyUI& msg)
 		{
 		{
 			StartShoukuan();
 			StartShoukuan();
 		}
 		}
+		else if (msg.pSender->GetName() == _T("cancelShoukuanBtn"))
+		{
+			//支付中的次按钮:触屏收银机没有 Esc,走与 Esc 完全相同的退出逻辑(复用现成 StartClose)
+			StartClose();
+		}
 		else if (msg.pSender->GetName() == L"shoukuan_btn_saomazhifu")
 		else if (msg.pSender->GetName() == L"shoukuan_btn_saomazhifu")
 		{
 		{
 			CHorizontalLayoutUI* pFukuanmaLayout = static_cast<CHorizontalLayoutUI*>(m_pm.FindControl(_T("fukuan_input_fukuanma_layout")));
 			CHorizontalLayoutUI* pFukuanmaLayout = static_cast<CHorizontalLayoutUI*>(m_pm.FindControl(_T("fukuan_input_fukuanma_layout")));
@@ -867,8 +872,11 @@ void CFulikaShoukuanWnd::StartShoukuan()
 
 
 	CLabelUI* pMoneyPaying = static_cast<CLabelUI*>(m_pm.FindControl(_T("shoukuan_paying_money")));
 	CLabelUI* pMoneyPaying = static_cast<CLabelUI*>(m_pm.FindControl(_T("shoukuan_paying_money")));
 
 
-	std::wstring valueInfo = L"付款金额:¥" + m_money;
-	pMoneyPaying->SetText(valueInfo.c_str());
+	//新皮肤把「¥」提成了独立的静态 Label(19 粗,与 30 粗的数字底部对齐,照会员收款 P1),
+	//所以这里只写纯数字 —— 再拼一次 ¥ 就会变成两个 ¥。
+	//动态数字是 autocalcwidth,SetText 后要 SetFont 刷新,否则位数变了宽度不动。
+	pMoneyPaying->SetText(m_money.c_str());
+	pMoneyPaying->SetFont(pMoneyPaying->GetFont());
 
 
 	//开启一个线程,开始处理登录
 	//开启一个线程,开始处理登录
 	std::thread(&CFulikaShoukuanWnd::HandleShoukuan, this).detach();
 	std::thread(&CFulikaShoukuanWnd::HandleShoukuan, this).detach();

+ 14 - 2
zhipuzi_pos_windows/wnd/CZidingyiShoukuanWnd.cpp

@@ -26,6 +26,11 @@ void CZidingyiShoukuanWnd::Notify(TNotifyUI& msg)
 		{
 		{
 			StartShoukuan();
 			StartShoukuan();
 		}
 		}
+		else if (msg.pSender->GetName() == _T("cancelShoukuanBtn"))
+		{
+			//支付中的次按钮:触屏收银机没有 Esc,走与 Esc 完全相同的退出逻辑(复用现成 StartClose)
+			StartClose();
+		}
 	}
 	}
 }
 }
 
 
@@ -317,6 +322,10 @@ void CZidingyiShoukuanWnd::InitMoney(std::wstring value)
 	if (pMoneyLabel)
 	if (pMoneyLabel)
 	{
 	{
 		pMoneyLabel->SetText(value.c_str());
 		pMoneyLabel->SetText(value.c_str());
+
+		//新皮肤的金额是 autocalcwidth(靠右端对齐,照会员收款 C1),SetText 之后必须回写字体才会重算宽度,
+		//否则位数从 3 位变 4 位时宽度停在旧值,金额右边缘就对不齐了。
+		pMoneyLabel->SetFont(pMoneyLabel->GetFont());
 	}
 	}
 
 
 	m_money = value;
 	m_money = value;
@@ -466,8 +475,11 @@ void CZidingyiShoukuanWnd::StartShoukuan()
 
 
 	CLabelUI* pMoneyPaying = static_cast<CLabelUI*>(m_pm.FindControl(_T("shoukuan_paying_money")));
 	CLabelUI* pMoneyPaying = static_cast<CLabelUI*>(m_pm.FindControl(_T("shoukuan_paying_money")));
 
 
-	std::wstring valueInfo = L"付款金额:¥" + m_money;
-	pMoneyPaying->SetText(valueInfo.c_str());
+	//新皮肤把「¥」提成了独立的静态 Label(19 粗,与 30 粗的数字底部对齐,照会员收款 P1),
+	//所以这里只写纯数字 —— 再拼一次 ¥ 就会变成两个 ¥(会员收款那边踩过同一个坑)。
+	//动态数字是 autocalcwidth,SetText 后要 SetFont 刷新,否则位数变了宽度不动。
+	pMoneyPaying->SetText(m_money.c_str());
+	pMoneyPaying->SetFont(pMoneyPaying->GetFont());
 
 
 	//开启一个线程,开始处理登录
 	//开启一个线程,开始处理登录
 	std::thread(&CZidingyiShoukuanWnd::HandleShoukuan, this).detach();
 	std::thread(&CZidingyiShoukuanWnd::HandleShoukuan, this).detach();