diff --git a/Marlin/src/inc/Conditionals_adv.h b/Marlin/src/inc/Conditionals_adv.h
index e6376aec21cc272079b2d5b893b7da43f15bc019..849add1df95995648e1013c4d24bfe5576e870d8 100644
--- a/Marlin/src/inc/Conditionals_adv.h
+++ b/Marlin/src/inc/Conditionals_adv.h
@@ -109,7 +109,7 @@
 #if EITHER(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS)
   #define HAS_SOFTWARE_ENDSTOPS 1
 #endif
-#if ANY(EXTENSIBLE_UI, NEWPANEL, EMERGENCY_PARSER, HAS_ADC_BUTTONS)
+#if ANY(EXTENSIBLE_UI, NEWPANEL, EMERGENCY_PARSER, HAS_ADC_BUTTONS, DWIN_CREALITY_LCD)
   #define HAS_RESUME_CONTINUE 1
 #endif
 
diff --git a/Marlin/src/lcd/dwin/rotary_encoder.cpp b/Marlin/src/lcd/dwin/rotary_encoder.cpp
index 71a0772d5a9f4179d8864284a0d02e8f73e6c1b0..e4d60b4ce377d9066f5ec9cfdd2c9abd49e31b34 100644
--- a/Marlin/src/lcd/dwin/rotary_encoder.cpp
+++ b/Marlin/src/lcd/dwin/rotary_encoder.cpp
@@ -49,9 +49,9 @@ ENCODER_Rate EncoderRate;
 
 /*蜂鸣器响*/
 void Encoder_tick(void) {
-  WRITE(BEEPER_PIN,1);
+  WRITE(BEEPER_PIN, 1);
   delay(10);
-  WRITE(BEEPER_PIN,0);
+  WRITE(BEEPER_PIN, 0);
 }
 
 /*编码器初始化 PB12:Encoder_A PB13:Encoder_B PB14:Encoder_C*/
@@ -88,7 +88,9 @@ ENCODER_DiffState Encoder_ReceiveAnalyze(void) {
       #if PIN_EXISTS(LCD_LED)
         //LED_Action();
       #endif
-      return ENCODER_DIFF_ENTER;
+      const bool was_waiting = wait_for_user;
+      wait_for_user = false;
+      return was_waiting ? ENCODER_DIFF_NO : ENCODER_DIFF_ENTER;
     }
     else return ENCODER_DIFF_NO;
   }