⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 messagebox.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 2 页
字号:
0000d8  900a              STR      r0,[sp,#0x28]
0000da  9816              LDR      r0,[sp,#0x58]
;;;174      _aDialogCreate[1].x0               = (xSizeFrame - xSizeMessage - BorderSize * 2) / 2;
0000dc  900b              STR      r0,[sp,#0x2c]
0000de  1be1              SUBS     r1,r4,r7
0000e0  4268              RSBS     r0,r5,#0
0000e2  eb010140          ADD      r1,r1,r0,LSL #1
0000e6  eb0171d1          ADD      r1,r1,r1,LSR #31
0000ea  1049              ASRS     r1,r1,#1
0000ec  f8ad1032          STRH     r1,[sp,#0x32]
;;;175      _aDialogCreate[1].y0               = MESSAGEBOX_BORDER;
0000f0  2104              MOVS     r1,#4
0000f2  f8ad1034          STRH     r1,[sp,#0x34]
;;;176      _aDialogCreate[1].xSize            = xSizeMessage;
;;;177      _aDialogCreate[1].ySize            = ySizeMessage;
;;;178      _aDialogCreate[1].Para             = GUI_TA_TOP | GUI_TA_HCENTER;
0000f6  2102              MOVS     r1,#2
;;;179      /* Fill button resource */
;;;180      _aDialogCreate[2].pfCreateIndirect = BUTTON_CreateIndirect;
0000f8  910f              STR      r1,[sp,#0x3c]
0000fa  4916              LDR      r1,|L2.340|
;;;181      _aDialogCreate[2].pName            = "OK";
0000fc  9110              STR      r1,[sp,#0x40]
0000fe  a116              ADR      r1,|L2.344|
;;;182      _aDialogCreate[2].Id               = GUI_ID_OK;
000100  9111              STR      r1,[sp,#0x44]
;;;183      _aDialogCreate[2].x0               = (xSizeFrame - MESSAGEBOX_XSIZEOK - BorderSize * 2) / 2;
000102  eb040040          ADD      r0,r4,r0,LSL #1
000106  f8ad7036          STRH     r7,[sp,#0x36]         ;176
00010a  2101              MOVS     r1,#1                 ;182
00010c  3832              SUBS     r0,r0,#0x32
00010e  f8ad1048          STRH     r1,[sp,#0x48]         ;182
000112  eb0070d0          ADD      r0,r0,r0,LSR #31
000116  1040              ASRS     r0,r0,#1
000118  f8ad004a          STRH     r0,[sp,#0x4a]
00011c  f8ad8038          STRH     r8,[sp,#0x38]         ;177
;;;184      _aDialogCreate[2].y0               = MESSAGEBOX_BORDER * 2 + ySizeMessage;
000120  f1080008          ADD      r0,r8,#8
000124  f8ad004c          STRH     r0,[sp,#0x4c]
;;;185      _aDialogCreate[2].xSize            = MESSAGEBOX_XSIZEOK;
000128  2032              MOVS     r0,#0x32
00012a  f8ad004e          STRH     r0,[sp,#0x4e]
;;;186      _aDialogCreate[2].ySize            = MESSAGEBOX_YSIZEOK;
00012e  2014              MOVS     r0,#0x14
000130  f8ad0050          STRH     r0,[sp,#0x50]
;;;187      /* Create dialog */
;;;188      return GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _MESSAGEBOX_cbCallback, 0, 0, 0);
000134  2300              MOVS     r3,#0
000136  9300              STR      r3,[sp,#0]
000138  4a08              LDR      r2,|L2.348|
00013a  2103              MOVS     r1,#3
00013c  a804              ADD      r0,sp,#0x10
00013e  9301              STR      r3,[sp,#4]
000140  f7fffffe          BL       GUI_CreateDialogBox
;;;189    }
000144  b019              ADD      sp,sp,#0x64
000146  e8bd8ff0          POP      {r4-r11,pc}
;;;190    
                          ENDP

00014a  0000              DCW      0x0000
                  |L2.332|
                          DCD      FRAMEWIN_CreateIndirect
                  |L2.336|
                          DCD      TEXT_CreateIndirect
                  |L2.340|
                          DCD      BUTTON_CreateIndirect
                  |L2.344|
000158  4f4b00            DCB      "OK",0
00015b  00                DCB      0
                  |L2.348|
                          DCD      _MESSAGEBOX_cbCallback

                          AREA ||i._MESSAGEBOX_cbCallback||, CODE, READONLY, ALIGN=1

                  _MESSAGEBOX_cbCallback PROC
;;;65     */
;;;66     static void _MESSAGEBOX_cbCallback(WM_MESSAGE * pMsg) {
000000  b570              PUSH     {r4-r6,lr}
;;;67       WM_HWIN hWin = pMsg->hWin;
;;;68       switch (pMsg->MsgId) {
000002  6801              LDR      r1,[r0,#0]
000004  f9b04004          LDRSH    r4,[r0,#4]            ;67
000008  290e              CMP      r1,#0xe
00000a  d019              BEQ      |L3.64|
00000c  291e              CMP      r1,#0x1e
00000e  d010              BEQ      |L3.50|
000010  2926              CMP      r1,#0x26
000012  d11f              BNE      |L3.84|
;;;69         case WM_INIT_DIALOG:
;;;70           FRAMEWIN_SetClientColor(hWin, MESSAGEBOX_BKCOLOR);
;;;71           break;
;;;72         case WM_KEY:
;;;73           {
;;;74             int Key = ((const WM_KEY_INFO*)(pMsg->Data.p))->Key;
;;;75             if (((const WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt) {
;;;76               switch (Key) {
;;;77               case GUI_KEY_ESCAPE:
;;;78                 GUI_EndDialog(hWin, 1);             /* End dialog with return value 1 if <ESC> is pressed */
;;;79                 break;
;;;80               case GUI_KEY_ENTER:
;;;81                 GUI_EndDialog(hWin, 0);             /* End dialog with return value 0 if <ENTER> is pressed */
;;;82                 break;
;;;83               }
;;;84             }
;;;85           }
;;;86           break;
;;;87         case WM_NOTIFY_PARENT:
;;;88           {
;;;89             int NCode = pMsg->Data.v;             /* Get notification code */
;;;90             int Id    = WM_GetId(pMsg->hWinSrc);  /* Get control ID */
000014  6885              LDR      r5,[r0,#8]
000016  f9b00006          LDRSH    r0,[r0,#6]
00001a  f7fffffe          BL       WM_GetId
;;;91             switch (NCode) {
00001e  2d02              CMP      r5,#2
000020  d11c              BNE      |L3.92|
;;;92               case WM_NOTIFICATION_RELEASED:      /* React only if released */
;;;93                 if (Id == GUI_ID_OK) {
000022  2801              CMP      r0,#1
000024  d11a              BNE      |L3.92|
                  |L3.38|
;;;94                   GUI_EndDialog(hWin, 0);         /* End dialog with return value 0 if OK */
000026  2100              MOVS     r1,#0
                  |L3.40|
000028  4620              MOV      r0,r4
00002a  e8bd4070          POP      {r4-r6,lr}
00002e  f7ffbffe          B.W      GUI_EndDialog
                  |L3.50|
000032  4620              MOV      r0,r4                 ;70
000034  e8bd4070          POP      {r4-r6,lr}            ;70
000038  f06f417f          MVN      r1,#0xff000000        ;70
00003c  f7ffbffe          B.W      FRAMEWIN_SetClientColor
                  |L3.64|
000040  6880              LDR      r0,[r0,#8]            ;74
000042  c803              LDM      r0,{r0,r1}            ;74
000044  2900              CMP      r1,#0                 ;75
000046  d009              BEQ      |L3.92|
000048  280d              CMP      r0,#0xd               ;76
00004a  d0ec              BEQ      |L3.38|
00004c  281b              CMP      r0,#0x1b              ;76
00004e  d105              BNE      |L3.92|
000050  2101              MOVS     r1,#1                 ;78
000052  e7e9              B        |L3.40|
                  |L3.84|
;;;95                 }
;;;96                 break;
;;;97             }
;;;98           }
;;;99           break;
;;;100        default:
;;;101          WM_DefaultProc(pMsg);
000054  e8bd4070          POP      {r4-r6,lr}
000058  f7ffbffe          B.W      WM_DefaultProc
                  |L3.92|
;;;102      }
;;;103    }
00005c  bd70              POP      {r4-r6,pc}
;;;104    
                          ENDP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -